SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)
1转自:https://www.cnblogs.com/fanjb/p/10677018.html
8年进入国网项目后陆陆续续做了一些接口,按实现方法去分有RFC和代理类sproxy类型,按服务提供方向分有提供服务给外围的也有调用外围服务的。随笔本身是为了有一天离开项目时送给交接人的开发手册,放上来给大家做个学习参考。由于这边项目普遍要经过ESB通道,在IA的开发配置方面大家自行理解吧。本篇是一个ERP发布服务供外围系统调用的RFC类型同步接口,其余三篇有时间再慢慢传。
一、 文档信息
|
版本号* |
更新日期* |
姓名* |
更新内容及更新理由* |
备注* |
|
V1.0 |
2019/02/19 |
fanjb |
文档创建 |
以福利接口13589(Z00HRJ_GJJ_REV_FI)为例,外围系统调用集中部署ERP |
|
V1.1 |
2019/04/04 |
fanjb |
文档修正 |
格式调整 |
二、 接口内容

1. 接口详细信息
T_ Z00HR_GJJ_ACCOUNT_BACK XML格式:
1.1 传入报文(外围系统提供)
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<Item>
<ZPAYMENTID>缴费申请号</ZPAYMENTID>
<ZFIGRJCE>财务实缴个人缴存额</ZFIGRJCE>
<ZFIDWJCE>财务实缴单位缴存额</ZFIDWJCE>
<ZDATE>传输日期</ZDATE>
<ZTIME>传输时间</ZTIME>
<ZESTIMATEDTIME>计提时间</ZESTIMATEDTIME>
<ZWITHDRAWAVOUCHER>计提凭证</ZWITHDRAWAVOUCHER>
<ZPAYMENTTIME>支付时间</ZPAYMENTTIME>
<ZPAYMENTVOUCHER>支付凭证</ZPAYMENTVOUCHER>
<ZAPPROVALSTATUS>审批状态</ZAPPROVALSTATUS>
<ZPAYMENTSTATUS>支付状态</ZPAYMENTSTATUS>
<ZERROR>错误消息</ZERROR>
<Z00HRJBY1></Z00HRJBY1>
<Z00HRJBY2></Z00HRJBY2>
</ITEM>
</Document>
1.2 返回报文(外围系统提供)
T_OUTPUT XML格式:
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<Item>
<ZPAYMENTID>缴费申请号</ZPAYMENTID>
<ZSTATE>反馈状态</ZSTATE>
<ZMASSAGE>错误消息</ZMASSAGE>
</ITEM>
</Document>
三、 接口配置
登陆网址:http://sgnwpid.sgcc.com.cn:50000/dir/start/index.jsp
事物码登陆:SXMB_IFR
A. 配置ESR(enterprise service builder)

在对应命名空间下进行配置

1. 导入RFC
右键进行导入

输入目标RFC的服务器地址,实例编号,gui账号密码。点击继续

展开,找到对应RFC,勾选导入

导入后,右键激活该RFC

2. 创建External definitions
外部调用定义。(此接口不需要)
3. 创建Data types
1) 发送方
接口经过ESB通道,所传数据以<![CDATA[*]]>包裹xml报文形式进行传输,所以发出方只需要输入输出各一个参数即可,此处我们使用公共数据类型:
DT_SHARE_SGHRERP2CEERP_REQ

DT_SHARE_SGHRERP2CEERP_RESP

2) 接收方
RFC类型接口,RFC侧不需要进行DT配置。RFC的导入导出参数定义就是。
4. 创建Message types
参考data types进行创建即可,RFC侧同理

5. 创建Service interface(服务接口)

RFC侧接口无需继续创建,只需创建外围系统侧的SI即可,关于如何判断SI的类别(或出入站),可以从接口设计去考虑,发送方(sender)将数据发送到出站接口(outbound),再到集成引擎(PI),集成引擎将消息发送给入站接口(inbound)再到接收方(reciver);所以对于示例接口来说,如上图:
outbound :SI_13589_SGHRERP2CEERP_Z00HRJGJJREVFI
inbound:RFC
具体参数如下:

类型:outbound
模式:同步
消息类型:MT
激活SI
6. 创建Imported Archives
按照字段映射写好xml文档,循环取输入出结构拼入RFC的导入导出参数中。具体如下:
创建IA,并导入以上4个xsl文档,激活

7. 创建 Operation Mappings
分别指定发出方接口、接收方接口。
发出方:SI_13589_SGHRERP2CEERP_Z00HRJGJJREVFI
接收方:Z00HRJ_GJJ_REV_FI
外围系统作为发出方,数据链路显示需先经过ESB通道才会到达PI,同样ERP返回消息时由PI到外围同样需经过ESB。经过ESB的数据均需使用<![CDATA[….]]>进行封装,故在PI内需进行转换。将ESB发送进来的cdata转成xml在进行接口间字段映射,返回时先进性接口间字段映射后将其封装成cdata。


B. 配置IB(Integration Builder)

1. 创建Configuration Scenario
创建场景,将各个组件添加到场景中。

2. 添加Business System

3. 创建发送方Communication Channel,对象BS_SGHRERP

4. 创建Sender Agreement


5. 创建Receiver Determination
RD用于确认接收方系统


6. 创建Interface Determination
ID用于确认接收方系统的接收接口


7. 创建接收方Communication Channel,对象PD1CLNT201

8. 创建Receiver Agreement


9. 一步一激活,最后激活CC

10. 导出wsdl

点击望远镜, 按照如下格式修改URL并填入
http://10.1.169.34:50000/XISOAPAdapter/MessageServlet?channel=:BS_SGHRERP: CC_13589_SGHRERP2CEERP_Z00HRJGJJREVFI_OU

