Posts Tagged ‘SAP

Create a new period categories in SAP BO

2008年02月15日 星期五

The following is a VB.NET sample that creates new period categories and returns its parameters.

Dim oPeriodCategory As PeriodCategory

‘get period category
oPeriodCategory = oCompanyService.GetDataInterface(CompanyServiceDataInterfaces.csdiPeriodCategory)

’set period code
oPeriodCategory.PeriodCategory = “My Period Code”

’set period name
oPeriodCategory.PeriodName = “My Period Name”

’set the period type can be year,quater,month or day
‘(e.g. spt_Year=0,spt_quater=1,spt_month=2,spt_days)
oPeriodCategory.SubPeriodType = BoSubPeriodTypeEnum.spt_Year

’set the beginning of Financial Year
oPeriodCategory.BeginningofFinancialYear =”2008-01-01″

oCompanyService.CreatePeriod(oPeriodCategory)

SAP 大事记

2008年02月15日 星期五

七十年代

1972

· 5 位从IBM 辞职的员工——迪特马·荷普、克劳斯·魏伦路特、哈 索·普拉特纳、克劳斯·奇拉、汉斯魏纳·海克特,成立了一家名叫SAP的公司(全称为“系统分析与程序开发”)。他们的远景目标是:开发用于实时业务处理的标准应用软件。

这家私有公司总部位于德国曼海姆,公司主办公地设在慕尼黑附近;然而,这五位创始人却经常出现在客户的计算机中心。年轻的SAP公司开发的第一个软件程序大部分都是利用夜间和周末时间编写的,主要运行在其第一个客户——英国普内门化学工业公司(ICI)。

1973

· 第一个完整的财务会计软件RF是公司继续开发其他软件组件的基础,该软件后来成为著名的“R/1 系统”。

1974

· 市场要求对现有软件进行技术修改。此时,SAP软件程序运行于OS操作系统中。

· 最早的两位员工保罗·诺加(Paul Neugart)与尤根·哈森伯格 (Jürgen Hachenberger)此时负责 40 家客户。

1975

· 物料管理系统 (RM) 已经成熟,集成性已经非常明显——物料管理 数据直接传输到财务会计系统中,发票验证的登录只需一个步骤即可完成。

1976

· SAP GmbH 作为一个辅助销售和营销的公司而创建(SAP GmbH——SAP 股份有限公司,“SAP”为德文 Systeme, Anwendungen und Produkte in der Datenverarbeitung的缩写,意为:系统、应用和数据处理产品)。5年后,于1972年成立的私有公司解散,其所有权转给 SAP GmbH。

· 员工在每周五举行的足球赛中释放身心。员工与客户共同举办的足球锦标赛非常受欢迎。

1977
· 公司总部从曼海姆迁往沃尔多夫。

· 首次获得国际客户,两家奥地利公司——Nettingsdorfer造纸厂与OKA 能源公 司。这是SAP第一次为德国之外的公司安装其系统。

1978

· 此时已拥有50名员工,客户数量达到100家。

· 财务会计软件RF推出第一个译本——法文版,向国际化又迈进一 步。

· IBM数据库和交互控制系统的全面推进引发了SAP软件的重新思考。第二代标准软件:SAP R/2系统诞生。

1979

· 第一个正式的“研发中心”仍在租来的场地内。但是无论如何,SAP位于沃尔多夫工业园Max-Planck大街的第一栋属于自己的办公大楼开始施工了。

八十年代

1980

· 迁入新的办公大楼。软件开发部门及其50台监视器此时同在一个大房间里。

· 德国100家最大企业中有50家成为SAP的客户。

· 共同创始人克劳斯·魏伦路特由于健康原因离开SAP,离职金100万马克。

1981

· 在德国慕尼黑博览会上首次亮相。

· SAP R/2系统比前一代产品的稳定性有大幅度提高。性能不断提升的 主机也 给SAP带来了更多的客户。

1982

· 在公司经营的第10个年头,SAP的员工已增加到100名。

· 收入上升到2400万德国马克,有来自德国、奥地利以及瑞士的236家公司使用SAP开发的软件。

1984

· SAP(国际)公司在瑞士比尔(Biel)成立,负责协调海外业务。

1985

· 计算机中心此时已拥有三台IBM大型主机和一台西门子计算机。

· 公司迅速成长,销售收入又增加了45%。

· SAP的标准软件在欧洲各国以及南非、加拿大、美国、科威特、及特立尼达岛等地都有用户。

1986

· 在奥地利建立第一个德国以外的子公司。

