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

技术编号:9964262 阅读:225 留言:0更新日期:2014-04-24 15:01
本发明专利技术公开了一种基于XML的SAP系统间数据传输的方法,该方法通过将数据内容和数据格式封装到标准XML中,实现数据在SAP系统之间的传输。本发明专利技术可以屏蔽系统业务数据本身结构的差异,采用标准数据类型STRING,以屏蔽系统之间接口定义的差异,可实现数据接口统一化。本发明专利技术适用于双方系统发送变化后数据的传输。

【技术实现步骤摘要】
一种基于XML的SAP系统间数据传输的方法
本专利技术涉及一种数据传输方法,具体地说是一种基于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的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系统传输。...

【技术特征摘要】
1.一种基于XML的SAP系统间数据传输的方法,其特征在于:该方法通过将数据内容和数据格式封装到标准XML中,实现数据在SAP系统之间的传输,具体步骤如下:1)用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,获取封装器中所有的内表标示,...

【专利技术属性】
技术研发人员:孙恕坚张震宇李林
申请(专利权)人:国家电网公司 江苏省电力公司 江苏电力信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1