参考辛勤:我的第一个SAP PROXY ABAP Program(SAP PO 征战五)_sap po征战-CSDN博客av 自拍偷拍
https://www.cnblogs.com/BruceKing/p/11341060.html
一、SAP PO简介:
SAP PO(Process Orchestration),是SAP的中间件系统,是基于SAP Net weaver平台的中间件居品,为企业提供一套维持SAP系统间、SAP系统与Non-Sap系统间以及Non-SAP系统间进行数据交换和历程整合的平台,数据集成不错是A2A或B2B,维持同步和异步的数据交互面貌;基于此,PO维持多个系统间的数据流的集成,从而维持业务层面的历程整合,即BPM(业务历程管束);BRM(业务轨则管束)功能为BPM提供基于业务轨则的业务历程流转,预界说的业务轨则,为BPM的业务节点提供基于轨则的决策,极大的培植了BPM的业务效果。
PO征战在都备的开放的Web Service架构上的,维持来自不同供应商、高度异构、行使不同技巧的系统之间的数据交换和历程整合。PO征战基于可视化和拖拽式的建树,零代码达成各系统间的WEB接口,从而达成资源的分享,镌汰公司的集成本钱,减少代码所带来的复杂度和系统升级的难度。
PO 接口技巧范例提供了基于组件的开放式集成架构,有助于征战柔性的,可靠的和可膨胀的E-Business 贬责有筹谋。PO 征战在web services 、XML messaging 、 J2EE等工业范例仅仅,能够与当今使用任何技巧的第三方软件进行集成,维持File、JDBC、HTTP、RFC、IDOC、BPM、ABAP Proxy、JMS、MAIL、SMTP、SOAP、PCK(SAP Partner Connectivity Kit )以及种种工业规模的范例集成包。
行为中间件,PO维持许多与系统交互的面貌(RESTful, SOAP ,JDBC, FILE )等等
图片av 自拍偷拍
二、PO的版块演进:
XI(Exchange Infrastructure),2002~2005 (ABAP & JAVA Dual Stack) XI(Data Exchange Infrastructure) PI(Process Integration),2005~2012 (ABAP & JAVA Dual Stack) XI( Data Exchange Infrastructure) BPM(Business Process Management) PO(Process Orchestration),2012~2019 (JAVA Stack Only) XI( Data Exchange Infrastructure) BPM(Business Process Management) BRM(Business Rule Management)
PO也曾有7大哥了,它领有3大主邀功能,只在JAVA堆的环境使用启动。
三、PO的特色:
约略每25个SAP ERP系统,其中就会有一个SAP PO中间件在配套使用,
中国当今有6000个SAP ERP系统,那么中国应该有几百个PO办事器在启动。
关于SOA中间件,我嗅觉最大的益处即是能够快速接通多个系统,镌汰企业IT系统的集成时辰和难度。
PO的果断应该是在它提供私有的PROXY技巧功能达成同ERP-SAP系统的高档集成,
弱项其中一个是它莫得MQ办事端,唯有JMS客服端。在音讯管束上,功能还有待了解。
四、PO征战的环境:
SAP PO办事器装置后,提供web供用户探望,web中不错作一些征战建树。
比拟复杂的征战建树,SAP采选了JAVA桌面范例客户端来给用户使用。
JAVA桌面范例责任端口:80,8101,50000。环境详见:SAP PO 征战 一
建树约略分为三大块:
图片
1、SLD是在浏览器里就不错建树。
2、ESR JAVA桌面范例里建树。
3、ID JAVA桌面范例里建树。
(一) 咱们当先在SLD中建树咱们的DEMO实例数据:
图片
这个接口的肯求端和办事端的居品、组件、技巧系统、业务系统等等,都通通建树上去,因为在背面会使用到这些。
肯求方是我的条记本,上头用SoapUI发起WS肯求;办事方是我的一个范例,也曾放到了WIN2008办事器上。
(二)进到ESR里面去,咱们要建树2个接口的内容:
1、肯求方接口的DateType、MessageType、ServiceInterface
咱们的接口是同步接口,肯求发出去,立地会复返收尾,是以不错看到,
DateType、MessageType都配有发送(req)和复返(back)2项。
在ServiceInterface的建树中,咱们不错看到同步方式会包含肯求request的MessageType和response的MessageType。
图片
咱们的接口是同步接口,肯求发出去,立地会复返收尾,是以不错看到,
DateType、MessageType都配有发送(req)和复返(back)2项。
在ServiceInterface的建树中,咱们不错看到同步方式会包含肯求request的MessageType和response的MessageType。
图片
最简便的DT:
图片
图片
图片
2、WS的办事方的ESR建树:
图片
因为办事方的WebService有WSDL(接口范例形色)文献,是以咱们不需要我方再建什么DT和MT了。
把该接口的WSDL文献导入进来,会产生一个ED_demo003:
终末把这个IC的WDSL给SoapUI客户端使用:
图片
发送数据测试告捷(抑止PO要用户名和密码):
图片
追思:
PO的建树里面有许多的观念,建树的标的苟简应该是这么:
图片
WebService在PO中的行使及独特映射面貌行为中间件,PO维持许多与系统交互的面貌(RESTful, SOAP ,JDBC, FILE )等等
SOAP仅仅webService三因素之一, 用来形色传递信息的体式
图片
2. ABAP与webServiceABAP不错径直引入或发布webService.
详见聚首无峰,公众号:ABAP 手段与实战 SAP操作手册之 ABAP调用WEB办事 详见聚首无峰,公众号:ABAP 手段与实战 SAP操作手册之 RFC函数发布WEB办事 3. webService的优点webService的最大优点就在于包含了WSDL(WebServicesDescriptionLanguage) . WSDL包含了这个接口的险些总计信息
数据界说 :接口授递内容的结构界说及类型
调用地址 :办事提供的调用地址
调用点 :办事提供的调用点 SOAP ACTION
何况大部分的软件都维持引入WSDL界说生成调用接口的类,便捷行使中径直使用.
比如ABAP引入WSDL产生类.调用类的要领即是调用接口.
4. SOAPUI与WSDL把WSDL界说引入到SOAPUI(一个行使泛泛的接口测试器具)中不错看到接口的这些信息(数据界说,调用地址,调用点) (虽然,也不错用浏览器通达WSDL界说的地址或者文献,仅仅可读性相对较差)
图片
图片
图片
情色社区 5. PO引入WSDLPO不维持径直引入WSDL地址.
然则不错通过IE浏览器(新版的浏览器似乎莫得另存为功能)把地址另存为文献.
然后在ESB中创建 External Definition 引入WSDL文献.
创建的External Definition 代替了范例的 data type 和 message type .
图片
Service Interface 中不错径直使用引入的External音讯
图片
6. SOAP罗致通说念其中 Target URL 即是通过SOAP UI 看到的调用url地址 SOAP action 即是SOAPUI中看到的调用点,罗致通说念每个接口需要单独界说,因为其中包含了每个接口的脾性: 调用地址,调用点
图片
7. SOAP发送通说念发送通说念只需要界说一些通用属性 安全层级 同步/异步属性. 在PO中不错共用SOAP发送通说念
图片
8. 独特的webService有些系统为了简化或者调和化接口调用. 会发布一种独特的webService .
这种webService中唯有一个string字段. 如下图所示. 调用方需要在这个字段中填入XML或JSON内容. 罗致方需要剖释这个字段中的XML或JSON内容. 字据剖释的收尾再细目后续处理面貌.
优点:不错用一个接口达成总计业务信息的传输.
流毒:WSDL界说丢失了业务含义.未便于调用方默契接口需要传输的内容.
不推选使用这种webService界说面貌, 因为他丢失了三因素之一: 数据界说
图片
PO与独特webServicePO不错通过MAPPING 把一个XML结构映射到一个字段中. 过程如下.
该面貌的原文聚首如下
https://blogs.sap.com/2010/06/17/convert-the-input-xml-to-string-in-pi-71-using-standard-graphical-mapping/av 自拍偷拍
01 源结构图片
02 目标结构图片
03 映射任何一个文本函数(举例trim) . 右键点击源字段,勾选 return as xml
图片
04 源音讯图片
05 目标音讯骨子接口处理时,PO为了幸免嵌套XML的剖释乖张, 会使用独特字符
图片
这种使用转义字符取代 < > 仅仅为了幸免XML的剖释乖张. 并体现XML的嵌套.不影响系统对XML的剖释.
图片
9. 局限性PO对独特webService的MAPPING 存在局限性.
PO MAPPING不错把一个XML结构MAPPING 到一个字段中. 然则因为一个PO接口唯有一次MAPPING. 是以无法同期达成字段映射及XML映射到字段. 若是要达成这种复杂的映射,推测需要使用JAVA征战映射逻辑来达成.
一个变通的要领是把一个接口拆分红两个接口, 让PO本人行为一个中转系统.
比如接口
系统A -> 系统B
不错调度为
系统A->PO造谣
PO造谣->系统B
这么就不错通过两次映射:第一次实行字段暗射, 第二次再把XML结构映射到一个字段. 来达成这个功能. 仅仅PO的建树量增大了一倍.
10. 追思webService是行使泛泛的接口面貌,险些总计软件对webService有精粹的维持.
一般名目中,若是外围系统不是现成的接口, 都提倡使用webService面貌和外部系统交互.
通过webService的WSDL界说不错贬责两边系统对传输内容结构及字段界说的不对.
快速完成接口的调用(不管是否使用PO). 虽然这要征战在不使用独特webService的基础上.
ABAP调用WEB办事 01 前纲要求ABAP调用WEB办事的前纲要求: 你需要一个WEB办事的WSDL界说的地址聚首.
图片
02 创建企业办事干涉TCODE: SE80. 采选一个征战类,右键点击征战类,创建一个企业办事,干涉创建向导
图片
03 创建破钞者代理干涉向导后,采选 service consumer(破钞者代理).
图片
采选external WSDL
图片
采选URL 创建 你也不错用浏览器通达wsdl 下载为土产货文献后, 采选local File创建
图片
输入之前准备好的WSDL的url地址
图片
因为演示的办事是SAP提供的WEB办事 . 是以系统会弹框输入SAP的登录信息, 若是是其它系统提供的, 可能就莫得这弹框了.
图片
树立一个前缀 和征战类.
图片
04 发布破钞者代理完成后. 系统会生成一个service consumer Z_IF_SD216,( 这个办事的称号来自WSDL中的界说) 及对应的类. ZTS_CO_Z_IF_SD216.
图片
修改 release status 为发布气象. 激活一下.
图片
05 办事测试测试对象. 系统会报错.原因是破钞者代理尚未在现时办事器部署. (破钞者代理传输到其它系统后,相同需要部署一下,雷同于办事的发布需要在不同的办事器上部署)
图片
06 部署办事实行TCODE : SOAMANAGER . 干涉浏览器界面. 找到之前创建好的破钞者代理.
图片
点击破钞者代理.
图片
基于WSDL完成建树. 干涉建树向导.
图片
输入一个逻辑端口称号. 背面测试及范例中会用到这个端口.
图片
输入一下wsdl 地址. 可能需要输入用户 /密码(依赖于WEB办事)
图片
稽查一下
图片
因为之前创建的办事使用了基本考证.
是以这里需要输入基本考证的用户/密码(依赖于WEB办事的界说)
图片
采选一下登录言语(推测SAP发布的WEBSERVICE才会有这个选项)
图片
图片
图片
图片
点击完成后, 系统会创建并激活一个逻辑端口.
图片
07 再行测试回到SE80找到之前创建的企业办事 service consumers ZTS_CO_Z_IF_SD216
图片
再行测试时.输入创建的逻辑端口 ZTS_PORT.点击实行
图片
点击按钮 干涉数据剪辑方式
图片
修改并保存测试数据
图片
实行后不错看到复返的信息
图片
08 范例调用双击类 稽查生成的类的输入,输出参数, 写代码时会用到这些参数的界说.
图片
代码调用DEMO范例
*&---------------------------------------------------------------------**& Report ZTS_CALL_WEBSERVICE*&---------------------------------------------------------------------**& DEMO范例,调用WEBSERVICE*&---------------------------------------------------------------------*REPORT zts_call_webservice.TABLES: kna1.PARAMETERS: p_kunnr LIKE kna1-kunnr DEFAULT '1000098', p_vkorg LIKE knvv-vkorg default '6121'.START-OF-SELECTION. PERFORM frm_call.*&---------------------------------------------------------------------**& Form FRM_CALL*&---------------------------------------------------------------------**& text*&---------------------------------------------------------------------**& --> p1 text*& <-- p2 text*&---------------------------------------------------------------------*FORM frm_call . DATA:lc_web TYPE REF TO zts_co_z_if_sd216. "WebService代理类 DATA:ls_input TYPE zts_z_if_sd216, "输入参数 ls_output TYPE zts_z_if_sd216response. "输出参数 DATA:lo_sys_exception TYPE REF TO cx_ai_system_fault, lo_app_exception TYPE REF TO cx_ai_application_fault. TRY. CREATE OBJECT lc_web EXPORTING logical_port_name = 'ZTS_PORT'. "为此WebService创建的逻辑端口。 CATCH cx_ai_system_fault . MESSAGE '出错了' TYPE 'E'. ENDTRY.*传递传入参数 ls_input-is_stru-kunnr = p_kunnr. ls_input-is_stru-vkorg = p_vkorg. TRY. CALL METHOD lc_web->z_if_sd216 EXPORTING input = ls_input IMPORTING output = ls_output. CATCH cx_ai_system_fault INTO lo_sys_exception . "message '出错了 systemai’ type 'S’. WRITE lo_sys_exception->errortext. CATCH cx_ai_application_fault INTO lo_app_exception . WRITE / . WRITE lo_app_exception->textid. ENDTRY. WRITE: ls_output-es_stru-kwert. ENDFORM.RFC函数发布WEB办事图片
ERP系统RFC合同发送端通过PO连通WebService接口
此次咱们在ERP SAP ECC6系统顶用RFC接口发出数据,通过PO发送到一个WebService中。
何况这是一个发送和搪塞同步的音讯办事:ERP发出数据,立地就不错接到WebService复返的音讯。SAP RFC函数发布WEB办事的法子如下:
图片
一、ERP SAP系统中的RFC接口范例
1、建一个Remote长途启用的SAP RFC的函数抑止(01):RFC函数处理类型树立为Remote长途启用的模块
图片
2、创建Web Service办事使用菜单功能创建web办事(一般采选来自函数模块, 每个函数发布一个办事). 若是采选来自函数组,则会把函数组中的总计函数发布成一组办事.
图片
干涉发布办事的向导界面,这里的办事称号不错和函数一致
图片
这里不要勾选Map Name . Map Name 会把一些字段定名按照特定例则修改调度. 导致办事中的字段名不同于函数中的字段名
图片
采选安全参数文献. 若是办事是局域网调用, 不错采选终末一个, 简化后续的树立. 若是要发布到互联网, 提倡采选前三种.
图片
输入办事的征战类及传输肯求
图片
点击完成,即可创建WEB办事
在办事界说界面中激活一下WEB办事
图片
3、建树Web Service办事然后实行事物代码 SOAMANAGER, 会启动一个浏览器界面树立办事的调用点信息(背面的法子在传输到测试或出产系统后还需要实行)
图片
点击WEB办事建树,输入之前界说的WEB办事称号,点击搜索
图片
点击里面称号,干涉办事界说.
图片
点击创建办事,干涉向导
图片
树立安全信息
图片
图片
点击完成后,会看到界说办事和绑定的内容
图片
4. 测试Web Service办事
点击上图的红框图标, 不错看到办事的wsdl界说
图片
复制WSDL地址,用第三方器具测试一下(比如SOAPUI),测试时,需要输入基本考证信息(用户名,密码)
图片
4. RFC函数发布WEB办事追思RFC函数发布WEB办事比拟简便.一般发布的是一个同步WEB办事.
发布的办事不错通过 事物代码 : SRT_ELOG 稽查调用的底层报错信息: 比如日历体式乖张,数字体式乖张等. 业务报错则需要征战通过范例逻辑复返.
日历字段:调用方输入日历的体式必须是YYYY-MM-DD 不然可能会报错.
言语参数:某些版块可能会默许英文登录,不错在办事地址上添加参数?sap-language=ZH 来强制登录言语
使用这个函数发出音讯,不错用一个ABAP范例来调用它:
*&---------------------------------------------------------------------**& Report ZDEMO004*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT ZDEMO004. DATA GV_VALUE TYPE /BCV/FND_INT1. DATA GV_GETDATARESULT TYPE /ASU/TEXT. GV_VALUE = 9. CALL FUNCTION 'ZDEMO004' DESTINATION 'ZPO_RFC' EXPORTING VALUE = GV_VALUE IMPORTING GETDATARESULT = GV_GETDATARESULT . WRITE :/ GV_GETDATARESULT.图片
抑止,RFC目标是SM59里面建树的RFC聚首:
这是PO也曾建树完成的收尾,输入一个数字,ERP RFC传给PO,PO传给WebService,
WebService复返一个处理收尾的字符串给PO,PO再复返到RFC函数中:
图片
2、SM59中需要建树RFC的聚首:
(抑止,咱们的例子是ERP发出数据,是外围系统作办事器方式,外围系统会有一个“范例标志”,
这需要再SM59的聚首中建树)
图片
RFC的称号,在ABAP中使用DESTINATION语法来使用。
“CALL FUNCTION 'ZDEMO004' DESTINATION 'ZPO_RFC'”
二、SAP PO建树达成RFC和WebService的聚首。
我使用的PO版块是7.5,这是一个比拟新的版块。网上许多著作还停留在PI的版块中,出现无数PI的术语也曾落后了。
要学习PO,照旧望望我这个系列,呵呵。
1、SLD中,咱们需要建树ERP端的居品、组件、技巧系统、业务系统,WebService端就照旧沿用底本的:
图片
2、ESR(Enterprise Services Repository)中,咱们导入ERP的RFC函数
图片
举例:权限自助平台的几个RFC接口都是这种面貌走PI
图片
3、ESR(Enterprise Services Repository)中,咱们导入WebService的接口(WSDL)和建WS的SI。
图片
4、配上数据发送标的的音讯映射:
图片
5、配上数据复返标的的音讯映射:
图片
6、发送标的和复返标的的音讯都要OM中集中体现:图片
图片
4、在ID(Integration Directory)中建树CC通说念,我默契是PO到外围系统的adapter链路。
第一个CC是PO到ERP的RFC合同:
图片
总知道图:
图片
本站仅提供存储办事,总计内容均由用户发布,如发现存害或侵权内容,请点击举报。