ABAP RFC接口程序设计(client)

来源:互联网 发布:淘宝jordan旗舰店真假 编辑:程序博客网 时间:2024/06/06 16:59


ABAP RFC接口程序设计(client) james_lx版


经过1年的实践,多次处理RFC接口相关程序后,我发现可以提出一个RFC标准设计模式(CLIENT方式),用于以后的接口程序设计。该模式主要运用于:外部数据传入SAP系统,SAP系统处理后返回结果,这样的场景。外部系统数据进入,是基于RFC函数的。数据通过RFC的参数传入SAP系统。

 

RFC函数的程序代码做如下事情:

 

  1. 数据变量定义

  2. RFC传入参数检查

  3. 传入的数据,系统时间,自动编号等数据组装到日志表前部分数据中

  4. 保存日志表前部分数据到日志表

  5. 调用SAP系统功能完成数据处理

  6. 5步的结果保存到日志表的后部分字段中并写入RFC返回的参数中。

 

我们以一个实际的RFC程序例子来说明:

 

示例RFC程序: ZSD_IF_FM020 销售订单数量修改及关闭

RFC业务背景:DMS销售系统,某销售订单数量被更改或打上关闭标识,这个数据需要从销售系统传到ERP系统中,使ERP系统中做相应的修改。

 

 

RFC函数涉及数据表:

中文名称

程序中名称

类型

RFC传入数据表

GT_ITEM

内表

RFC返回数据表

GT_RETURN

内表

日志表

ZSD025

透明表

 

*RFC函数涉及2个变量,都是内表格式。

 GT_ITEM放的是DMSERP修改销售订单的数据,

GT_RETURN用于ERP接口做完事情后,返回给DMS的消息数据。

ZSD025日志表用来记录RFC工作的过程,用于用户以后随时监控该接口的工作情况。 

 

RFC函数ZSD025日志表字段:

客户端

日志表前部分

ID

创建记录的用户

创建记录的日期

创建记录的时间

销售和分销凭证号

物料号

数量

销售凭证项目

订单状态(N不变,U修改,D删除)

日志表后部分

处理标志

处理日期

处理时间

消息文本

 

*在日志表的前部分字段,用于记录DMS数据传入了ERP系统。

日志表的后部分字段,是等待RFC函数中主要的工作(修改了ERP系统中的销售订单数据)完成后,记录到日志表。

 

处理日志表的前部分代码,业务逻辑简单,代码也相应简单,几乎不会出错。

RFC在修改ERP内的销售订单(或其它复杂的处理)时,会调用ERP系统功能,不排除有出错或系统DUMP的可能。如果出现任何问题或影响到后面的代码都不能执行,我们也可以清晰的从日志表前部分看到发生了什么。

 

因为这样设计,日志表的前部分和后部分夹作复杂的代码,复杂代码如果异常,可以从前部分看到RFC是要处理的记录。

 

ABAPOPENSQLModify命令非常有意思,它会检查数据库表的数据,是否是已经有的(主键),如果有,接下来它会修改这一条数据。

 

这个Modify命令正好和我们的日志保存功能配合:

 

第一次我们对日志表写入了前部分数据。

ERP代码处理

第二次我们对日志表写入后半部分数据,使用Modify命令。

0 0
原创粉丝点击