当前位置: 代码迷 >> SAP >> 请问HTTP请求模式的,SAP与招行网银接口程序的开发思路
  详细解决方案

请问HTTP请求模式的,SAP与招行网银接口程序的开发思路

热度:9073   发布时间:2013-02-26 00:00:00.0
请教HTTP请求模式的,SAP与招行网银接口程序的开发思路
各位大侠:

我们公司刚上SAP,现在需要将其财务模组,与招行企业网银做直连接口程序,运行机制如下:
SAP将业务请求,按照招行提供的格式规范,组织成XML报文,发送到一台HTTP服务器上(上面装有招行方面提供的服务程序,机器放在我司内部),然后,由HTTP服务器与招行网银服务器连接与通讯,处理完毕后,招行服务器将结果数据发送到HTTP服务器,最后,HTTP服务器将对对应的结果数据,以XML报文格式,返回到SAP中。

这样以来,我们开发直连程序,就只关心两件事情:
1、在SAP里编写SOCKET程序,以建立与HTTP服务器的通讯
2、按照招行提供的格式,组织XML报文数据,发送给HTTP服务器;并接收来自HTTP服务器的结果报文,并解析给用户

我只知道上述的大概方案,可是具体的技术实现,以前从来没有用过,而且也是刚刚参加了几堂ABAP培训。
有没有朋友,能够简要介绍一下,帮我指点迷津啊,多谢了!!!!!

------解决方案--------------------------------------------------------
跟我遇到的问题基本相同,方法很多,我试验过的有函数调用、面向对象、OLE2组件等方式,都是可行的。
由于我现在开发习惯的问题,最后采用了函数调用的方式;OLE2方式需要自己在系统中注册组件,相对麻烦一些,不建议使用了,我尝试它主要是因为一开始测试函数和OO都没有成功;面向对象方式和函数调用方式基本相同,掌握一种的话,另一种也很容易。

基本方式如下:
1、调用函数 SCMS_STRING_TO_FTEXT 把输入的字符串转化成内表形式,如果你传入的本来就是内表,这步就不需要了;
2、调用函数 SCMS_FTEXT_TO_BINARY 把前面的字符内表转化成二进制内表,主要是去除 Unicode 和非 Unicode 系统之间的差异,如果是非 Unicode 系统,这步也不需要;
3、调用函数 HTTP_POST 按照提交数据到前置机,并接收返回数据;
4、调用函数 SCMS_BINARY_TO_FTEXT 把返回的二进制数据转化成字符内表;
5、调用函数 SCMS_FTEXT_TO_STRING 把字符内表转化成字符串,便于后面进行取子串的分析工作。


面向对象的方式,使用的类是:CL_HTTP_CLIENT 以及相关的接口等,参加下面的 SAP HELP。
http://help.sap.com/SAPHELP_NW04S/helpdata/EN/1f/93163f9959a808e10000000a114084/frameset.htm
------解决方案--------------------------------------------------------
另外,说明一下,无论用哪种方式,实际上都是通过 SAP GUI 所在的客户端提交数据,因此,SAP 服务器与前置机之间不需要互相能够访问,只要保证使用网银接口的用户的计算机能够访问前置机就可以了。
------解决方案--------------------------------------------------------
1/2/4/5都是进行字符串和内表以及内码转换的。
1、5是把字符串转换成内表和反之,2、4是把内表中的字符转换成十六进制码和反之。

HTTP_POST 就可以完整全部的通讯任务并获得返回结果。

XML的生成方式很多,我现在就是直接拼字符串,比较麻烦,但是最直观。感觉你的方法效率会更高。
------解决方案--------------------------------------------------------
文件传输方法:可以查找下,sap里面有个函数组专门用来传输文件的,既然2台机器都是内部,开个端口就好了,se38查找下*ftp*就能找到函数组了
  相关解决方案