CN103744991B - 一种基于xml的sap系统间数据传输的方法 - Google Patents
一种基于xml的sap系统间数据传输的方法 Download PDFInfo
- Publication number
- CN103744991B CN103744991B CN201410027807.4A CN201410027807A CN103744991B CN 103744991 B CN103744991 B CN 103744991B CN 201410027807 A CN201410027807 A CN 201410027807A CN 103744991 B CN103744991 B CN 103744991B
- Authority
- CN
- China
- Prior art keywords
- data
- interior table
- wrapper
- node
- interior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012546 transfer Methods 0.000 title claims abstract description 14
- 230000005540 biological transmission Effects 0.000 claims abstract description 31
- 238000010276 construction Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims 1
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于XML的SAP系统间数据传输的方法,该方法通过将数据内容和数据格式封装到标准XML中,实现数据在SAP系统之间的传输。本发明可以屏蔽系统业务数据本身结构的差异,采用标准数据类型STRING,以屏蔽系统之间接口定义的差异,可实现数据接口统一化。本发明适用于双方系统发送变化后数据的传输。
Description
技术领域
本发明涉及一种数据传输方法,具体地说是一种基于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系统之间的正常传输。
Claims (1)
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:BEGIN OF is_data,
version TYPE string,
table TYPE REF TO data,
END OF is_data,
TYPES:it_data TYPE TABLE OF is_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:通过通用类型创建封装器的方法;
2)部署封装器,封装器完成后,在所有涉及的SAP系统中部署封装器,以便在不同的系统中使用封装器中定义的方法;
3)将数据整理成SAP内表形式,并调用封装器的方法CREATE_FOR_ITAB,将数据放入封装器实例中;如果需要传输多个SAP内表,则同时调用方法ADD_ITAB,将数据加入到封装器实例中,实现数据内容和结构封装;
4)调用封装器方法GET_STRING,将封装器实例转换成通用传输类型;SAP系统之间结构的参数定义以通用传输类型定义;则系统发生变化,接口不需要变化;
5)将上一步骤得到的通用类型数据传输到差异SAP系统,传输使用RFC调用;
6)数据接收系统接受到上一步传输的数据后,调用封装器的方法CREATE_FOR_STRING创建封装器实例;
7)数据接收系统通过封装器实例解析数据,调用封装器通过内表标示获取内表数据方法,根据双方系统约定的内表标示获取内表数据,根据方法返回的内表数据整理成想要的数据,应用于本系统业务,由此实现数据和数据本身的结构从一个SAP系统到另一个SAP系统传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410027807.4A CN103744991B (zh) | 2014-01-21 | 2014-01-21 | 一种基于xml的sap系统间数据传输的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410027807.4A CN103744991B (zh) | 2014-01-21 | 2014-01-21 | 一种基于xml的sap系统间数据传输的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103744991A CN103744991A (zh) | 2014-04-23 |
CN103744991B true CN103744991B (zh) | 2017-07-07 |
Family
ID=50502009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410027807.4A Active CN103744991B (zh) | 2014-01-21 | 2014-01-21 | 一种基于xml的sap系统间数据传输的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103744991B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202335B (zh) * | 2014-09-19 | 2018-04-20 | 成都博智维讯信息技术有限公司 | 一种基于xml的简化的sap数据传输方法 |
CN105302728B (zh) * | 2015-11-27 | 2018-03-23 | 中国民生银行股份有限公司 | Sap接口的测试方法和装置 |
CN106843864A (zh) * | 2017-01-09 | 2017-06-13 | 武汉开目信息技术股份有限公司 | 一种与sap集成的回调方法 |
CN108900369B (zh) * | 2018-05-31 | 2021-08-27 | 武汉虹信技术服务有限责任公司 | 一种基于post请求的接口测试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159005A (zh) * | 2006-07-31 | 2008-04-09 | Sap股份公司 | 管理智能物件网与企业应用间交互服务质量的方法和系统 |
CN101221499A (zh) * | 2006-11-29 | 2008-07-16 | Sap股份公司 | 用于配置应用软件的方法和设备 |
CN102098287A (zh) * | 2010-12-17 | 2011-06-15 | 无锡华润上华半导体有限公司 | 一种实现sap与b2b系统数据传输的方法 |
CN102156736A (zh) * | 2011-04-12 | 2011-08-17 | 上海电通信息服务有限公司 | Sap系统与sql数据库之间数据传输的方法 |
-
2014
- 2014-01-21 CN CN201410027807.4A patent/CN103744991B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159005A (zh) * | 2006-07-31 | 2008-04-09 | Sap股份公司 | 管理智能物件网与企业应用间交互服务质量的方法和系统 |
CN101221499A (zh) * | 2006-11-29 | 2008-07-16 | Sap股份公司 | 用于配置应用软件的方法和设备 |
CN102098287A (zh) * | 2010-12-17 | 2011-06-15 | 无锡华润上华半导体有限公司 | 一种实现sap与b2b系统数据传输的方法 |
CN102156736A (zh) * | 2011-04-12 | 2011-08-17 | 上海电通信息服务有限公司 | Sap系统与sql数据库之间数据传输的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103744991A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467241B2 (en) | Dynamically provisioning instances of a single-tenant application for multi-tenant use | |
CN103744991B (zh) | 一种基于xml的sap系统间数据传输的方法 | |
CN104731943B (zh) | 一种服务器和数据处理方法 | |
US20180278725A1 (en) | Converting a single-tenant application for multi-tenant use | |
Attie et al. | Dynamic input/output automata, a formal model for dynamic systems | |
CN104572091B (zh) | 应用软件实现方法、装置以及计算机设备 | |
CN107291523A (zh) | 一种Web前端消息总线系统 | |
CN111367818B (zh) | 基于动态数据返回的系统组件测试方法及装置 | |
US20130138733A1 (en) | Universal collaboration adapter for web editors | |
EP2171614A2 (en) | Transporting table valued parameter over tabular data stream protocol | |
US20150121155A1 (en) | Performing customized deployment scenarios in shared environments | |
CN108304473A (zh) | 数据源之间的数据传输方法和系统 | |
US10348595B2 (en) | Managing data-driven services | |
CN105893591B (zh) | 一种数据共享服务智能编排方法 | |
CN103399735A (zh) | 远程函数调用接口中间层开发方法 | |
CN108228912A (zh) | 一种业务数据的处理方法及相关装置 | |
CN110247843A (zh) | 一种基于微信公众平台的自定义业务消息推送方法及系统 | |
EP2395468A1 (en) | Semantic user interface data assembling | |
CN105447012B (zh) | 一种用于数据库的写入互斥方法及装置 | |
CN106682183A (zh) | 一种可联动的数据可视化看板系统 | |
Li | Design and Implementation of Software Testing Platform for SOA-Based System | |
CN106980617A (zh) | 一种基于json语句操作数据库的方法和系统 | |
CN105488056B (zh) | 一种对象处理方法与设备 | |
CN106503149B (zh) | 一种数据同步方法及其系统 | |
US11467949B2 (en) | Techniques and architectures for providing an isolated runtime context in a shared environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |