- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Excel- VBASAP - R FC刘静
Excel- VBA
SAP - R FC
刘
静
摘 要: 通过 VBA 程序实例, 介绍了利用 Excel 的 VBA 宏程序, 调用 SAP 系统的 RFC 远程函数
接口, 实现外部数据与 SAP 系统的交互。 程序实现了在 VBA 中登录 SAP 系统, 并完成对 SAP 主 数据的写入和读取, 同时也简单给出对 RFC、 BDC、 VBA 的理解和经验。
关键词: SAP 系统; 远程函数调用; VBA 宏程序;
批量数据转换
SAP 系统目前已经逐渐成为国内很多大型企业实施 ERP
系 统 的 首 选 。 自接触该系统之后 , 工 作 中 一直存在一种困扰 ,
程序开发
2
2.1 模板确定
这里不详细介绍员工主数据字段 获 取 和 BDC 录 制 过 程 , 一 般 有 实 际 SAP 系 统 工作经验的用户都会接触到这一基本技 术 。 只给出录制好的 BDC 模 板 文 本 在 Excel 中 编 辑 好 的 结 果 , 如图 1 所示。 主数据模板亦 如 图 2 所 示 , 模板中所列出的字段 都是变量, 常量字段则在 BDC 中默认 数 值 导 入 。 注 意 BDC-员 工和 FIELD-员工两个模板中的字段名要一一对应 , 完 全 一 致 。 例 如 : 如 : BDC-员 工 中 的 LIFNR 对 应 的 是 FIELD-员 工 第 一 行的 LIFNR, 以此类推。
即 在 维 护 SAP 主 数 据 时 ,
重复性手工劳动过多 , 导 致 工 作 效
率低下, 数据错误率高。 以员工主数据维护 (BDC 模板维 护 方
式) 为例, 其操作流程如下 :
(1) 确认员工主数据模板 , 主要包括 LFA1 表字段名称。
(2) 运行事务代码 SHDB 录制 BDC 数据导入模板。
(3) 按要求逐项填写员工主数据并存为 TXT 文本文件。
(4) 用 SAPGUITOOLS 校验数据并生成可导入 BDC 数 据 文 本 。
(5) 执行事务代码 ZZ 上传该 BDC 文本。
(6) 执 行 事 务 代 码 SM35, 执 行 数 据 导 入 SESSION 导 入 数 据 。
(7) 在 SAP 系 统 的 数 据 导 入 SESSION 生 成 的 LOG 中 手 工 检查数据导入情况 。
按照这个流程手工维护主 数 据 , 重 复 性 步 骤 多 , 数 据 校 验 与数据导入检查繁琐 , 出错后纠错查找过程相当麻烦 。
于是在工作之余 , 经常思考能否通过程序自动实现主数据 的 自 动 校 验 、 导入和导入后的检查 。 数 据 校 验 相 对 容 易 , 在 Excel 中 用 VBA 完 全 可 以 实 现 。 但导入和导入后的检查则需要 和 SAP 系统进行数据交换 , 接 口 在 哪 里 呢 ? 通过不断交流学 习和检索相关资料 , 终 于 发 现 原 来 SAP 系统早已提供了这样 的接口, 即 RFC 远程函数调用。
图 1
员工 BDC 模板
1 测试环境
(1) Windows XP 下 安 装 微 软 Office Excel, 笔 者 使 用 版 本
2007,2003 也可以。
(2) 安 装 SAP_GUI 客 户 端 , 使 用 的 版 本 为 7.1, 默 认 安 装 即可。
(3) 服务器端要有测试系统 (T 系 统 ), 用户权限设置时 ,
要拥有对事务代码 SM35, SHDB, XK01 的使用权限。
图 2
员工主数据模板
2.2 程序编制打开 Excel
2.2 程序编制
打开 Excel, 调出宏编辑器, 将以下代码写入 :
统”
Exit Sub
End If
updMode = “S”
tranCode = “SM35”
For idx1 = startRow To maxBdcRow
bdcWork (idx1).ProgramName = bdcTemplate.Cells (idx1, 2)
bdcWork(idx1).DynPro = bdcTemplate.Cells(idx1, 3) bdcWork(idx1).ID = bdcTemplate.Cells(idx1, 4)
bdcWork(idx1).FieldName = bdcTemplate.Cells(idx1, 5) bdcWork(idx1).FieldValue = bdcTemplate.Cells(idx1, 6) Next
For idx2 = startRow To maxDataRow For idx1 =
您可能关注的文档
- 2018新部编本二年级下册语文第五单元 口语交际《图书借阅公约》教学课件.ppt
- 2018新部编本二年级下册语文第五单元 口语交际《图书借阅公约》教学课件4.ppt
- 2018新部编本二年级下册语文口语交际《推荐一部动画片》12课件.ppt
- 2018学年八年级语文下册 第二单元教案 新人教版.doc
- 2018学年八年级语文下册 第三单元教案 新人教版.doc
- 2018学年八年级语文下册 第一单元教案 新人教版.doc
- 2018必威体育精装版苏教版二年级下册语文期中测试卷3份.doc
- 2500吨水泥厂生产运行百分制考核方案.doc
- 10010客服省分外包方案.doc
- 1026001-0066-00_66kV变电站用棒形支柱瓷绝缘子通用技术规范.doc
文档评论(0)