· 第一个分公司在德国杜塞尔多夫附近的Ratingen 创立。

· 在德国汉诺威计算机展览会( CeBIT)上初次亮相。

· 年收入达到1亿马克,比预期时间提前。

· 资产从 50万马克增加到 500万马克。

· 在沃尔多夫安装了拥有64MB 内存的IBM计算机,投资了大约 700万马克。

1987

· 位于德国沃尔多夫工业园的“SAP国际教育与培训中心”大楼开始破土动工。在Max-Planck大街的办公大楼也继续施工—现在已进入第5 期扩建阶段。

· 计算机技术的更新及软件产品标准化的发展,促使SAP开始开发新一代软件:SAP R/3系统。

· 有850家公司使用SAP公司在沃尔多夫开发的标准软件。德国100家最大公司中有 60 家是SAP的用户。

1988

· 8月,SAPGmbH改组为SAP公司。11月4日,1200万股SAP股票在德国法兰克福和斯图加特股票交易市场上市。

· SAP国际业务持续增长,在丹麦、瑞典和意大利建立子公司。
· 美国陶氏化学公司成为 SAP 的第1000 家客户。

· 在美国宾西法尼亚州的费城成立 SAP 北美分公司。

· 与安达信管理咨询公司合资成立“SAP咨询服务公司”,双方各占 50%的股份。

· SAP 执行董事会在沃尔多夫为 “SAP 国际教育与培训中心”落成 揭幕。

1989

· 为 SAP R/2 系统推出新的友好用户界面。编程语言ABAP/4等新工具 促进新的开发工作。SAP R/3 系统开始成型。

· SAP 股票在瑞士苏黎世证券交易市场交易。

· 首届SAP蓝宝石用户大会(SAPPHIRE)召开。

· 在卡尔斯鲁厄( Karlsruhe) 召开第一届全体股东大会。

· 决定扩大国际教育与培训中心的规模,因为SAP教育培训市场的需求量大幅度增加。

· 位于瑞士比尔的“SAP(国际)公司”已有12家海外分公司,其中包括加拿大、新加坡、澳洲。

· 被《经理人杂志》评为“年度最佳公司”

九十年代

1990

· 发行优先股后,股票价值达到 8500 万马克。

· 西德与东德之间成立的“经济和货币同盟”以及后来德国的统一为 SAP开辟了新的市场。

· 在柏林设立分公司。

· 与西门子-利多富和 Robotron 合资在列支敦士登成立 SRS公司。

· 在研发方面投入资金达1.09 亿马克。

1991

· 软件第一次在日本安装。

· 进入俄国市场,并开始开发R/2系统俄文版

· 31个国家的2,225 家客户使用 SAP 的标准软件。

· 年度营业额增长超过40%,总营业额超过7亿马克。

· 1991年初,孔翰宁加入由共同创始人迪特马·荷普、哈索·普拉特纳、克劳斯·奇拉、汉斯魏纳·海克特组成的SAP执行董事会。1992年4月,汉斯·史莱格加入,直至1993年12月。

1992

· SAP R/3 系统全面推向市场。客户机/服务器概念、统一显示的图形界 面、关系型数据库的兼容以及能够运行于不同厂商的计算机使R/3获得市场的全面认同。

· 大型计算机市场迅速走向崩溃。基于客户机/服务器架构的SAP R/3系 统恰得市场先机,一跑走红。

· 收入增至8.31亿德国马克,其中有大约50%来自公司国际业务。

· 庆祝公司成立 20 周年——新的销售与研发中心大楼正式启用,员工 同欢。

1993

· 开始与全球最大的软件供应商微软公司合作。这次携手的一个目的就是让 SAP R/3系统运行于 Windows NT 系统之上。

· SAP R/3风靡美国,捕获众多美国企业。

· 营业额首次突破10亿马克。

· 推出用于日本市场的R/3系统。

· 客户数目增加到3,500家公司

· 在美国加州福斯特市成立开发中心,使SAP在硅谷附近有了立足之地

· 曾彼得于1月1日加入SAP核心董事会。

1994

· 基于Windows NT 的SAP R/3系统全面推向市场。

· SAP 的长期合作伙伴——IBM 公司在全球实施 SAP R/3 系统,用于 管理公司的业务流程。堪称SAP有史以来数额最大的一笔生意。

· 客户超过 4,000 家公司,年收入达 18 亿马克,从而成为全球标准应 用软件的领先提供商。

1995

· 高科技企业巨头微软公司实施SAP R/3系统。

