PO 发布SAP SProxy->外围系统 WebService

通信概览图

外围系统与PO、SAP的请求响应通信过程大致可以用下图描述
(个人整理所得,可能有误,欢迎指正)
在这里插入图片描述

1. 前期准备

1.1 外围系统提供WebService接口

以A系统的RFC发布WebService接口
RFC发布WebService接口
在这里插入图片描述
获取到WSDL地址,下载WSDL文件到本地
SAP的WSDL文件有些特殊,需要把WSDL的Policy段注释掉,否则导入PO会出问题
在这里插入图片描述

1.2 PO端

需要提前将SAP的RFC注册到PO的ESB中,具体配置是PO顾问前期初始化的时候做的,应该是在SM59要配置PO和SAP的什么连接,这部分不是很清楚,猜测是下图的SM59连接
在这里插入图片描述

1.3 个人PC

必须提前在开发PO的电脑上安装Java环境,我装的Java1.8是ok的
在这里插入图片描述

2. Enterprise Services Repository

2.1 建立工作区

通过PO顾问给的POD地址:【http://{PO服务器域名}:50000//dir/start/index.jsp】进入POD页面
点击Enterprise Services Builder,下载Java小程序
在这里插入图片描述
运行Java小程序之后会见到如下页面,一般会按公司->对接系统->模块来分别新建版本->工作区->文件夹
在版本下新建DEMO系统的工作区,随后分模块将对应的接口放到各模块文件夹下,假设航班接口属于MM模块,则建立如下所示结构,建立完成需要保存并激活
在这里插入图片描述

2.2 导入WSDL

新建external definition 外部定义
在这里插入图片描述
选择WSDL文件,如果是SAP导出的WSDL需要把policy段注释掉,参考1.1节
点击导入后不报错就可以保存激活
在这里插入图片描述

2.3 新建入参Mapping映射

在这里插入图片描述
新建对象Mapping Object->Message Mapping
在这里插入图片描述
依次点击Definition->小方格->Source Message->Find Design Object
在这里插入图片描述
依次打开对象直到选中先前导入的ED文件中的入参结构
在这里插入图片描述
依次点击Definition->小方格->Target Message->Find Design Object
在这里插入图片描述
依次打开对象直到选中先前导入的ED文件中的入参结构
在这里插入图片描述
导入之后请求双方都有结构了,然后选中顶层节点,拖拽左侧的小点连线至右侧的小点
在这里插入图片描述
连接完成后两侧小点会变色,下方的面板处也会有两个节点的连线
在这里插入图片描述
在连接完顶层小点后,点击红色方框标注的按钮,即可自动完成字段名称相同字段的映射
在这里插入图片描述
在这里插入图片描述
这样SAP的入参和外围系统的入参就能mapping上了,前提是SAP和外围系统使用相同入参
在这里插入图片描述

2.4 新建出参Mapping映射

在这里插入图片描述

和新建入参操作一致,只是需要选择出参的Response
在这里插入图片描述
最后效果如下
在这里插入图片描述

2.5 新建Service Interface

SAP与PO是通过SI_OUT进行通信的(参考顶端图片SI_OUT部分),而PO与外围系统是通过SI_IN通信,所以需要分别配置PO与SAP的SI_OUT和PO与外围系统的SI_IN
在这里插入图片描述
新建SI_OUT
在这里插入图片描述
依次选择Outbound->Synchronous->External Message
请求的入参选择前方导入2.2节的入参ED结构
请求的出参选择前方导入2.2节的出参ED结构
正常如果要自定义请求的入参和出参,需要再额外构建DT和MT,但是直接使用ED的结构可以省去该步骤
在这里插入图片描述
新建SI_IN
在这里插入图片描述

依次选择Inbound->Synchronous->External Message
请求的入参选择前方导入2.2节的入参ED结构
请求的出参选择前方导入2.2节的出参ED结构
在这里插入图片描述
保存激活即可