选择对应接口SI_13589_SGHRERP2CEERP_Z00HRJGJJREVFI

填写CC:BS_SGHRERP


11. RFC逻辑实现

SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)的更多相关文章
- SAP PI开发手册-ERP发布服务供外部系统调用(sproxy代理类)
转自:https://www.cnblogs.com/fanjb/p/10829858.html 一. 接口内容 接口详细信息 1. 字段对应关系 发送字段对应关系 返回字段对应关系 2. ...
- 20-SAP PI开发手册-ERP发布服务供外部系统调用(sproxy代理类)
一. 接口内容 接口详细信息 1. 字段对应关系 发送字段对应关系 返回字段对应关系 2. 报文信息 传入报文(报文结构,外围系统提供) 1 <?xml version=" ...
- 10-PI开发手册-ERP发布服务供外围系统调用(RFC类型)
一. 文档信息 版本号* 更新日期* 姓名* 更新内容及更新理由* 备注* V1.0 2019/02/19 fanjb 文档创建 以福利接口13589(Z00HRJ_GJJ_REV_FI ...
- 为什么阿里巴巴开发手册中强制要求 POJO 类使用包装类型?NPE问题防范
封面:学校内的秋天 背景:写这个的原因,也是我这两天凑巧看到的,虽然我一直有 alibaba Java 开发手册,也看过不少次,但是一直没有注意过这个问题 属于那种看过,但又没完全看过 一起来看看吧冲 ...
- 阿里巴巴 Java 开发手册 1.4.0
一.编程规约(一) 命名风格1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.反例: _name / __name / $name / name_ / name$ ...
- 阿里巴巴Java开发手册更新了!
自2017年,<阿里巴巴Java开发手册>发布,现已有超过260万位工程师下载及查阅手册,在数以千计的企业应用,手册成为受业界认可的开发规范. 昨天,<Java开发手册>再次更 ...
- 重磅发布:《阿里巴巴Android开发手册(规约)》
1.前言 阿里巴巴于近日为广大程序员再送上重磅开春好礼:<阿里巴巴Android开发手册(规约)>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希 ...
- 在线教学、视频会议 Webus Fox(2) 服务端开发手册
上次在<在线教学.视频会议软件 Webus Fox(1)文本.语音.视频聊天及电子白板基本用法>里介绍了软件的基本用法.本文主要介绍服务器端如何配置.开发. 1. 配置 1.1 IIS配置 ...
- 流量染色与gRPC服务托管 微服务协作开发、灰度发布之流量染色 灰度发布与流量染色
大规模微服务场景下灰度发布与流量染色实践 https://mp.weixin.qq.com/s/UBoRKt3l91ffPagtjExmYw [go-micro]微服务协作开发.灰度发布之流量染色 - ...
随机推荐
- Flask 教程 第三章:Web表单
本文翻译自 The Flask Mega-Tutorial Part III: Web Forms 这是Flask Mega-Tutorial系列的第三部分,我将告诉你如何使用Web表单. 在第二章中 ...
- Java生鲜电商平台-用户管理的架构与实战
Java生鲜电商平台-用户管理的架构与实战 在电商后台中,用户管理是运营人员管理用户的模块.这里的用户区别于运营人员,会在权限的角色管理中分别阐述.这里的用户包含平台的一般用户,会员用户等.本文将分享 ...
- Spring Boot 之异步执行方法
前言: 最近的时候遇到一个需求,就是当服务器接到请求并不需要任务执行完成才返回结果,可以立即返回结果,让任务异步的去执行.开始考虑是直接启一个新的线程去执行任务或者把任务提交到一个线程池去执行,这两种 ...
- Kali 无线网络
WiFi——必备的一个东西: AP:这是无线用户接入到互联网的设备 ESSID:可以用于无限局域网中的多个AP中 BSSID:每个AP的唯一标识符 SSID:网络名称 Channels Wi-Fi可以 ...
- union注入的几道ctf题,实验吧简单的sql注入1,2,这个看起来有点简单和bugku的成绩单
这几天在做CTF当中遇到了几次sql注入都是union,写篇博客记录学习一下. 首先推荐一篇文章“https://blog.csdn.net/Litbai_zhang/article/details/ ...
- RabbitMQ获取队列的消息数目
使用RabbitMQ,业务需求,想要知道队列中还有多少待消费待数据. 方式一: @Value("${spring.rabbitmq.host}") private String h ...
- MySQL 部署分布式架构 MyCAT (五)
分片(水平拆分) 4.全局表 业务使用场景: 如果你的业务中有些数据类似于数据字典,比如配置文件的配置, 常用业务的配置或者数据量不大很少变动的表,这些表往往不是特别大, 而且大部分的业务场景都会用到 ...
- 程序运行时间测试 - 使用libc 中 clock 函数
我们运行程序的时候,可以简单使用clock函数测试程序的运行时间:(本示例中以微秒为单位输出) https://github.com/yaowenxu/Workplace/blob/master/ti ...
- postman---postman文件夹介绍以及批量执行用例
我们在做测试的过程中,都会多次请求接口,都会把接口保存下来,方便下次直接请求,节省时间不用每次都重新输入,我们一起看下Postman如何保存接口会话 保存请求作用 Postman可以将各个请求组合保存 ...
- 【cf915】E. Physical Education Lessons(线段树)
传送门 简单的线段树区间修改区间查询,但是因为数据范围过大,所以采用动态开点的方法(注意一下空间问题). 也可以直接对询问区间的端点离散化然后建树,这种方法时间复杂度和空间复杂度都比较优秀. 给出动态 ...