· SAP股票被列入德国股票指数(DAX),出类拔萃的股东回报率使之受到股市一致追捧。

· 年终,与德国电信签约,是SAP至此最大的订单,在德国电信全球的机构中共有3万名R/3用户。

· 汉斯魏纳·海克特出于个人原因从SAP 执行董事会调往 SAP 监督董 事会。

· 在曾彼得的带领下,在北京建立SAP 中国公司。

1996

· 又有三位成员被提名加入 SAP 执行董事会:克劳斯·海因利希、 葛海德·奥斯华和保罗·华尔。

· 1月,SAP北美区总裁贝西尔离开。董事会新增成员华尔接替贝西尔掌管美洲业务。

· 5月,微软的比尔·盖茨首次访问 SAP。

· 5月,海克特与SAP发生严重冲突,并将持有的股票转让给瑞士联合银行位于泽西岛的国际信托公司。

· 10月,SAP遭遇股市崩盘,市值一下损失70亿马克。但是SAP公布当季营收超过13亿马克,是有史以来最好的表现。

· 12月推出的SAP R/3 3.1版本具备了互联网功能,是企业应用市场上第 一套集成互联网应用的软件。

· SAP R/3系统又赢得 1,089 家新客户。截止到年底,SAP R/3在全球已 经被安装在 9,000 多个系统里。

· 当年营业额增加38%,超过37亿马克。员工数超过1万。

1997

· 提出新的客户关系管理(CRM)和供应链管理解决方案(SCM),并开始开发针对不同行业的“行业解决方案”。

· 庆祝公司成立 25 周年。德国总理科尔亲临致辞。

· 哈索·普拉特纳就任 SAP 公司联合主席兼首席执行官。另一位是 迪特马·荷普。

1998

· SAP 股票在纽约股票交易所 (NYSE) 发行。1998年8月3日,S-A-P 三个字母第一次出现在世界最大的股票交易所——NYSE。
· 推出全新的CRM与SCM解决方案。

· 迪特马·荷普和克劳斯·奇拉从 SAP 执行董事会调往 SAP 监督董事 会,迪特马·荷普为董事长。

· 与哈索·普拉特纳一起,孔翰宁担任 SAP 公司的联合主席兼首席执 行官。

1999

· 5 月,联合主席兼首席执行官哈索·普拉特纳宣布 mySAP.com 战 略,宣告公司及其产品新方向的开始。推出mySAP.com协同化电子商务解决方案。

· 获得《业界周刊》“最佳管理公司”奖。

2000 至 2002

2000

· 每天有超过1000万用户在使用SAP解决方案。SAP解决方案在全球已安装36,000套,有1,000家合作伙伴,21个行业解决方案,并在120个国家拥有 13,500 家客户。

· SAP与Commerce One成立策略联盟,并组建SAP Markets公司,从事 B2B电子交易市场业务。

· 被由40名CEO组成的评委会评选为“90年代最成功的公司”(威斯巴登2000/10/03)。

· 成为全球第三大独立软件供应商。

2001

· 沃纳 (Werner Brandt )于2月1日加入SAP执行董事会,负责公司的 财务工作。

· 收购Top Tier,并组建SAP Portals公司。

· 在11月初于洛杉矶举行的TechEd技术大会上,哈索·普拉特纳演示了一种新的电子商务架构——mySAP技术。这种技术的特征是“开放与 集成”。

· 被《商业周刊》评为“全球最有价值品牌”,并成为为数不多的品牌价值增长公司的代表。

· 9月入围《环球财经》的“全球最佳公司”——其中30家最佳公司 中有20家公司正在使用SAP提供的企业管理和电子商务解决方案。

· 11月,孔翰宁访华,这是SAP首席执行官第一次来到中国市场。

· 年收入上升到73.4亿欧元。

2002

· 1月,两个新的管理委员会成立,旨在为公司的战略决策提供支持:现场管理委员会处理所有与客户相关的活动,产品技术委员会则负责对开发部门及其活动进行归总。

· 1 月,公司成立全球咨询服务部门——PSO,负责处理所有的全球性 和战略性项目。

· 收购TopManage公司, 开发适合中小型应用的解决方案。3 月,SAP 宣布推出新的中小型业务解决方案(SMB)。5月,《金融时报》评出全球500强企业,指出“进步最大的是德国软件公司SAP,从第310位上升到第73 位”。8月,《商业周刊》评选的“全球100家最有价值品牌”中SAP位列第42名,是其中唯一一家品牌价值增长的软件公司,也是在所有入选的13家高科技企业中唯两家品牌价值增长的公司之一。

