J010 工艺管理系统与SAP集成(调用RFC方式)V1.0

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最佳实践方案
工艺管理系统与SAP集成(调用RFC方式)
【内容摘要】
我们实施过的与ERP的接口的项目中,大多都是采用中间表的方式,按约定格式将物料、BOM和工艺路线数据写入中间表,ERP从中间表读取这些数据实现接口功能。

SAP提供了一个更开放的接口方式,RFC(Remote Function Call 远程函数调用)接口技术,可以实现接口数据实时直接写入并在ERP系统中创建BOM和物料等,接收反馈信息。

我们公司在很多项目上,与SAP ERP 接口,就是调用SAP 提供的RFC技术,实现接口。

SAP的实施方有原厂商和代理商之分,实施方开发部署的函数各不相同,本文以无锡华光ERP接口函数调用为例,阐述RFC接口的三个函数内容、调用机制以及安装SAP客户端等基础配置工作,给我们的售前交流和售后实施提供参考。

目录
1 概述 (1)
1.1 前言 (1)
1.2 说明 (1)
1.3 读者 (2)
2 工艺管理系统与SAP ERP接口实践方案 (3)
2.1 业务描述 (3)
2.2 接口场景及方案 (3)
2.3 配置详细描述 (8)
2.3.1 安装SAP客户端 (8)
2.3.2 工艺管理系统调用RFC (9)
3 发布数据.................................................................................................................. 错误!未定义书签。

附件1 三个函数介绍. (13)
1概述
1.1前言
PDM(含工艺管理系统)与ERP的接口,比较常用的是采用中间表,将已发布的产品或零件的BOM和零部件属性以及工艺路线,写入双方约定好的中间表中。

只要约定好每个字段的数据规范格式,这种模式便于双方各自开发,成本相对较低。

但这种中间表方式也有一个不足,就是不能实时反馈ERP是否成功读入了中间表的数据。

且ERP中必须由业务人员主动导入后,才能看到最新的BOM。

最近无锡、上海等项目,工艺管理系统与SAP ERP 的接口,都采用了一个新的接口方式,直接调用SAP的RFC接口,将数据同步到SAP系统中。

优势是:
(1)可以在SAP中同步更新BOM等重要基础数据。

(2)PDM能及时获得数据成功与否的反馈,可以及时检查接口数据是否正确。

1.2说明
RFC函数因SAP实施厂家不同会有差别。

SAP的实施方也有多家厂商,有SAP原厂商、代理商,每个代理商都可能开发自己的RFC函数,或者专门为某一个项目业务开发相关的函数,所以RFC函数的参数和调用机制也是不一样的。

本文以华光股份的案例介绍,重点描述RFC函数调用机制。

RFC数据接口技术用于程序运行时对数据和数据库表格数据进行传递,其实现技术包括批输入(batch input)、SAP SQL等,例如,调用一次接口(一个同步申请号),可以同步一个多级的完整的BOM和多个物料。

术语及定义
RFC:Remote Function Call,远程函数调用。

是SAP系统之间以及SAP与外部系统之间的基本接口技术协议,其他诸多的SAP更高层的接口技术和通信协议都是基于RFC而实现的。

RFC 可以用于2个独立的SAP系统之间、SAP与非SAP系统之间和同一SAP系统中不同模块之间的通信。

RFC函数举例如下,有属性、入参、输出参数、tables表格(输入、输出参数的一种,用这个实现批输入)
BAPI: B usiness Application Programming Interface,业务应用程序接口, BAPI是SAP以外程序访问SAP内部数据和程序的标准方式。

同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。

异步:当一个异步过程调用发出后,调用者不能立刻得到结果。

实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。

1.3读者
本方案书的主要阅读对象为公司的实施部人员、销售经理、咨询顾问和客户服务中心人员。

2工艺管理系统与SAP ERP接口实践方案
2.1业务描述
整体方案采用点对点的集成方案,工艺管理系统直接调用SAP的RFC接口,将数据同步到SAP系统中,如下图所示:
描述:PLM系统根据业务场景发起同步请求到SAP,同时将需要同步的数据按照接口规范传输到SAP的RFC接口输入参数里。

RFC根据通讯方式做同步处理,同时RFC对传输过来的数据进行校验核对:
➢同步方式:
●数据有错误,将错误信息返回给工艺管理系统做相关处理,SAP端不做任何同步处理,
此次通讯也到此结束。

