PO系列之 PO中使用webService

点击蓝字 关注我们

前言

PO(/PI)是SAP公司的一个中间件产品,用来辅助连接SAP系统与外围系统. (当然外围系统之间也可以使用PO).

作为中间件,PO支持很多与系统交互的方式(RESTful, SOAP ,JDBC, FILE )等等

百度了一下 webService 与SOAP的关系(如图一)

可以看出SOAP只是webService三要素之一, 用来描述传递信息的格式

本文主要介绍webService在PO中的应用及特殊映射方式

图一

ABAP与webService

ABAP可以直接引入或发布webService.

详见连接无峰,公众号:ABAP 技巧与实战SAP操作手册之 ABAP调用WEB服务
详见连接无峰,公众号:ABAP 技巧与实战SAP操作手册之 RFC函数发布WEB服务

webService的优点

个人认为webService的最大优点就在于包含了WSDL

(WebServicesDescriptionLanguage) . WSDL包含了这个接口的几乎所有信息

  • 数据定义 :接口传递内容的结构定义及类型

  • 调用地址 :服务提供的调用地址

  • 调用点  :服务提供的调用点 SOAP ACTION

并且大部分的软件都支持引入WSDL定义生成调用接口的类,方便应用中直接使用.

比如ABAP引入WSDL产生类.调用类的方法就是调用接口.

SOAPUI与WSDL

把WSDL定义引入到SOAPUI(一个应用广泛的接口测试工具)中可以看到接口的这些信息(数据定义,调用地址,调用点)

(当然,也可以用浏览器打开WSDL定义的地址或者文件,只是可读性相对较差)

PO引入WSDL

PO不支持直接引入WSDL地址.

但是可以通过IE浏览器(新版的浏览器似乎没有另存为功能)把地址另存为文件.

然后在ESB中创建 External Definition 引入WSDL文件.

创建的External Definition 代替了标准的 data type 和 message type . (图二) .

Service Interface 中可以直接使用引入的External消息(图三)

图二
图三

SOAP接收通道

其中 Target URL 就是通过SOAPUI 看到的调用url地址 SOAP action 就是SOAPUI中看到的调用点,接收通道每个接口需要单独定义,因为其中包含了每个接口的特性: 调用地址,调用点

SOAP发送通道

发送通道只需要定义一些通用属性 安全层级 同步/异步属性. 在PO中可以共用SOAP发送通道

特殊的webService

有些系统为了简化或者统一化接口调用. 会发布一种特殊的webService .

这种webService中只有一个string字段. 如下图所示. 调用方需要在这个字段中填入XML或JSON内容. 接收方需要解析这个字段中的XML或JSON内容. 根据解析的结果再确定后续处理方式.

  • 优点:可以用一个接口实现所有业务信息的传输.

  • 缺点:WSDL定义丢失了业务含义.不便于调用方理解接口需要传输的内容.

不推荐使用这种webService定义方式, 因为他丢失了三要素之一: 数据定义

PO与特殊webService

PO可以通过MAPPING 把一个XML结构映射到一个字段中. 过程如下.

该方式的原文链接如下

https://blogs.sap.com/2010/06/17/convert-the-input-xml-to-string-in-pi-71-using-standard-graphical-mapping/

01

源结构

02

目标结构

03

映射

任何一个文本函数(例如trim) . 右键点击源字段,勾选 return as xml

04

源消息

05

目标消息

实际接口处理时,PO为了避免嵌套XML的解析错误, 会使用特殊字符

这种使用转义字符取代 < > 只是为了避免XML的解析错误. 并体现XML的嵌套.不影响系统对XML的解析.

局限性

PO对特殊webService的MAPPING 存在局限性.

PO MAPPING可以把一个XML结构MAPPING 到一个字段中. 但是因为一个PO接口只有一次MAPPING. 所以无法同时实现字段映射及XML映射到字段. 如果要实现这种复杂的映射,估计需要使用JAVA开发映射逻辑来实现.

一个变通的方法是把一个接口拆分成两个接口, 让PO本身作为一个中转系统.

比如接口

  • 系统A -> 系统B

可以调整为

  • 系统A->PO虚拟

  • PO虚拟->系统B

这样就可以通过两次映射:第一次执行字段隐射, 第二次再把XML结构映射到一个字段. 来实现这个功能. 只是PO的配置量增大了一倍.

十一

总结

webService是应用广泛的接口方式,几乎所有软件对webService有良好的支持.

一般项目中,如果外围系统不是现成的接口, 都建议使用webService方式和外部系统交互.

通过webService的WSDL定义可以解决双方系统对传输内容结构及字段定义的分歧.快速完成接口的调用(无论是否使用PO). 当然这要建立在不使用特殊webService的基础上.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.     

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • WebService学习笔记 友情提示,本文档的图床使用极简图床进行图片存储,默认存储到七牛云空间 本学习贴是根据...
    Mr_魏阅读 1,079评论 0 5
  • WebService学习系列之基础理论知识 本系列文章将介绍WebService是什么、 WebService的应...
    理想是一盏灯阅读 1,789评论 0 1
  • alert(a); function name(parameters) { alert(parameters); ...
    name阿喆azhe阅读 1,012评论 0 3
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 924评论 0 0
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,030评论 0 4