2.6 新建Operation Mapping

Operation Mapping就是将出站和入站的SI服务接口串联起来
在这里插入图片描述
在这里插入图片描述
新建Operation Mapping操作映射
在这里插入图片描述
左侧选中SI_OUT,右侧选中SI_IN,下方的message mapping填入MM_REQ
(我下面的图里选错了,选到REST的MM_REQ了,排查了半天错误…各位同僚切勿粗心大意)
在这里插入图片描述
点击保存后,会出现Request的页签,刚刚的值其实都是在request当中的
(我下面的图里选错了,选到REST的MM_REQ了,排查了半天错误…各位同僚切勿粗心大意)
在这里插入图片描述
切到Response页签,下方的message mapping填入MM_REQ
在这里插入图片描述
保存激活即可

3. Intergration Builder

通过PO顾问给的POD地址:【http://{PO服务器域名}:50000//dir/start/index.jsp】进入POD页面
点击Integration Builder,下载Java小程序
在这里插入图片描述
展开 Communication Comonent Without Party,其中 Business System 和 Business Component 都可以定义SAP系统以及外部系统等通讯对象。一般 Business System 用于定义 SAP系统(如BS_DEV_300),Business Component 用于定义非SAP系统(如此处定义的外部调用方 BC_TEST_CX)
在这里插入图片描述

3.1 建立BS-SOAP Communication Chanel发送信道

SOAP信道接收来自SAP 代理类的XML请求报文并发给SI_OUT进入到Mapping,或接收来自外围系统SOAP接口Mapping后传递给SI_OUT服务接口的XML报文
在这里插入图片描述
在这里插入图片描述

新建BS_DEV_400 的SOAP CC信道
在这里插入图片描述
新建CC 信道对象
在这里插入图片描述
选择SOAP适配器,再选择消息协议XI 3.0,保存即可
在这里插入图片描述

3.2 建立BC-SOAP Communication Chanel接收信道

SOAP信道发送来自Mapping后传递给SI_OUT的SAP XML报文;或接收来自外围系统的XML报文
在这里插入图片描述
在这里插入图片描述
在BC下新建BC_DEMO系统,一个外围系统方建一个BC就好了
在这里插入图片描述
双击BC_DEMO系统,添加2.5小节新建的SI_OUT发送端服务接口到该系统下
在这里插入图片描述
在BC_DEMO系统创建航班查询SOAP 接收信道
在这里插入图片描述
输入信道名称
在这里插入图片描述
选择SOAP的接收器类型
在这里插入图片描述
参考下图维护字段
在这里插入图片描述

SOAP接口地址是SOAP UI里面URL的地址,不要填成WSDL的地址了,不清楚就问外围系统直接要
在这里插入图片描述

保存激活即可

3.3 建立Integrated Configuration 集成配置

集成配置用来处理入站和出站的请求,将外围系统不同类型的请求分配到指定的信道中,并在最后返回对方响应
在这里插入图片描述
在这里插入图片描述
新建集成配置
在这里插入图片描述

3.3.1 Inbound Processing页签

选择发送的SOAP信道
在这里插入图片描述

3.3.2 Reciver 页签

在这里插入图片描述

3.3.3 Outbound Processing 页签

在这里插入图片描述

3.3.4 Reciver Interface 页签

在这里插入图片描述

3.3.5 Advanced Settings 页签

这里勾选的目的是为了让PO记录日志
在这里插入图片描述

5. SAP 配置SPROXY

SPROXY进入代理类,一直点点点,找到service consumer下面的SI_OUT对象
在这里插入图片描述
双击SI_OUT对象
在这里插入图片描述
前缀给个Z就好了,也可以加上模块,然后点击完成即可
在这里插入图片描述
一般没啥要修改的,直接激活就好了
在这里插入图片描述

如果后续在PO的ED里面修改结构了需要在代理类这里点Regenerate重新生成,再激活一下
在这里插入图片描述
记下这个代理类的名字,后面会用
在这里插入图片描述

6. SAP 测试SPROXY代理类

参考第5节的代理类名字,在程序里新建对象
用下述简单代码即可测试

  DATA: lo_po  TYPE REF TO zco_si_mm002_erp2demo_out,
        ls_req TYPE zzdemo_temp032,
        ls_res TYPE zzdemo_temp03response2.

  lo_po = NEW #( ).
  ls_req-it_fldate-item = VALUE #( ( sign = 'I' option = 'BT' low = '1990-01-01' high = '2000-01-01' ) ).
  ls_req-et_data-item = VALUE #( ( carrid = '1' ) ).

  TRY .
      lo_po->si_mm002_erp2demo_out(
        EXPORTING
          output = ls_req
        IMPORTING
          input  = ls_res
       ).
    CATCH cx_root INTO DATA(lo_error).
      DATA(lv_msg) = '接口异常'.
  ENDTRY.

  cl_demo_output=>display( ls_res ).

双击代理类,可以看到有个SI_OUT的方法
在这里插入图片描述
选中SI_OUT,切到参数,即可查看对应的传入传出参数类型
在这里插入图片描述
测试结果
在这里插入图片描述

5. 消息查看器查看报文

实在是懒得再写一遍了,用REST那篇的内容复制过来了,方法基本类似
打开POD界面,点击Configuration and Monitoring Home
在这里插入图片描述
转到Monitoring->Adapter Engine->Message Monitor
在这里插入图片描述
可以在下方看到成功/失败的报文
在这里插入图片描述

5.1 失败的PO日志

点击失败的报文的数字,进入到该页面可以看详细信息,点击下方失败的请求
在这里插入图片描述
点击message log可以查看PO返回的接口失败日志,这里就是RFC适配器登录信息填错了所以报错了
在这里插入图片描述

5.2 查看PO报文Payload

点击成功的报文的数字,进入到该页面可以看详细信息
在这里插入图片描述
选中成功的消息,点击Open Message
第0行是外围系统传入的报文
在这里插入图片描述
第1行是PO加上外层元素准备传入RFC的报文
在这里插入图片描述
第2行是PO传入RFC的报文
在这里插入图片描述
第3行是RFC返回PO的报文
在这里插入图片描述
第4行是PO将RFC的XML转换成JSON并删除最外层元素后返回给外围系统的报文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/278013.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统】不同操作系统内核架构分析

一、内核架构与操作系统性能之间的关系的分析 1. 适用性和专业化: 不同的内核架构往往会有不同的设计目标和优化点。例如,实时操作系统(RTOS)和通用操作系统(像Linux或Windows)在设计时就有不同的重点&am…

ESP32:整合存储配网信息和MQTT笔记

文章目录 1.给LED和KEY的所用IO增加配置项1.1 增加配置文件1.2 修改相应的c源码 2. 把mqtt\tcp的工程整合到一起2.1 在何处调用 mqtt_app_start() 3. 测试MQTT4. 完整的工程源码 有一段时间没有玩ESP32,很多知识点都忘记了。今天测试一下MQTT,做个笔记。…

循环冗余效验码的计算方法

循环冗余效验码的计算方法 G(x): 在了解计算方法之前我们首先要明白G(x)表明的意思,这一步非常重要! 例如,G(x) x^3 x^2 1 ,该式子表明的编…

【每天一个早下班技巧】NPM发包流程

发包流程 step1:设置包发布地址 参考资料 // 1.在package.json中设置发布地址 "publishConfig":{"registry":"http://registry.npm.xxx.com" }//2.设置别名 alias ynpm"npm --registryhttp://registry.npm.xxx.com" ynp…

手把手教你配置Jenkins自动化邮件通知

完成基于Jenkins的持续集成部署后,自动化测试执行后,测试结果需要通知到相关人员,除了钉钉通知外我们还可以通过Email通知到对应负责人,这里记录一下测试结果通过Jenkins邮件通知的配置与部署 01、安装插件 方法1: 进…

【neo4j】neo4j的安装与使用

【neo4j】neo4j的安装与使用 安装java https://www.oracle.com/java/technologies/downloads/ 按照步骤安装即可 配置环境变量 在系统变量中添加 path变量中添加 安装neo4j https://neo4j.com/deployment-center/ 下载后,在指定位置解压缩 与java相同&#…

马斯克谈六西格玛:管理质量与火箭科学如何相辅相成

如果你问我,作为一个有志于送人类上火星的家伙,六西格玛管理有没有用?我会说,如果把火箭控制的精度与六西格玛得到的生产质量相比,你会发现两者都追求同一件事:接近零缺陷的完美。 六西格玛不只是一组工具…

如何在 NAS 上安装 ONLYOFFICE 文档?

文章作者:ajun 导览 ONLYOFFICE 文档 是一款开源办公套件,其是包含文本文档、电子表格、演示文稿、表单、PDF 查看器和转换工具的协作性编辑工具。它高度兼容微软 Office 格式,包括 .docx、.xlsx 、.pptx 、pdf等文件格式,并支持…

wireshark access/trunk/hybrid报文分析

1,access接口 发送带vlan的报文 wireshark交换机配置 [Huawei-GigabitEthernet0/0/1] [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 100 [Huawei-GigabitEthernet0/0/2]port link-type access [Huawei-Gig…

华为---USG6000V防火墙web基本配置示例

目录 1. 实验要求 2. 配置思路 3. 网络拓扑图 4. USG6000V防火墙端口和各终端相关配置 5. 在USG6000V防火墙web管理界面创建区域和添加相应端口 6. 给USG6000V防火墙端口配置IP地址 7. 配置通行策略 8. 测试验证 8.1 逐个删除策略,再看各区域终端通信情况 …

SpringMVC之视图和RESTful

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Java注解之@Autowired,一文掌握@Autowired注解知识(3)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

k8s搭建(四、k8s集群创建)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

05-C++ 类和对象-继承

类与对象-03 继承与派生 1. 继承的概念 c最重要的特征是代码重用,通过继承机制可以利用已有的数据类型,来定义新的数据类型,新的类不仅拥有旧类的成员,还拥有新定义的成员。 一个 B 类继承于 A 类,或称从类 A 派生…

QCheckBoxQRadioBoxQComboBoxQSlider

QCheckBox QCheckBox 是 Qt 框架中一个常用的控件,用于创建一个可以勾选或取消勾选的复选框。它通常用于表示选项的开/关状态 autoExclusive 是一个与单选按钮(QRadioButton)相关的属性。这个属性决定了同一个父窗口下的单选按钮是否自动形成…

【C++干货铺】STL中set和map的介绍和使用

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 序列式容器 关联式容器 键值对 树形结构的关联式容器 set set的介绍 set的使用 set的模板参数列表 set的构造 ​编辑 set的容量 set的删除和查找 mult…

125 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则&#…

软件测试/测试开发丨Python常用数据结构-列表list

列表的定义 列表是有序的可变元素的集合,使用中括号[ ]包围,元素之间用逗号分隔;列表是动态的,可以随时扩展和收缩;列表是异构的,可以同时存放不同类型的对象;列表允许出现重复的元素。 列表的…

电子企业实施MES管理系统需要多少预算

在当今高度自动化的工业环境中,MES管理系统已成为提升生产效率、优化资源配置、确保产品质量的关键工具。对于电子企业而言,实施MES管理系统不仅可以提升生产过程的透明度,还能有效降低成本,增强市场竞争力。然而,企业…

SV接口的驱动和采样_2023.12.27】

cb 使用cloking block进行信号的同步 在cloking block,所有信号的采样和驱动,都是和时钟同步的 clocking cb (posedge clk); input grant; output request; endclocking接口同步 用和wait来同步测试平台中的信号 bus.cb; 接口…
最新文章