发明内容
本发明实施例的目的是提供一种SAP系统的通用接口及其实现方法,能够简化SAP系统RFC接口的数量和升级频率,降低SAP系统的升级维护成本,能够避免因为升级不及时造成的系统调用异常问题。
为了实现上述目的,本发明提供了一种SAP系统的通用接口,包括:
数据传输接口,采用通用数据传输格式,用于:接收外部系统以所述通用数据传输格式发送的功能模块,所述功能模块包括输入参数和输入参数处理规则;
编译处理单元,用于:对所述功能模块进行编译,获得与所述输入参数处理规则对应的编译模块;
执行处理单元,用于:调用所述SAP系统的系统资源执行所述编译模块,获得以所述输入参数处理规则处理所述输入参数的执行结果;
结果返回单元,用于:通过所述数据传输接口,以所述通用数据传输格式将所述执行结果返回给所述外部系统。
优选地,上述的通用接口中,所述数据传输接口中包括安全模块,用于:使用“正则表达式”检测所述功能模块中的敏感关键字,实现接口的安全性控制。
优选地,上述的通用接口中,所述通用数据传输格式为:一维字符串数组,每行最大255字符。
优选地,上述的通用接口中,所述系统资源包括所述SAP系统的数据库和指令集。
优选地,上述的通用接口中,
所述数据传输接口为USB接口、串口、红外线接口或蓝牙接口;
所述编译处理单元为单片机或者CPU;
所述执行处理单元为单片机或者CPU;
所述结果返回单元为存储器或单片机。
优选地,上述的通用接口中,所述SAP系统为服务器;
所述外部系统为计算机、单片机或者生产设备控制系统。
本发明还提供一种SAP系统的通用接口的实现方法,包括:
步骤一,在SAP系统中设置数据传输接口,所述数据传输接口采用通用数据传输格式;
步骤二,接收外部系统以所述通用数据传输格式发送的功能模块,所述功能模块包括输入参数和输入参数处理规则;
步骤三,对所述功能模块进行编译,获得与所述输入参数处理规则对应的编译模块;
步骤四,调用所述SAP系统的资源执行所述编译模块,获得以所述输入参数处理规则处理所述输入参数的执行结果;
步骤五,以所述通用数据传输格式将所述执行结果返回给所述外部系统。
优选地,上述的方法中,在所述步骤二中,还包括:使用“正则表达式”检测所述功能模块中的敏感关键字,实现接口的安全性控制。
优选地,上述的方法中,所述通用数据传输格式为:一维字符串数组,每行最大255字符。
本发明实施例至少存在以下技术效果:
1)本发明实施例中,通用接口是接收来自外部系统的功能模块,并对该功能模块进行编译和执行,完成该功能模块的功能后将结果返回给外部系统,因此,SAP系统通用接口中不再针对不用的外部应用设置不同的应用模块,也就是将功能模块从SAP系统中抽出转移到了外部系统的应用中,在外部系统的应用模块改变时,SAP系统通用接口仍然适用,在SAP系统连接大量不同的外部系统的时候,极大地简化了SAP系统RFC接口的数量和升级频率,不但大大降低了SAP系统的升级维护成本,而且能够避免因为升级不及时造成的系统调用异常问题。
2)使用“正则表达式”对输入代码进行敏感词全表扫描,保证危险性代码不被执行、敏感数据不被获取。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对具体实施例进行详细描述。
图3为本发明实施例的SAP系统通用接口的结构图,如图3所示,本发明实施例提供了一种SAP系统的通用接口,其包括:
数据传输接口301,采用通用数据传输格式,用于:接收外部系统以所述通用数据传输格式发送的功能模块,所述功能模块包括输入参数和输入参数处理规则;
编译处理单元302,用于:对所述功能模块进行编译,获得与所述输入参数处理规则对应的编译模块;
执行处理单元303,用于:调用所述SAP系统的系统资源执行所述编译模块,获得以所述输入参数处理规则处理所述输入参数的执行结果;
结果返回单元304,用于:通过所述数据传输接口,以所述通用数据传输格式将所述执行结果返回给所述外部系统。
可见,本发明实施例中,通用接口是接收来自外部系统的功能模块,并对该功能模块进行编译和执行,完成该功能模块的功能后将结果返回给外部系统,因此,SAP系统通用接口中不再针对不用的外部应用设置不同的应用模块,也就是将功能模块从SAP系统中抽出转移到了外部系统的应用中,在外部系统的应用模块改变时,SAP系统通用接口仍然适用,在SAP系统连接大量不同的外部系统的时候,极大地简化了SAP系统RFC接口的数量和升级频率,不但大大降低了SAP系统的升级维护成本,而且能够避免因为升级不及时造成的系统调用异常问题。
图4为本发明实施例的SAP系统通用接口的示意图,如图所示,SAP系统中,可以只设置一个通用接口300,该通用接口可以被外部系统的多个应用调用。
在具体实践中,应用1可以为数控机床、应用2可以为产品包装线,在数控机床加工前轴时,数控机床需要与SAP系统进行交互,将加工好的成品数量、废品数量同步给SAP系统,并且从SAP系统获取剩余的前轴毛坯数量,这些数据和操作都放在数控机床控制系统的功能模块1中。
图5、图6分别为通用接口的调用示意图和结果返回过程的示意图,如图所示,数控机床在与SAP系统进行交互时候,将功能模块发送给通用接口300,通用接口300完成功能模块进行编译和执行,将加工好的成品数量、废品数量同步给SAP系统。并获得获取剩余的前轴毛坯数量,并将剩余的前轴毛坯数量作为执行结果返回给数控机床。
在数控机床加工的零件变为汽车后轴时,对应的功能模块发生改变,此时,只要对数控机床中的功能模块进行修改即可,无需升级SAP系统。
应用2的产品包装线也是类似,需要将以包装的成品数、消耗的包装盒数量同步给SAP系统,需要获取剩余的包装盒数量,并根据剩余的包装盒数量调整包装线的运转速度和生产规划,当包装的产品改变时候,这些参数和类型都会改变,只要在包装线的控制计算机中将相应的功能模块修改即可,无需升级SAP系统。
在本发明的一个优选实施例中。所述数据传输接口中包括安全模块,用于:使用“正则表达式”检测所述功能模块中的敏感关键字,实现接口的安全性控制。所述通用数据传输格式为:一维字符串数组,每行最大255字符。所述系统资源可以包括所述SAP系统的数据库和指令集。
所述SAP系统可以为服务器,所述外部系统可以为计算机、单片机或者生产设备控制系统。
所述的通用接口中,各部分可以完全通过硬件实现,例如:
所述数据传输接口可以为USB接口、串口、红外线接口或蓝牙接口;
所述编译处理单元为可以单片机或者CPU;
所述执行处理单元为可以单片机或者CPU;
所述结果返回单元为可以存储器或单片机。
图7为本发明方法实施例的流程图,如图所示,本发明还提供了一种SAP系统的通用接口的实现方法的实施例,其包括:
步骤701,在SAP系统中设置数据传输接口,所述数据传输接口采用通用数据传输格式;
步骤702,接收外部系统以所述通用数据传输格式发送的功能模块,所述功能模块包括输入参数和输入参数处理规则;
步骤703,对所述功能模块进行编译,获得与所述输入参数处理规则对应的编译模块;
步骤704,调用所述SAP系统的资源执行所述编译模块,获得以所述输入参数处理规则处理所述输入参数的执行结果;
步骤705,以所述通用数据传输格式将所述执行结果返回给所述外部系统。
可见,本发明提供一种通用的接口实现方案,该方案能解决SAPRFC数量多、版本更新与应用系统不同步、版本切换过程中应用出错等问题,保证各种应用系统在与SAP交互时的稳定性、及时性、便捷性。
使用本发明实施例,可以将程序功能模块从SAP系统抽出,转移到应用程序中,保证版本的同步更新、增强程序的灵活性。
此外,本发明使用了SAP系统程序池技术,实现代码的动态执行。本发明使用“正则表达式”检测敏感关键字技术,实现接口的安全性控制。本发明中的实现方法比传统的RFC编写技术更具通用性,具有更广的使用领域。本发明与传统的RFC技术相比使用灵活,程序更改即时生效、事实性高,功能模块随客户程序同时更新,避免了因版本切换不同步引起的系统异常。
本发明方法实施例包括“通用的RFC”、“通用的数据传输格式”以及“安全性控制”。
1)通用的RFC包括:接收“功能模块”,生成SAP程序,动态执行程序,输出执行结果。
接收“功能模块”,是指RFC设置传入参数,接收外部应用传入的功能模块代码。
生成SAP程序,是指RFC接收到功能代码后,使用SAP的“程序池”功能,即时生成临时的功能程序。
动态执行程序,是利用SAP“程序池”,动态调用执行临时的功能程序,实现RFC程序功能的灵活性。
输出结果,根据定义的输入格式,格式化输出数据,返回给外部应用程序。
2)通用的数据传输格式包括:输入数据格式,输出结果集格式;其中,输入数据格式,包括输入的功能代码和一个备用的输入数据表。代码按行拆分成一维字符串数组,每行最大255字符;备用的输入数据表格式与输入代码表格式一致。输出结果集格式,与输入代码表格式一致。
3)安全性控制包括:使用“正则表达式”对输入代码进行敏感词全表扫描,保证危险性代码不被执行、敏感数据不被获取。
由上可知,本发明实施例具有以下优势:
1)本发明实施例中,通用接口是接收来自外部系统的功能模块,并对该功能模块进行编译和执行,完成该功能模块的功能后将结果返回给外部系统,因此,SAP系统通用接口中不再针对不用的外部应用设置不同的应用模块,也就是将功能模块从SAP系统中抽出转移到了外部系统的应用中,在外部系统的应用模块改变时,SAP系统通用接口仍然适用,在SAP系统连接大量不同的外部系统的时候,极大地简化了SAP系统RFC接口的数量和升级频率,不但大大降低了SAP系统的升级维护成本,而且能够避免因为升级不及时造成的系统调用异常问题。
2)使用“正则表达式”对输入代码进行敏感词全表扫描,保证危险性代码不被执行、敏感数据不被获取。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。