声明:本文仅代表作者观点和立场,不代表任何公司!仅用于SAP软件应用学习参考。 企业在实施SAP/ERP系统项目,一定需要考虑ERP系统如何与企业的其它应用系统进行对接的问题,比如:SAP系统创建的生产订单需要推送给MES系统(生产制造执行系统),又比如在BPM系统(业务流程管理系统)申请的物资采购需求需要推送到SAP系统创建采购订单等等。 与SAP/ERP系统对接的其它应用系统可能基于JAVA平台或.Net平台开发的系统,那么就需要一种可以实现跨应用平台和跨应用程序进行通信的接口技术,换句话说,就是可以实现我用ABAP写的应程序可以和Java写的应用程序或用.Net开发的应用程序之间进行通信和数据交互。 Webservice就是为实现上面这样需求而诞生的接口技术之一,它提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开发和部署的软件,能够利用这一平台实现分布式计算的目的。 WebService的思想是:使得应用程序也具有Web分布式编程模型的松散耦合性,通俗的说就是不管你是什么平台和什么语言,只要你通过Web标准协议将你的一些应用程序组件接口公开发布到Internet上,那么任何系统平台就可以通过Web服务来调用你的应用程序组件,从而实现不同的平台和操作系统进行交互访问。 文本重点不是介绍WebService技术的细节,而是重点介绍SAP如何使用这种接口技术。SAP系统要实现与其它系统的交互或者集成,除了可作为webservices的提供者将自己应用程序组件封装成Web服务供其它系统调用,也可以作为webservices的使用者,主动调用其它系统提供的Webservice服务来访问其它系统,从而实现系统间的通信和数据交互。 1.外部访问SAP Webservices服务配置(Service Provider) 要让外部应用能够访问SAP的WebService(以下简称为WS),那么必须配置SAP的webservice作为服务提供者(Service Provider),可以将SAP已有功能封装成webservice对象,以WEB标准协议在Internet上被其他系统进行调用。 具体的实现课按照如下步骤进行操作: 1.1.创建RFC函数 1.2.给RFC函数配置WS(webservice) 1.3.使用WSADMIN生成WSDL(可供外部访问的XML链接) 备注:如果是SR3以上的版本,则通过执行T-CODE:SOAMANAGER生成WSDL 具体操作步骤 为了说明SAP/Webservice 接口服务如何进行发布,首先新建一个简单的RFC Function来说明,这个Function取物料主数据的跨工厂状态。 步骤1:创建RFC函数(SE37/SE80)创建function的编程过程这里只做简单介绍,详细介绍可以参考我的前期的公众号文章(如下连接): 注意:这里要将函数属性页签中的处理类型设置为“远程启用的模块” 创建好function后,将function发布为webservice,具体操作步骤如下 在SE37界面下,依次展开菜单栏上的以下菜单: 如果WS基于函数组的话,则选择“来自函数组”即可。 系统会进入创建WS向导界面。 点击【继续】 点击【继续】 点击【继续】 这里的配置文件(Profile)是用来设置服务的安全策略的,这里建议选择第四个,第四个就是简单地使用SAP提供的接口用户名和密码进行访问。 点击【继续】 点击【Complete】 Webservice新建发布 创建向导最后一步可以勾选【发布】,这样会自动发布. 若没有勾选后续可以用 tcode: wsconfig,找到相应的webservice 并新建发布. 点击【创建】 点击保存 上图变成绿色信号灯,就代表OK了。 3.使用事务码WSADMIN生成WSDL(可供外部访问的XML链接) WS创建完成后,还需要使用WSADMIN来进行绑定WSDL才能被其他系统通过web方式进行访问和调用。 备注:WSDL :对于服务消费者(Service Consumer)来说,要找到一个自己需要使用的服务,他必须知道如何以及从哪调用。WSDL 规范是一个描述接口、语义以及Web服务的XML文档。给这个XML文档配置上网络地址后,就可以简单而又快捷地被查找和定位 具体操作步骤如下: 找到我们刚建的webservice 选择Document Style点击确认后,浏览器会打开一个窗口,这就是我们要的WSDL,系统会弹出IE浏览器浏览WSDL,需要提供账户和密码,显示如下界面。 至此SAP端的webservice建完了。这个可以拿到任何系统中使用,无论是.NET还是JAVA或ABAP等平台都可以。 2. SAP访问外部Webservice配置(Service Consumer)前面讲到SAP要实现与其他系统的交互或者集成,除了作为webservice的提供者,被动被调用外,也可以作为webservice的使用者,主动调用第三方系统的WS,Netweaver通过创建代理能够通过Internet直接调用采用标准协议封装的其他系统提供的webservice。 选择包->鼠标右键->创建->企业服务
点击继续 输入外围系统的用户名和密码 验证成功后选择包及传输请求,前缀为代理类及相关参数前缀,下一步完成。 保存并激活完代理类后,然后进入事务:LPCONFIG,进行创建逻辑端口的操作 点击创建点击保存
程序调用web service
外围系统的接口调整 |
|