ExcelVBA与SAPRFC接口调用实例.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 =

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档