首页> 中国专利> 一种基于XML的SAP系统间数据传输的方法

一种基于XML的SAP系统间数据传输的方法

摘要

本发明公开了一种基于XML的SAP系统间数据传输的方法,该方法通过将数据内容和数据格式封装到标准XML中,实现数据在SAP系统之间的传输。本发明可以屏蔽系统业务数据本身结构的差异,采用标准数据类型STRING,以屏蔽系统之间接口定义的差异,可实现数据接口统一化。本发明适用于双方系统发送变化后数据的传输。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-07

    授权

    授权

  • 2014-05-21

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140121

    实质审查的生效

  • 2014-04-23

    公开

    公开

说明书

技术领域

本发明涉及一种数据传输方法,具体地说是一种基于XML的SAP系统间数据 传输的方法。

背景技术

作为大型的企业管理软件,SAP系统在大型的集团公司、多业务领域的大型 企业应用的越来越广泛,很多公司都拥有多个SAP系统,而系统之间又需要进行 数据交换,或者是业务同步等。

在有多套SAP系统部署的生态环境中,这些SAP系统之间需要进行数据传输。 当某个系统业务发送变更后,难免会导致相关的系统之间接口错误,导致之前的 数据传输程序的不顺畅,而这时需要花费大量的时间进行接口的修改及联调测试 工作。由于系统之间接口定义没有一个统一的标准,或是协议,当已经上线的系 统发生变更时,对接口定义的修改和测试,会占用很大的工作量。

发明内容

为了克服现有技术存在的问题,本发明的目的是提供一种基于XML的SAP系 统间数据传输的方法,该方法通过将数据内容和数据格式封装到标准XML中,实 现数据在两个SAP系统之间的传输,从而屏蔽系统业务数据本身结构的差异,可 采用标准数据类型STRING,以屏蔽系统之间接口定义的差异,可实现数据接口 统一化。本发明适用于双方系统发送变化后数据的传输。

本发明的目的是通过以下技术方案来实现的:

一种基于XML的SAP系统间数据传输的方法,其特征在于:该方法通过将数 据内容和数据格式封装到标准XML中,实现数据在SAP系统之间的传输,具体步 骤如下:

1)用ABAP语言编写封装器,定义接口;

2)部署封装器,封装器完成后,在所有涉及的SAP系统中部署封装器,以 便在不同的系统中使用封装器中定义的方法;

3)将数据整理成SAP内表形式,并调用封装器的方法CREATE_FOR_ITAB,将 数据放入封装器实例中;如果需要传输多个SAP内表,则同时调用方法 ADD_ITAB,将数据加入到封装器实例中,实现数据内容和结构封装;

4)调用封装器方法GET_STRING,将封装器实例转换成通用传输类型;SAP 系统之间结构的参数定义以通用传输类型定义;则系统发生变化,接口不需 要变化;

5)将上一步骤得到的通用类型数据传输到差异SAP系统,传输使用RFC调 用;

6)数据接收系统接受到上一步传输的数据后,调用封装器的方法 CREATE_FOR_STRING创建封装器实例;

7)数据接收系统通过封装器实例解析数据,调用封装器;通过内表标示获 取内表数据,根据双方系统约定的内表标示获取内表数据,根据方法返回的 内表数据整理成想要的数据,应用于本系统业务,由此实现数据和数据本身 的结构从一个SAP系统到另一个SAP系统传输。

本发明中,中用ABAP语言编写封装器,定义接口,具体如下:

1.CONSTRUCTOR:构造函数,创建一个XML属性,其类型为if_ixml,其是 最终用来存储数据和内部结构的载体;

2.GET_NODE_BY_NAME:根据结点名称,获取此结点的方法;

3.CREATE_FOR_ITAB:将数据放入封装器的方法;通过传入的内表,使用系 统类静态方法cl_abap_typedescr=>describe_by_data方法得到内表的 数据结构,同时,在XML的Root结点下创建一个结点,名为传入的唯一 标示内表标示,将内表结构的字段特性,在内表标示下创建一个Head结 点,存入内表字段特性;在内表标示结点下创建结点Table,将业务数据 存入名称为Table结点中;

4.GET_ITAB_CATC:获取数据标示的结构信息的方法;通过遍历XML找到存 放结构信息的结点;将内表结构信息提取出来,以便动态创建内表;

5.ADD_VERSION:添加内表结构到封装器中的方法;通过遍历XML在Root 结点下创建一个内表标示,同时将内表结构信息存入创建的结点之下; 创建完内表结构信息后,在内表标示结点下创建一个名为Table的结点, 以用来接收内表数据;

6.ADD_ITAB:通过传入的内表及内表标示,将数据及结构存入封装器的方 法;首先得到内表的结构信息,调用ADD_VERSION将内表结构信息放入 XML中,将将内表数据部分存储在Table结点下;

7.ANALYSIS_TO_ITAB:将封装器中的所有收集的内表解析出来的方法;其 解析结果应如下it_data格式:

TYPES:BEGINOFis_data,

versionTYPEstring,

tableTYPEREFTOdata,

ENDOFis_data.

TYPES:it_dataTYPETABLEOFis_data.

获取封装器中所有的内表标示,对每一个内表标示获取其子结点;遍历 子结点,得到名称为Head的结点,从中获取内表的结构信息,根据结构 信息,在程序中动态创建出内表;遍历子结点,得到名称为Table的结点, 从中获取内表的数据部分;

8.GET_ITAB_BY_VERSION:通过内表标示获取内表数据的方法;通过 ANALYSIS_TO_ITAB方法将封装器中的数据解析后根据内表标示,读取标 示一致的内表数据;

9.GET_VERSION:获取某内表标示的XML结点信息的方法;通过传入的内表 标示遍历XML返回结点名称等于内表标示的节点;