· 在120多个国家和地区拥有18,800家客户,在全球共有56,000多个系统安装点,超过1000万名最终用户使用SAP系统。

· 拥有29,000多名员工。

· 庆祝公司成立30周年
截至2007年,sap公司在中国上海设有一个研究院系全球7大研发中心之一,在成都设有一个全球技术服务中心(隶属于上海研发中心),在大连设有一个call center。中国管理总部设在北京,研发总部设在上海。

来源: http://kitty129cckitty1985.spaces.live.com/blog/cns!C0A14A27F21E43FB!594.entry

SBO 调用模态与非模态窗体

2008年01月25日 星期五

SBO显示非模态窗体
“itemEvent”
viewWinForm vWForm =new ViewWinForm();
Thread T=new Thread(new ThreadStart(vWForm.view));
t.SetApartmentState(ApartmentState.STA);
t.start();

CLASS ViewWinForm
{

Private bool run;
Form oForm;

public ViewWinForm()
{
//构造函数
oForm=new Form();
oForm.FormClosed+=new ormClosedEventHandler(form_FormClosed);

}

public void view()
{
run = true;
form.Show();
while (run)
{
Application.DoEvents();
Thread.Sleep(1);
}
}

void form_FormClosed(object sender, FormClosedEventArgs e)
{
run = false;
}
}

SBO中显示模态窗体(如:对话框)
摘自https://www.sdn.sap.com/irj/sdn/thread?threadID=45710&tstart=0

After searching the forums for a way to reliably open an open file dialog I didn’t really find any examples showing what I needed. Anyway, here’s what I came up with.

There are two problems to deal with:

1. The dialog must be run on a separate thread.
2. The dialog must be modal for the CORRECT INSTANCE of the SAP client window.

With my item events I invoke the dialog with the following code example for an excel file. I was using the try/catch for debugging purposes.

I hope this helps someone out in the future.

GetFileNameClass oGetFileName = new GetFileNameClass();
oGetFileName.Filter = “Excel files (*.xls)|*.xls”;
oGetFileName.InitialDirectory =
Environment.GetFolderPath(Environment.SpecialFolder.Personal);
Thread threadGetExcelFile = new Thread(new ThreadStart(oGetFileName.GetFileName));
threadGetExcelFile.ApartmentState = ApartmentState.STA;
try
{
threadGetExcelFile.Start();
while (!threadGetExcelFile.IsAlive); // Wait for thread to get started
Thread.Sleep(1); // Wait a sec more
threadGetExcelFile.Join(); // Wait for thread to end

// Use file name as you will here
string strValue = oGetFileName.FileName;

}
catch(Exception ex)
{
_SBO_Application.MessageBox(ex.Message,1,”OK”,”",”");
}
threadGetExcelFile = null;
oGetFileName = null;

The following is my GetFileName class. More properties can be easily added like FileName, Filter, and InitialDirectory were. Change the namespace as appropriate.

using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace MyNamespace
{
///
/// Wrapper for OpenFileDialog
///
public class GetFileNameClass
{
[DllImport( "user32.dll" )]
private static extern IntPtr GetForegroundWindow();

OpenFileDialog _oFileDialog;

// Properties
public string FileName
{
get { return _oFileDialog.FileName; }
set { _oFileDialog.FileName = value; }
}

public string Filter
{
get { return _oFileDialog.Filter; }
set { _oFileDialog.Filter = value; }
}

public string InitialDirectory
{
get { return _oFileDialog.InitialDirectory; }
set { _oFileDialog.InitialDirectory = value; }
}

// Constructor
public GetFileNameClass()
{
_oFileDialog = new OpenFileDialog();
}

// Methods

public void GetFileName()
{
IntPtr ptr = GetForegroundWindow();
WindowWrapper oWindow = new WindowWrapper(ptr);
if (_oFileDialog.ShowDialog(oWindow) != DialogResult.OK)
{
_oFileDialog.FileName = string.Empty;
}
oWindow = null;
} // End of GetFileName
}
}

Edit: Changed namespace to “MyNamespace”

Whoops, I forgot the window wrapper:

using System;

namespace MyNamespace
{
public class WindowWrapper : System.Windows.Forms.IWin32Window
{
private IntPtr _hwnd;

// Property
public virtual IntPtr Handle
{
get { return _hwnd; }
}

// Constructor
public WindowWrapper(IntPtr handle)
{
_hwnd = handle;
}
}
}

来源: http://www.cnblogs.com/el-net/articles/1036863.html