●数据无错误,RFC将调用BAPI创建或者修改主数据,RFC再将BAPI返回的结果进行信
息汇总,然后将汇总信息返回给工艺管理系统后,此次通讯结束。

2.2接口场景及方案
下图为PDM与ERP接口的数据流向图,其中细线为调用函数,同步写入ERP的流程,粗线为从ERP和RFC函数反馈回来的数据流向。

图PDM调用RFC接口与ERP同步的数据流向图
下面分别描述三个数据同步业务。

物料主数据、BOM和工艺路线是ERP中的术语。

➢物料主数据
自制件信息需要在工艺BOM发布完后才能传输至SAP;SAP创建BOM前需要先检查物料主数据是否维护,没有维护的先创建物料主数据。

在无锡华光项目中,采取的方案是:不调用这个物料主数据同步接口(Z_PLM_01),而是直接先调用Z_PLM_03进行BOM同步,由RFC客户端开发,自动去判断物料是否已经存在(SAP开发),如物料不存在,则自动调用Z_PLM_01创建新物料。

➢BOM
工艺BOM中含有工艺用件、原材料用量等数据,先从关联对象的工艺卡中汇总得到,将完整的多级装配关系及工艺信息写入中间表,如下图:
图启动bom软件,从关联对象上获得工艺BOM
图生成符合函数所需的数据并写入中间表
用BOM将物料和bom数据写入中间表后,再在产品结构上通过二次开发调用VB程序,在VB程序中调用BOM同步接口(Z_PLM_03),将中间表数据同步到ERP,如下图菜单:
由RFC客户端写入ERP,BOM新增和修改传输的逻辑是一样的:检查BOM有没有创建,没有则创建,有则先删再创建。

接收反馈的信息并写入日志中间表,作为日志,供下次调用Z_PLM_03函数前,先查询本次要传输的BOM的根节点,是否已传输。

如已经传输,则本次同步的操作类型是2 (修改),日志中没有记录的,本次传输的操作类型为1(创建)。

操作类型是函数的一个输入参数,如下表
➢工艺路线
工艺路线的数据,也是要从关联对象的工艺卡片中,bom汇总获得工艺路线,写入中间表后,调用工艺路线同步接口(Z_PLM_02) 。

一个零部件有多道工序,但同步申请号是同一个。

与BOM同步稍有不同的是,BOM同步,是一个部件完整的多级BOM,批输入,同步申请号是一个,而工艺路线同步申请号则是多个,每个自制件对应一个工艺路线同步申请号。

图启动bom软件,从关联对象上获得工艺路线
图生成符合ERP函数调用工艺路线格式数据并写入中间表写入中间表后,通过二次开发调用VB程序,在VB中调用Z_PLM_02函数,将工艺路线信息写入ERP。

RFC接口处理逻辑是:每个零部件的加工过程(以车间为工作中心)。

检查工艺路线有没有创建,没有则创建,有则先删行项目再创建
接收反馈的信息并写入日志中间表,作为日志,供下次调用Z_PLM_02函数前,先查询本次要传输工艺路线的物料的编码,是否已传输。

2.3三个函数详细介绍请见附件1。

配置详细描述
2.3.1安装SAP客户端
调用RFC函数的前提是客户端机器上已经安装了SAP GUI。

在SAP客户端SAP Gui Client安装的时候,注意选择安装附带的SDK包(最保险是选择完全安装)。

RFC接口程序开发,主要用的是"SAP.Functions"这个控件,通过控件在外部程序模拟SAP Gui Client的用户登录和函数调用,然后返回函数的值。

图安装SAP GUI客户端并配置连接,登录成功方可调用RFC函数此时,必须保证该连接使用的用户名在目标SAP服务器上有足够的权限。

调用一个函数之前,需要知道函数的元数据,比如函数名字,输入输出参数等等。

允许设置各种复杂类型的参数,比如table类型的参数,函数反馈回来的,也可以是一个包含返回值的Table参数。

在系统间通信过程中,需区分发送系统和接受系统。

RFC调用请求从发送系统(调用系统)中传至接收系统(被调用系统,也称远程系统或目标系统),发送请求的系统在通信过程中又称为RFC客户端,通信另一方则称为RFC服务器。

