欢迎来到天天文库
浏览记录
ID:42027082
大小:292.09 KB
页数:4页
时间:2019-09-05
《Excel-VBA与SAP-RFC接口调用实例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#‘‘、‘m⋯一t
2、t≈⋯‘~实用第一智慧密集⋯。⋯⋯⋯一⋯⋯⋯⋯⋯一⋯Exce1.VBA与sAp一c接口调用实例刘静摘要:通过VBA程序实例,介绍了利用Excel的VBA宏程序,调用SAP系统的RFC远程函数接口.实现外部数据与SAP系统的交互。程序实现了在VBA中登录SAP系统,并完成对SAP主数据的写入和读取,同时也简单给出对RFC、BDC、VBA的理解和经验。关键词:SAP系统;远程函数调用;VBA宏程序;批量数据转换系统的首选詈自接触该系统之后,工作中一直存在一种困扰,2程一序~开~发一即在维护SAP主数据时,重复性手工劳动过多,导致工作效2.1
3、模板确定率低下,数据错误率高以员工上数据维护(BDC模板维护方这里不详细介绍员j二主数据字段荻取和BDC录制过程,式)为例,其操作流程如下:一般有实际SAP系统工作经验的用户都会接触到这一基本技(1)确认员_[上数据模板,主要包括LFA1表字段名称。术。只给出录制好的BDC模板文本在Excel中编辑好的结果,(2)运行事务代码SttDB录制BDC数据导入模板。如图l所示。主数据模板亦如图2所示.模板中所列出的字段(3)按要求逐项填叮了工主数据并存为TXT文本文件。都是变量,常量字段则在BDC中默认数值导人。注意BDC一员(4)用SAPGUITOOLS校验数
4、据生成【1J‘导人BDC数据工和FIELD一员工两个模板巾的字段名要一一对应,完全一致。文本。例如:如:BDC一员上中的&LIFNR对应的是FIELD一员工第一(5)执行事务代码ZZJ:传该BDC文本。行的LIFNR,以此类推。(6)执行事务代码SM35,执行数据导人SESSION导入数据(7)在SAP系统的数据导入SESSION生成的LOG中手工检查数据导人情况按照这个流程手工维护主数据,重复性步骤多,数据校验与数据导入检杏繁琐.出错后纠错查找过稗相麻烦。于是在丁作之余,经常思考能否通过程序自动实现主数据的自动校验、导人和导入后的检查。数据校验相对容易,
5、存Excel中用VBA完全可以实现。但导入和导入后的检查则需要和SAP系统进行数据交换,接口存哪里呢?通过小断交流学习和检索相关资料,终于发现原来SAP系统早已提供了这样的接¨,即RFC远程数调用。图1员工BDC模板1测试环境‰暴墓妒K{;《皴》弱(1)Win~dowsXP下安装微软OfficeExcel,笔者使用版本l琏窭;_一■紫酱“--一。一_l⋯2007,2003也可以{;篆ii={墨::.黼鲢嚣二[==!}二L鱼:幽一寿瓣圈(2)安装SAPGUI客户端,使用的版本为7.1,默认安装i盘即可(3)服务器端要有测试系统(T系统),J【_}j户权限设置
6、时,⋯一要拥有对事务代码SM35,SHDB,XK01的使用权限。图2员工主数据模板电与矗TypPeBDcTYPE要自定义结构0de:”rogramNameAss仃g:Dyn0A.s⋯s廿。ng35”IDA;stivvv,T0ma×Bdc⋯R0WsString⋯Fi⋯~o⋯⋯i⋯.’ProgramName:bdcT⋯em。。pla⋯te一_CellseldNameAsString⋯.⋯dVa。ueAssngdX)bbddccWWoorrkk((iiddXx111.)-.-DIDyinPr。:bdcTempIate_cells(3)pe:Di.bdcTempI
7、ate.CeIIs(idx1,4).m:ad⋯pcCTo曲nnAAsObjbje.cbdcW0rk(_d×dNamebbddccT—Teemmppl⋯alatete.C.C⋯eell—sUs(i(didxx—1。。5)l,SWejtthSaspConn=ateObje(1IsAP。FUNCONlLdx2⋯To⋯n^+^D^⋯OLOILI
8、IJVVIIlaAiJciLCIIiuvv⋯,apCn。ne.i0n⋯一idxl:stoTomaXBdcR。wclient=”900。’⋯⋯⋯⋯’⋯‘⋯⋯⋯。。Se=日10..***。***HtxnName=.Applic
9、ationrs⋯IfbdcWOrk[IL,J2~II.PFIrOgramName<>lAndbdc⋯AP服务器地址Iwo:、’、>,Then⋯⋯⋯⋯一⋯⋯~⋯⋯·SystemNutuber=“∞”⋯II'MlUAI},。品in:—⋯·Languag“”,}.DynP“0000l0rbd⋯。一。。IICII⋯..Work(idx1).ID=“T”Then.Passwod=“p。sswo”htAIII"c一aiiIe:bdc。Work(idx1)⋯.d⋯Na⋯me⋯.co=txnNaeEndSub⋯’’、⋯~SubRfcCall()ElseDimbdcW\or
10、k(300)AsBDCTYPEtempBeg““⋯DimFuncA
此文档下载收益归作者所有