- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过EXCEL宏和SAPScript进行批量业务处理汇编
通过EXCEL宏和SAP Script进行批量业务处理SAP提供了很多批量导入的工具,但问题是一般情况下不会赋予普通用户这些权限,因此我结合EXCEL VBA和SAP Script功能整理出一个简易的批量业务处理方式,供大家参考使用SAP Script Recording功能录制SAP操作,生成代码块激活SAP Script Recording选择存放路径和script代码块文件名称点击开始录制SAP操作,建议以”/N”+事务代码,以保存为结尾。生成如下程序代码文件,可以用文本编辑器打开通过EXCEL VBA编写宏代码,用于读取数据模板和导入SAP进入VBA编辑视图复制Script代码块中的代码,并做以下适当修改:在两个Application 和 Connection 之前加入SAP 修改录制中的固定值,改为模板中的相应字段,如 Range(A I).Value等如有更为复杂的数据处理需求,可以在宏代码中加入适当的判断或者循环语句以下代码用于修改物料主数据的,前段和末端代码可以沿用,只需用script代码覆盖病修改中段原代码即可。供参考。Sub EXCEL_to_SAP()yes_No = MsgBox(Do you want to upload data into SAP really?, vbOKCancel)If yes_No = 2 Then EndEnd IfRange(Z1).Value = =COUNTA(A:A): TEMP = Range(Z1).Value: Range(Z1).Value = On Error GoToNotLoggedOnSAP:Set SapGuiAuto = GetObject(SAPGUI) Get the SAP GUI Scripting objectSet SapApplication = SapGuiAuto.GetScriptingEngine Get the currently running SAP GUISet SapConnection = SapApplication.Children(0) Get the first system that is currently connectedSet session = SapConnection.Children(0) Get the first session (window) on that connectionGoTo 10:NotLoggedOnSAP: x = MsgBox(You are not logged on SAP. Please log on and try again., vbOKOnly, Not Logged on SAP) Exit SubOn Error GoTo 010 If TEMP 1 Then For I = 2 To TEMP********************** 1. copy from scrip********************** 2. add SAP before 2 Application and 2 Connection in next 10 lines********************** 3. change fixed value by fields value, refer to - Range(A I).Value -If Not IsObject(Application) Then Set SapGuiAuto = GetObject(SAPGUI) Set SapApplication = SapGuiAuto.GetScriptingEngineEnd IfIf Not IsObject(Connection) Then Set SapConnection = SapApplication.Children(0)End IfIf Not IsObject(session) Then Set session = SapConnection.Children(0)End IfIf IsObject(WScript) ThenWScript.ConnectObject session, onWScript.ConnectObject Application, onEnd Ifsession.findById(wnd[0]).maximizesession.findById(wnd[0]/tbar[0]/okcd).Text = /nmm02session.findById(wnd[0]).sen
文档评论(0)