RFC客户端发起远程功能调用以执行RFC服务器提供的功能。

图RFC客户端和服务器端
2.3.2工艺管理系统调用RFC
在工艺管理系统,调用RFC,是通过二次开发脚本将中间表中的数据提取,按照上面所述的
输入参数,按约定格式,提交到RFC接口。

调用RFC是VB程序实现。

图二次开发脚本举例
其中bom同步.exe是VB开发的程序,在bom.dpl中,是以下一段程序来调用。

dp_LoadBuffer("BB","select * from Mid_Bom");
dp_DataEditor("BB");
exec(TempPath+"bom同步.exe",1);
上面的Mid_Bom是中间表,是在工艺管理系统中,调用BOM软件,将一级部件的装配信息汇总后存入该中间表。

下图是bom同步.exe的源代码片段,示意VB调用SAP RFC的程序段。

图VB连接SAP的程序段
调用成功后,可以将反馈来的参数写入日志表,便于下次调用RFC函数前做查询,便于确定本次的调用的I_MODE为1(1创建)还是2(2修改)。

调用成功,可以在SAP ERP中及时查询到新增的物料、bom和工艺路线基础数据,无需人员在ERP端执行导入等操作,节省了人力物力,减少出错,并保证数据的及时性和安全性。

附件1 SAP发布的三个接口函数介绍
1 接口名:Z_PLM_01
接口描述:物料主数据同步接口
调用说明:可一次同步多条数据.何时调用?用户操作界面可说明?接口输入参数:如下表(由接口的调用方提供参数值)
接口输出参数: RFC输出参数
我们要提供的参数值举例如下
其中的Tabes-zplm_matnr 表是由我们工艺管理系统,从产品结构树上提取整个部件的所有物料写入中间表,由VB程序读取这个中间表传输给RFC函数。

RFC返回的参数有EXPORT参数和tables表参数。

如下图所示
图RFC反馈的参数
这些反馈回来的消息,可以存到一个日志表中,便于下次调用RFC接口时,先判断该物料是否已经传输过。

如果是已经传输过,则操作类型为2 (修改)。

2 接口名:Z_PLM_03
接口描述:BOM数据同步接口。

调用说明:以整个BOM(一级部件)为单位,每个BOM调用一次.。

用户操作界面或说明?
该函数可以带两个table,本BOM中含有的物料,如果ERP中还没有创建,则用TABLES- ZPLM_MATNR表中的物料先创建(不用另外调用函数Z_PLM_01)。

接口输出参数: RFC输出参数
工艺管理系统要提供的参数值(输入)和RFC反馈回来的参数值(输出),举例如下
图函数的输入和输出参数(包含批量导入的表)
其中的Tables-Z_STPOBOM 表是由工艺管理系统,从产品结构树上提取整个部件的所有装配关系并存入中间表,由VB程序读取这个中间表传输给RFC函数。

图从结构树上汇总出物料和BOM并存入中间表
从输出参数中的获得物料号(每层BOM的父项编码),写入日志表,便于下次调用该函数时,查询BOM是否已经成功传输过,如果已经传输,则本次的调用的I_MODE为2(2修改)。

RFC 会根据I_MODE值,采用不同的处理机制(删除ERP已有的BOM,重新导入新的BOM)。

3 接口名:Z_PLM_02
接口描述:工艺路线数据同步接口
调用说明:以工艺路线为单位,每条工艺路线数据调用一次。

何时调用?操作界面?接口输入参数:
接口输出参数: RFC输出参数
其中的TABLES-ZPLM_ROUTING表是由工艺管理系统,从产品结构树上提取整个部件的所有自制零件的工艺路线并存入中间表,由VB程序读取这个中间表传输给RFC函数。

图从结构树上汇总获得工艺路线并存入中间表
函数介绍总结,三个函数的输入参数,都是可以有TABLES表参数,实现数据批量导入(batch input);而输出参数是非常相似的,唯独同步类型不同,分别是1、3、2,且同步类型是2时物料号是每一层BOM的父项物料编码。

调用机制有些不同,例如,只需调用一次Z_PLM_01,可以实现批量导入多个物料;BOM以一级部件为单位,调用一次Z_PLM_03,可以把一级部件的各级装配结构写入SAP;工艺路线是一个物料的工艺路线(含多道工序),调用一次Z_PLM_02。

相关文档
最新文档