10.REMOVE_VERSION:删除一个内表标示的内表数据及其内表结构信息 的方法;通过ADD_VERSION获取内表标示对应的节点,在封装器中移除 此节点;

11.GET_STRING:将封装器转换成通用传输类型数据的方法;

12.CREATE_FOR_STRING:通过通用类型创建封装器的方法。

本发明将数据及其结构封装在封装器中进行传输。采用本发明可实现数据 接口统一化。并且解决由于双方系统发送变化后,导致数据传输接口定义修改的 问题。

本发明通过将数据内容和数据格式封装到标准XML中,实现数据在两个SAP 系统之间的传输,从而屏蔽系统业务数据本身结构的差异,可采用标准数据类型 STRING,以屏蔽系统之间接口定义的差异,实现数据接口统一化。

本发明适用于双方系统发送变化后数据的传输。

具体实施方式

一种基于XML的SAP系统间数据传输的方法,该方法通过将数据内容和 数据格式封装到标准XML中,实现数据在SAP系统之间的传输,解决系统变化后 修改接口定义的问题,具体步骤如下:

步骤一、用ABAP语言编写封装器。定义接口(本实施例中使用接口 ZP001_IF_XML定义,但不限于此名称),开发类实现类(本实施例中使用类 ZP001_XML_ITAB定义,但不限于此名称),封装器包含的方法描述如下。

1.CONSTRUCTOR:构造函数,创建一个XML属性,其类型为if_ixml,其是 最终用来存储数据和内部结构的载体。

2.GET_NODE_BY_NAME:根据结点名称,获取此结点的方法。

3.CREATE_FOR_ITAB:将数据放入封装器的方法。通过传入的内表,使用系 统类静态方法cl_abap_typedescr=>describe_by_data方法得到内表的 数据结构,同时,在XML的Root结点下创建一个结点,名为传入的唯一 标示内表标示,将内表结构的字段特性(包括name、type_kind、length、 decimals),在内表标示下创建一个Head结点,存入内表字段特性。在 内表标示结点下创建结点Table,将业务数据存入名称为Table结点中。

4.GET_ITAB_CATC:获取数据标示的结构信息的方法。通过遍历XML找到存 放结构信息的结点。将内表结构信息提取出来,以便动态创建内表。

5.ADD_VERSION:添加内表结构到封装器中的方法。通过遍历XML在Root 结点下创建一个内表标示,同时将内表结构信息(包括name、type_kind、 length、decimals)存入创建的结点之下。创建完内表结构信息后,在 内表标示结点下创建一个名为Table的结点,以用来接收内表数据。

6.ADD_ITAB:通过传入的内表及内表标示,将数据及结构存入封装器的方 法。首先得到内表的结构信息,调用ADD_VERSION将内表结构信息放入 XML中,将将内表数据部分存储在Table结点下。

7.ANALYSIS_TO_ITAB:将封装器中的所有收集的内表解析出来的方法。其 解析结果应如下it_data格式:

TYPES:BEGINOFis_data,

versionTYPEstring,

tableTYPEREFTOdata,

ENDOFis_data.

TYPES:it_dataTYPETABLEOFis_data.

获取封装器中所有的内表标示,对每一个内表标示获取其子结点。遍历 子结点,得到名称为Head的结点,从中获取内表的结构信息,根据结构 信息,在程序中动态创建出内表。遍历子结点,得到名称为Table的结点, 从中获取内表的数据部分。

8.GET_ITAB_BY_VERSION:通过内表标示获取内表数据的方法。通过 ANALYSIS_TO_ITAB方法将封装器中的数据解析后根据内表标示,读取标 示一致的内表数据。

9.GET_VERSION:获取某内表标示的XML结点信息的方法。通过传入的内表 标示遍历XML返回结点名称等于内表标示的节点。

10.REMOVE_VERSION:删除一个内表标示的内表数据及其内表结构信息 的方法。通过ADD_VERSION获取内表标示对应的节点,在封装器中移除 此节点。

11.GET_STRING:将封装器转换成通用传输类型数据的方法。

12.CREATE_FOR_STRING:通过通用类型创建封装器的方法。

步骤二、部署封装器:

封装器开发完成后,将所有涉及的SAP系统中部署开发的封装器。以便 在不同的系统中都可以使用封装器中定义的方法。

步骤三、开发自己的应用程序将数据整理成SAP内表形式,并调用封装器的 方法CREATE_FOR_ITAB,将数据放入封装器实例中。如果需要传输多个SAP 内表,则可以同时调用方法ADD_ITAB,将数据加入到封装器实例中。这一步 骤是将数据内容和结构封装的过程。

步骤四、调用封装器方法GET_STRING,将封装器实例转换成通用传输类型。 SAP系统之间结构的参数定义以通用传输类型定义。这样的好处在于系统发 生变化,接口不需要变化。

步骤五、开发人员将上一步骤得到的通用类型数据通过自己实际的企业软件 环境传输到差异SAP系统,这里传输一般使用RFC调用。

步骤六、数据接收系统接受到上一步传输的数据后,调用封装器的方法 CREATE_FOR_STRING创建封装器实例。

步骤七、数据接收系统通过封装器实例解析数据,调用封装器 GET_ITAB_BY_VERSION方法,根据双方系统约定的内表标示获取内表数据, 开发者根据方法返回的内表数据整理成自己想要的数据,应用于本系统业 务。这是实现数据释放的过程。由此实现数据和数据本身的结构从一个SAP 系统到另一个SAP系统传输。

通过如上所述的实施例,可见在差异化SAP系统间数据传输组件所带来的效 果。可实现数据接口统一化。在双方系统发送变化后,实现数据在两个SAP系统 之间的正常传输。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号