一种与SAP集成的回调方法与流程

文档序号:12664391阅读:228来源:国知局
本发明涉及SAPRFC接口集成
技术领域
:,更具体地,涉及一种与SAP集成的数据回调的方法。
背景技术
::SAP(企业管理系列软件)为“SystemApplicationsandProducts”的简称,是SAP公司的产品——企业管理解决方案的软件名称。然而,目前,随着企业信息化技术的发展,一个企业经常会上几个系统去支撑整个信息化框架,SAP系统在制造行业的受用度很高,企业如果同时使用相关无开放接口软件与SAP系统,则两个系统之间的集成不可避免,与SAP集成有几种方式,此处主要针对的是与SAPRFC接口集成。RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中至少有一个必须是SAPABAP系统。这种远程功能调用也可在同一系统内部进行(如本地SAP系统内的远程调用);但通常情况下,调用程序和被调用程序处于不同系统。技术实现要素:本发明为克服上述问题或者至少部分地解决上述问题,提供一种与SAP集成的数据回调的方法。根据本发明的一个方面,提供一种与SAP集成的数据回调的方法,包括以下步骤:步骤1,设置RFC接口名称数组,用于存储RFC接口名称信息;设置SAP参数名称数组,用于存储SAP参数名称信息;设置SAP参数类型数组,用于存储SAP参数类型信息;设置数值来源数组,用于存储数值来源信息;步骤2,读取所述RFC接口名称数组、SAP参数名称数组和SAP参数类型数组内数据信息,并分别生成对应的中间文件;步骤3,读取所述中间文件的数据信息;将所述中间文件数据信息上传给SAP接口实现SAPRFC接口的回调。本申请提出一种与SAP集成的数据回调的方法,避免针对每个SAPRFC接口做定制开发,方便外部程序调用。附图说明图1为根据本发明实施例的一种与SAP集成的数据回调的方法整体流程示意图;图2为根据本发明实施例的一种与SAP集成的数据回调的方法中XML文件结构示意图。具体实施方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。图1中,示出本发明一个具体实施例中,一种与SAP集成的数据回调的方法整体流程示意图。总体上,包括:步骤1,设置RFC接口名称数组,用于存储RFC接口名称信息;设置SAP参数名称数组,用于存储SAP参数名称信息;设置SAP参数类型数组,用于存储SAP参数类型信息;设置数值来源数组,用于存储数值来源信息;步骤2,读取所述RFC接口名称数组、SAP参数名称数组和SAP参数类型数组内数据信息,并分别生成对应的中间文件;步骤3,读取所述中间文件的数据信息;将所述中间文件数据信息上传给SAP接口实现SAPRFC接口的回调。一种与SAP集成的数据回调的方法,整体流程示意图。所述步骤1中设置数值来源数组,用于存储数值来源信息还包括:设置不同数值表示参数的类型:普通参数、结构体参数和表参数;设置不同数值表示参数为输入参数或输出参数。例如(1、2、3)表示输入参数,(4、5、6)表示输出参数,其中(1、4)表示普通参数,(2、5)表示结构体参数,(3、6)表示表参数。一种与SAP集成的数据回调的方法,整体流程示意图。所述步骤2还包括:设置数值来源数组,用于存储数值来源信息;针对普通参数,存储变量值;针对结构体参数,存储一维数组名称;针对表参数,存储二维数组名称。一种与SAP集成的数据回调的方法,整体流程示意图。所述中间文件为xml格式。一种与SAP集成的数据回调的方法,整体流程示意图。所述步骤3中将所述中间文件数据信息上传给SAP接口实现SAPRFC接口的回调还包括:利用C#封装DLL技术,解析所述xml格式中间文件的数据数据信息;将所述解析得到的数据信息传递给SAP接口实现SAPRFC接口的调用。SAPRFC接口是由接口名称、输入参数、输出参数组成的,其中参数类型由普通变量参数、结构体参数和表参数组成;普通变量参数:一个变量存储一个值;结构体参数:可以理解成多个普通变量、结构体和表参数的集合;但是RFC接口的结构体参数不会设计的这么复杂,一般都是由多个普通变量组成的集合;表参数:类似于数据库表。针对SAPRFC接口的参数类型,回调的设计如下:一种实现与SAP集成的回调方法,其特征在于包括以下步骤:设置FunctionName、ParamName[]、ParamType[]、ParamFrom[]数组,其中FunctionName[]:RFC接口名称;ParamName[]:存储SAP参数的名称;paramType[]:存储SAP参数的类型。在SAP中,RFC接口参数类型分为三种:一般变量、结构体(Struct)和表(Table),为了方便生成对应的xml节点,故用数值来区分类型(每一种参数类型的xml节点格式不一样);由于输入参数和输出参数在XML中是两个大节点,故每一种参数类型有两个数值,一个表示输入,一个表示输出。【0/1/2】表示输入参数,【3/4/5】表示输出参数;【0/3】表示普通参数,【1/4】表示结构体参数,【2/5】表示表参数;ParamFrom[]:存储值的来源,针对普通参数,直接存储变量值;针对结构体参数,存储一维数组名称;针对表参数,存储二维数组名称。如下表具体实施例所示:如图2所示,读取所述数组内包含的数据信息并生成对应的xml文件,其中,SAP:根节点;FuncName:SAP接口名称;Exports:输入参数节点,其下存储输入参数的名称及值;该节点下可以有Normal、Struct、Table一个和多个节点;Normal:普通参数节点,name属性存储参数名称,value参数存储值;Struct:结构体参数节点,name存储结构体参数名称,该节点下存在至少一个Normal节点;Table:表参数节点,name存储表参数名称,该节点下存在一个Columns节点和至少一个Data节点;Data:表参数一行的记录,name存储字段名,value存储字段值Columns:表参数的字段名存储节点;Meta:每一列的字段名和字段值。生成相应的数据XML文件。与SAP进行集成之后,所生产结果XML文件。将上述数据XML进行解析,解析的xml数据最终存储在SapFuncStruct类对象下。解析步骤:获取SAP接口名:获取FuncName节点,读取节点文本数据,将数据存储在SapFuncStruct对象的FuncName属性中;获取输入参数:遍历Exports节点下的子节点,子节点个数即为SapFuncStruct对象中数值exportParam的长度。当子节点名称为Normal,则表示该参数为普通参数,Type设置为isNormal,Name为属性name对应的值,value为属性value对应的值;当子节点名称为Struct时,则表示该参数为结构体参数,Type设置为isStruct,Name为节点属性name对应的值,遍历该节点下的子节点Normal,Normal节点的个数即为Item数组的长度,item成员的设置按照步骤1)处理;当子节点名称为Table时,则表示该参数为表参数,Type设置为isTable,Name为节点属性name对应的值;获取该节点下的子节点Columns节点,遍历Columns节点下的子节点meta,meta节点的属性name即为table参数的一个字段名,根据获取的字段名建立DataTable对象TableValue;遍历Table节点下的子节点Data,每一个Data节点即为DataTable对象的一行值,遍历Data节点下的子节点meta,获取对应的name属性和value属性,将Data节点对应的行数据添加到TableValue中;获取输出参数:遍历Imports节点下的子节点,子节点个数即为SapFuncStruct对象中数值importParam的长度。当子节点名称为Normal,则表示该参数为普通参数,Type设置为isNormal,Name为属性name对应的值;当子节点名称为Struct时,则表示该参数为结构体参数,Type设置为isStruct,Name为节点属性name对应的值,遍历该节点下的子节点Normal,Normal节点的个数即为Item数组的长度,item成员的设置按照步骤1)处理;当子节点名称为Table时,则表示该参数为表参数,Type设置为isTable,Name为节点属性name对应的值;获取该节点下的子节点Columns节点,遍历Columns节点下的子节点meta,meta节点的属性name即为table参数的一个字段名,根据获取的字段名建立DataTable对象TableValue;与SAP交互后,根据SAP的返回值写XML:根据获取到的输出参数,从SAP从提取对应的值,写入到xml文件中:如果输出参数类型Type为isNormal,则根据Name属性值定位到xml的Imports节点下的Normal节点,给节点添加value属性,并设置属性值;如果输出参数类型Type为isStruct,则根据Name属性值定位到xml的Imports节点下的Struct节点,遍历Item数组,根据数值成员的Name属性设置对应name属性匹配的Normal节点的value属性值;如果输出参数类型Type为isNormal,则根据Name属性值定位到xml的Imports节点下的Table节点,遍历TableValue行记录,根据行记录添加Data节点并以meta节点的方式存储该行对应的字段名和值;得到的数据传递给SAP接口实现SAPRFC接口的调用。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1