-
目录
PI ESR(Enterprise Services Repository企业服务构建器 )配置
Communication Channel Adapter Type
PI Configuration Integration Builder配置
PI应用程序配置
PI相关code:
SPROXY |
SXI_MONITOR |
PI相关(Process Integration)
- PI相关程序实现
1.PI日志功能
CLASS: ZCL_FI_INTF_LOG
class ZCL_FI_INTF_LOG definition
public
final
create public .
public section.
types:BEGIN OF TY_MSGID,
MSGID TYPE SXMSMGUID,
END OF TY_MSGID.
types:TT_MSGID TYPE STANDARD TABLE OF TY_MSGID.
class-data MS_INTF_LOG type ZTFI_INTF_LOG .
class-data MV_RECONTENT type STRING .
class-methods INIT_INTF_LOG
importing
!IS_INTF_LOG type ZTFI_INTF_LOG .
class-methods SAVE_LOG .
class-methods TR2_XML
importing
!DATA type ANY .
class-methods GET_MSGID_INBOUND
returning
value(MESSAGE_ID) type SXMSMGUID .
Pi LOG日志表定义
1.1 初始化LOG
METHOD init_intf_log.
CLEAR ms_intf_log.
ms_intf_log = is_intf_log.
ENDMETHOD.
1.2 保存LOG
METHOD save_log.
DATA:lv_msgid TYPE sxmsmguid,
ls_stu TYPE zsab0001.
lv_msgid = ms_intf_log-msgid.
IF lv_msgid IS INITIAL.
RETURN.
ENDIF.
*// 获取时间戳
ls_stu = zcl_pubfm=>get_usrdt( ).
*// 获取返回报文GUID
DATA(lt_msglist) = cl_xms_persist=>read_nested_msg( im_msgguid = lv_msgid ).
DATA(ls_xiheader) = VALUE sxmsmsglst_sorted( ).
DATA(ls_xiheader_ref) = VALUE sxmsmsglst_sorted( ).
LOOP AT lt_msglist INTO DATA(ls_msglist).
IF ls_msglist-ref_to_msg IS INITIAL.
ls_xiheader = ls_msglist.
ELSE.
ls_xiheader_ref = ls_msglist.
ENDIF.
ENDLOOP.
ms_intf_log-refmsgid = ls_xiheader_ref-msgguid. "返回报文GUID
"时间戳
ms_intf_log-cname = ls_stu-cname.
ms_intf_log-datum = ls_stu-datum.
ms_intf_log-uzeit = ls_stu-uzeit.
ms_intf_log-timestamp = ls_stu-timestamp.
*// 获取XML报文
"获取PI 发送/接收报文
* lv_msgid = ms_intf_log-msgid.
zcl_pi_utility=>get_payload(
EXPORTING
iv_msgid = lv_msgid
iv_mandt = sy-mandt
IMPORTING
ev_payload = DATA(lv_payload)
ev_xpayload = DATA(lv_xpayload) ).
ms_intf_log-content = lv_payload.
"获取PI 返回报文
IF ms_intf_log-refmsgid IS NOT INITIAL.
lv_msgid = ls_xiheader_ref-msgguid.
CLEAR lv_payload.
CLEAR lv_xpayload.
zcl_pi_utility=>get_payload(
EXPORTING
iv_msgid = lv_msgid
iv_mandt = sy-mandt
IMPORTING
ev_payload = lv_payload
ev_xpayload = lv_xpayload ).
ms_intf_log-recontent = lv_payload. "返回报文
ENDIF.
IF ms_intf_log-recontent IS INITIAL.
ms_intf_log-recontent = mv_recontent. "返回报文
ENDIF.
*// 写入数据库
MODIFY ztfi_intf_log FROM ms_intf_log.
COMMIT WORK.
*// 清空变量
FREE ms_intf_log.
FREE mv_recontent.
ENDMETHOD.
1.3 转XML
METHOD tr2_xml.
TRY.
CALL TRANSFORMATION id
OPTIONS value_handling = 'MOVE' "防止内表中有N类型dump
SOURCE data = data
RESULT XML mv_recontent.
CATCH cx_root INTO DATA(lo_root) .
ENDTRY.
ENDMETHOD.
1.4 进站获取PI Message ID
METHOD GET_MSGID_INBOUND.
DATA:lo_protocol TYPE REF TO if_wsprotocol_message_id,
lo_server_context TYPE REF TO if_ws_server_context.
"进站获取ABAP PROXY - GET MESSAGE ID - INBOUND
TRY.
lo_server_context = cl_proxy_access=>get_server_context( ).
lo_protocol ?= lo_server_context->get_protocol( if_wsprotocol=>message_id ).
message_id = lo_protocol->get_message_id( ).
CATCH cx_ai_system_fault.
ENDTRY.
ENDMETHOD.
1.5 应用实例
"PI日志添加到自建表
zcl_fi_intf_log=>init_intf_log(
is_intf_log = VALUE #( ywdj = L_KEYID
msgid = lv_message_id
itfid = 'EASPAYMENTORDERCCL'
mssgt = '取消&退票&EAS付款单[ZFII_0011]' ) ).
zcl_fi_intf_log=>tr2_xml( data = LS_EXPO ).
zcl_fi_intf_log=>save_log( ).
PI应用程序配置
PI服务与接口对应关系表在ZTAB0002: 提供系统方, 接收方,接口类型,对应函数,实施类等
新生成的PI接口,实现类双击进去
双击进去
注意:新增的PI接口需要
- 自行在这里新增 include zabi001.
2. 在表ZTAB0002表为新增的接口分配函数组和入参,出参
ITFFM函数组,FMIMP函数入参参考类型,FMEXP函数出参参考类型
ZTAB0002配置字段实施类,方法名称。调用的函数名。
入参INPUT。出参OUTPUT。
对应配置的RFC函数的INPUT入参和OUTPUT出参
include zabi001. 源代码
*&---------------------------------------------------------------------*
*& Include ZABD001
*&---------------------------------------------------------------------*
*---------------接口管理平台入站INCLUDE
* 新增开始_20171219_获取PI的inbound message id.
DATA : G_MESSAGE_ID_PROTOCOL TYPE REF TO IF_WSPROTOCOL_MESSAGE_ID,
G_SERVER_CONTEXT TYPE REF TO IF_WS_SERVER_CONTEXT,
G_XI_MESSAGE_ID TYPE SXMSMGUID.
DATA LV_TIMESTAMP TYPE TIMESTAMPL.
* To get ABAP PROXY message ID
TRY.
* Get server context
G_SERVER_CONTEXT = CL_PROXY_ACCESS=>GET_SERVER_CONTEXT( ).
* Get message id protocol
G_MESSAGE_ID_PROTOCOL ?= G_SERVER_CONTEXT->GET_PROTOCOL( IF_WSPROTOCOL=>MESSAGE_ID ).
* Fill in message id
G_XI_MESSAGE_ID = G_MESSAGE_ID_PROTOCOL->GET_MESSAGE_ID( ).
ZCL_PI_UTILITY=>PI_MESSAGE_ID = G_XI_MESSAGE_ID.
CATCH CX_AI_SYSTEM_FAULT. "#EC NO_HANDLER
ENDTRY.
* 新增结束_20171219_获取PI的inbound message id.
DATA(LT_CALL_STACK) = VALUE ABAP_CALLSTACK( ).
DATA(LT_SYSCALL_LST) = VALUE SYS_CALLST( ).
"找到上一级调用的方法名称
CALL FUNCTION 'SYSTEM_CALLSTACK'
EXPORTING
MAX_LEVEL = 1
IMPORTING
CALLSTACK = LT_CALL_STACK
ET_CALLSTACK = LT_SYSCALL_LST.
READ TABLE LT_SYSCALL_LST INTO DATA(LS_SYSCALL_LST) INDEX 1.
CHECK SY-SUBRC EQ 0.
CHECK LS_SYSCALL_LST-EVENTTYPE = 'METH'.
DATA(LV_METHOD_NAME) = LS_SYSCALL_LST-EVENTNAME.
SPLIT LV_METHOD_NAME AT '~' INTO DATA(LV_INTERFACE_NAME) DATA(LV_INTERFACE_METHOD).
"找到对应的实施类
SELECT SINGLE IMPL_CLASS INTO @DATA(LV_CLASS_NAME)
FROM SPROXREG
WHERE OBJECT = 'INTF'
AND OBJ_NAME = @LV_INTERFACE_NAME
AND OBJECT1 = 'METH'
AND OBJ_NAME1 = @LV_INTERFACE_METHOD.
"调用创建接口方法,创建PROXY INTERFACE类实例
"找到该方法的参数及其参考
SELECT * INTO TABLE @DATA(LT_SPROXDAT)
FROM SPROXDAT
WHERE OBJECT = 'INTF'
AND OBJ_NAME = @LV_INTERFACE_NAME
AND OBJECT1 = 'METH'
AND OBJ_NAME1 = @LV_INTERFACE_METHOD.
"拼凑管理器参数
DATA(LT_PARAMETER) = VALUE ABAP_PARMBIND_TAB( ).
DATA LD_VALUE TYPE REF TO DATA.
"出参
READ TABLE LT_SPROXDAT INTO DATA(LS_SPROXDAT) WITH KEY OBJECT2 = 'PAEX'.
IF SY-SUBRC EQ 0.
ASSIGN (LS_SPROXDAT-OBJ_NAME2) TO FIELD-SYMBOL(<LV_INPUT>).
DATA(LS_PARAMETER) = VALUE ABAP_PARMBIND(
NAME = 'EV_EXPORT'
KIND = CL_ABAP_OBJECTDESCR=>IMPORTING
VALUE = REF #( <LV_INPUT> ) ).
INSERT LS_PARAMETER INTO TABLE LT_PARAMETER.
ENDIF.
"入参
READ TABLE LT_SPROXDAT INTO LS_SPROXDAT WITH KEY OBJECT2 = 'PAIM'.
IF SY-SUBRC EQ 0.
ASSIGN (LS_SPROXDAT-OBJ_NAME2) TO FIELD-SYMBOL(<LV_OUTPUT>).
FIND FIRST OCCURRENCE OF 'DATAINFO_IN_SYN' IN LV_INTERFACE_NAME.
IF SY-SUBRC EQ 0.
FIND FIRST OCCURRENCE OF 'DATAINFO_IN_SYN' IN LV_INTERFACE_METHOD.
IF SY-SUBRC EQ 0.
*-----------如果是协同平台的接口,接口编码按照配置表来
"取发送系统
DATA(LV_SEND_SYSTEM) = 'INPUT-MT_PO_DATAINFO_REQ-I_REQUEST-BASEINFO-S_SYSTEM'.
"PO模块
ASSIGN (LV_SEND_SYSTEM) TO FIELD-SYMBOL(<LV_SEND_SYSTEM>).
IF SY-SUBRC NE 0.
LV_SEND_SYSTEM = 'INPUT-MT_FI_DATAINFO_REQ-I_REQUEST-BASEINFO-S_SYSTEM'.
ASSIGN (LV_SEND_SYSTEM) TO <LV_SEND_SYSTEM>.
ENDIF.
IF <LV_SEND_SYSTEM> NE 'PVKHQXT01'.
"异常
RAISE EXCEPTION TYPE ZCX_AB_INTERFACE_MANAGER
EXPORTING
TEXTID = ZCX_AB_INTERFACE_MANAGER=>BASEINFO_NOT_CORRECT
MV_INTF_FIELDNAME = 'S_SYSTEM'.
ENDIF.
"取接口名称,作为接口编码
DATA(LV_SERVICE_NAME) = 'INPUT-MT_PO_DATAINFO_REQ-I_REQUEST-BASEINFO-SERVICENAME'.
ASSIGN (LV_SERVICE_NAME) TO FIELD-SYMBOL(<LV_SERVICE_NAME>).
IF SY-SUBRC NE 0.
LV_SERVICE_NAME = 'INPUT-MT_FI_DATAINFO_REQ-I_REQUEST-BASEINFO-SERVICENAME'.
ASSIGN (LV_SERVICE_NAME) TO <LV_SERVICE_NAME>.
ENDIF.
IF <LV_SERVICE_NAME> IS INITIAL.
"异常
RAISE EXCEPTION TYPE ZCX_AB_INTERFACE_MANAGER
EXPORTING
TEXTID = ZCX_AB_INTERFACE_MANAGER=>BASEINFO_NOT_CORRECT
MV_INTF_FIELDNAME = 'SERVICENAME'.
ENDIF.
ENDIF.
ENDIF.
LS_PARAMETER-NAME = 'IV_IMPORT'.
LS_PARAMETER-KIND = CL_ABAP_OBJECTDESCR=>EXPORTING.
GET REFERENCE OF <LV_OUTPUT> INTO LD_VALUE.
LS_PARAMETER-VALUE = LD_VALUE.
INSERT LS_PARAMETER INTO TABLE LT_PARAMETER.
ENDIF.
"实例化接口管理器
IF <LV_SERVICE_NAME> IS ASSIGNED.
IF <LV_SERVICE_NAME> IS NOT INITIAL.
"协同平台:根据发送系统的接口名称找对应的配置
SELECT SINGLE ITFID INTO @DATA(LV_ITFID)
FROM ZTAB0002
WHERE ITFID = @<LV_SERVICE_NAME>.
ENDIF.
ELSE.
"根据入站类和方法找到对应的接口编码
SELECT SINGLE ITFID INTO LV_ITFID
FROM ZTAB0002
WHERE IMCLS = LV_CLASS_NAME
AND CLMTD = LV_METHOD_NAME.
ENDIF.
IF SY-SUBRC <> 0.
"配置表不存在
RAISE EXCEPTION TYPE ZCX_AB_INTERFACE_MANAGER
EXPORTING
TEXTID = ZCX_AB_INTERFACE_MANAGER=>CONFIG_IS_WRONG
MV_INTF_FIELDNAME = 'ITFID'.
ENDIF.
TRY .
"实例化接口管理器类
DATA(LO_INTERFACE_MANAGER) = NEW ZCL_AB_INTERFACE_MANAGER( LV_ITFID ).
CATCH CX_ROOT INTO DATA(LO_ERROR).
DATA(LV_MSG) = LO_ERROR->GET_TEXT( ).
RAISE EXCEPTION TYPE ZCX_AB_INTERFACE_MANAGER
EXPORTING
MV_CLASS_NAME = LV_CLASS_NAME
MV_ERROR_MSG = LV_MSG
TEXTID = ZCX_AB_INTERFACE_MANAGER=>INITIAL_INSTANCE_FAILED
PREVIOUS = LO_ERROR.
ENDTRY.
"注册接口被创建事件
* SET HANDLER lo_interface_manager->handle_interface_created FOR ALL INSTANCES.
"ITFID
LS_PARAMETER-NAME = 'IV_ITFID'.
LS_PARAMETER-KIND = CL_ABAP_OBJECTDESCR=>EXPORTING.
GET REFERENCE OF LO_INTERFACE_MANAGER->MS_CONFIG-ITFID INTO LD_VALUE.
LS_PARAMETER-VALUE = LD_VALUE.
INSERT LS_PARAMETER INTO TABLE LT_PARAMETER.
"ITFDR
LS_PARAMETER-NAME = 'IV_ITFDR'.
LS_PARAMETER-KIND = CL_ABAP_OBJECTDESCR=>EXPORTING.
GET REFERENCE OF LO_INTERFACE_MANAGER->MS_CONFIG-ITFDR INTO LD_VALUE.
LS_PARAMETER-VALUE = LD_VALUE.
INSERT LS_PARAMETER INTO TABLE LT_PARAMETER.
"ITFTP
LS_PARAMETER-NAME = 'IV_ITFTP'.
LS_PARAMETER-KIND = CL_ABAP_OBJECTDESCR=>EXPORTING.
GET REFERENCE OF LO_INTERFACE_MANAGER->MS_CONFIG-ITFTP INTO LD_VALUE.
LS_PARAMETER-VALUE = LD_VALUE.
INSERT LS_PARAMETER INTO TABLE LT_PARAMETER.
LV_METHOD_NAME = 'CREATE_INTERFACE'.
"创建接口实例
TRY .
DATA(LO_PI_UTILITY) = NEW ZCL_PI_UTILITY( IV_SERVICENAME = LV_ITFID ).
LO_PI_UTILITY->SAVE_DATA(
EXPORTING
IV_DATA = <LV_OUTPUT>
).
CALL METHOD LO_INTERFACE_MANAGER->(LV_METHOD_NAME)
PARAMETER-TABLE LT_PARAMETER.
FREE LO_INTERFACE_MANAGER.
"更新接口处理时间
GET TIME.
GET TIME STAMP FIELD LV_TIMESTAMP.
UPDATE ZTPILOG001 SET ENDTIMES = LV_TIMESTAMP
WHERE MSGID = G_XI_MESSAGE_ID
AND ITFID = LV_ITFID.
CATCH CX_ROOT INTO LO_ERROR.
"更新接口处理时间
GET TIME.
GET TIME STAMP FIELD LV_TIMESTAMP.
UPDATE ZTPILOG001 SET ENDTIMES = LV_TIMESTAMP
WHERE MSGID = G_XI_MESSAGE_ID
AND ITFID = LV_ITFID.
LV_MSG = LO_ERROR->GET_TEXT( ).
CASE TYPE OF LO_ERROR.
WHEN TYPE CX_SY_CREATE_OBJECT_ERROR.
"动态创建对象错误
WHEN TYPE CX_AI_APPLICATION_FAULT.
"接口参数错误
WHEN TYPE ZCX_AB_INTERFACE_MANAGER.
WHEN OTHERS.
ENDCASE.
RAISE EXCEPTION TYPE ZCX_AB_INTERFACE_MANAGER
EXPORTING
MV_CLASS_NAME = LV_CLASS_NAME
MV_METHOD_NAME = CONV #( LV_METHOD_NAME )
MV_ERROR_MSG = LV_MSG
TEXTID = ZCX_AB_INTERFACE_MANAGER=>CALL_METHOD_FAILED
PREVIOUS = LO_ERROR.
ENDTRY.
*--------------------------------------------
PI ESR(Enterprise Services Repository企业服务构建器 )配置
SAP Library - Enterprise Services Repository
IR为配置data type,message type,message interface,message mapping,interface mapping.
Step1. Add ESR config objects:
NAMESPACE: ZVK_IMAGE
PI1579接口ESR,CIB配置过程如下:
Step1. Add ESR config objects:
Namespace: ZVK_IMAGE
1.1 External Definition: ED_PI1579
1.2. outbound service interface: SI_PI1579_O_ECC_IMAGE_DOCUMENT_ATTACHMENT
1.3. inbound service interface: SI_PI1579_I_ECC_IMAGE_DOCUMENT_ATTACHMENT
1.4. Export Design Objects.(Object Set: Individual Objects)
Step2. Configuration Integration Builder Config:
2.1. Communication Channel:
CC_SOAP_PI1579_DOCUMENT_ATTACHMENT_IN_SYN
Communication Component:BS_IMAGE
Adapter Type: SOAP(Transport Protocol:HTTP;Message Protocol:SOAP 1.1) , type:Receiver
Select Connection Parameters, Choose Target wsdl URL.
2.2. Receiver determination
SI_PI1579_O_ECC_IMAGE_DOCUMENT_ATTACHMENT
Communication Component:BS_ED1CLNT220
注意:这里要手动添加config Receiver, 否则PI报错找不到接收方
2.3. Interface determination
Interface: SI_PI1579_O_ECC_IMAGE_DOCUMENT_ATTACHMENT
Sender Communication Component:BS_ED1CLNT220
Receiver Communication Component:BS_IMAGE
2.4. Sender agreement
SI_PI1579_O_ECC_IMAGE_DOCUMENT_ATTACHMENT
sender communication Channel: CC_PROXY_OUT
2.5.Receiver agreement
SI_PI1579_I_ECC_IMAGE_DOCUMENT_ATTACHMENT
communication Component:BS_IMAGE
Receiver communication Channel: CC_SOAP_PI1579_DOCUMENT_ATTACHMENT_IN_SYN
2.6. Active &Export configuration Objects:
Communication Channel Adapter Type
Adapter Type: SOAP,REST
REST方式传JSON数据,
例子CC_REST_PI1341_ATTACHMENT_URL_OUT_SYN附件url获取接口,ZFIFM_PI1341;
例子CC_REST_PI1202_K2_ECC_STARTAPPR_RESULT_OUT_SYN
例子CC_REST_PI1276_K2_ECC_DUTYPERSON_OUT_SYN
例子PI1508_MAIL_NOTICE邮件获取信息通知EWS接口
PI Configuration Integration Builder配置
ID为配置business system, business service,receiver determination,interface determination,Sender agreement,Receiver agreement.
PI对象请求传输
Step1:
先选择Enterprise Services Builder导出
找到对应的Namespace,全都在ZVK_SAP of vanke下,计划的在Pleshkun Artyom | VK等包下面
选中Pleshkun Artyom | VK的包,再点Tool导出Export Design Objects
从client本地电脑导出/入传输文件
Select Objects 设置
- Object Set选择Individual Objects ,表示单独/增量传输。
- Include Deleted Objects勾选去掉。
- Skip Preview 跳过预览去掉, 导出每一步自己来点。
- 把新增/修改的对象【Service Interfaces/Message Types/ Data Types】从左边拖拽到右边的传输清单里。
设置导出文件路径
Step2:
Integration Builder |
Objects里选择Configuration Scenario View按场景应用区分菜单显示
选中CS_PL包,点Tools菜单导出Export Configuration Objects
把变更的所有对象清单从左边拖拽到右边。
注意:涉及到变更的所有对象如CS_PL包,以及Business Component都要包括进去。
Select Objects 设置
- Object Set选择Individual Objects ,表示单独/增量传输。
- Include Deleted Objects勾选去掉。
- Skip Preview 跳过预览去掉, 导出每一步自己来点。
- 把新增/修改的对象从左边拖拽到右边的传输清单里。
选择导出保存的文件路径
STEP 3. 目标系统PI-QAS环境导入
http://10.0.85.17:51000/dir/start/index.jsp
注意导入先后顺序:先导入Enterprise Services Builder定义,再导入Integration Builder
Enterprise Services Builder直接导入传输文件刷新即可
注意:Integration Builder 导入:导入目标文件后,需要选择ChangeLists选到增量传输的对象,右边全部手工点激活。
对新增的PI环境配置HOST文件
改host文件,才能打开上面的PI环境
c:\windows\system32\drivers\etc
把PI服务器的DEV QAS PRD环境的IP地址都配置新增上
TIPS: 先安装JDK的JAVA环境才能打开
TIPS: 选择同步异步方式。一个有response返回,一个不需要等待response返回结果。
-
Configuration配置
Step1 :Receiver Determination 右键新增
Step2:Interface Determination新增
Step3:Sender Agreement新增
Sender Communication Channel 选择:CC_SOAP_OUT_SYN。 外围系统与PI接口使用SOAP协议方式。
双击CC_SOAP_OUT_SYN可查看具体配置
Step4 :Receiver Agreement新增
TIPS: Receiver Communication Channel选择CC_PROXY_IN。 PI接口与SAP交互用PROXY协议方式。
双击Receiver Communication Channel:CC_PROXY_IN可查看具体配置
Step5:Sender Agreement明细右键菜单,选择Display WSDL
把显示的WSDL地址域名替换下,即pi开发环境域名由t-pidev-v.vanke.com替换成pidev.vanke.com
http://t-pidev-v.vanke.com:51000/dir/wsdl?p=sa/a908826ff14633b69a050d6de3a0cfd1
替换后: http://pidev.vanke.com:51000/dir/wsdl?p=sa/a908826ff14633b69a050d6de3a0cfd1 注意:这个WSDL地址就是最后发布给外围系统调用的服务地址。
SOAPUI 测试PI接口服务
STEP6: 用SOAPUI测试服务是否通了
展开项目到最下面的SOAP层级,配置PI开发环境的用户密码连接。
注意:一定要输入用户密码连接上再测试
<T_SYSTEM>?</T_SYSTEM> 把所有参数里面带的? 全部替换成真实的入参数据,点执行测试接口是否联通。
<BASEINFO>
<!--Optional:-->
<MSGID>1</MSGID>
<!--Optional:-->
<SENDTIME>20200903154830</SENDTIME>
<!--Optional:-->
<S_SYSTEM>ECLOUD</S_SYSTEM>
<!--Optional:-->
<SERVICENAME>SI_PI1312_O_PUBLIC_ECC_XMFQZT_DAT</SERVICENAME> 新增的接口名
<!--Optional:-->
<T_SYSTEM>ED1CLNT220</T_SYSTEM>
<!--Optional:-->
<RETRY>0</RETRY>
</BASEINFO>
BASEINFO的参数说明
- 新增的接口名SERVICENAME在SOAPUI自动生成的URL上有:
- <S_SYSTEM> 外围系统接口名
- <T_SYSTEM>: 各个环境T_SYSTEM 传值如下:
开发环境 dev | ED1CLNT220 |
测试环境 qas | EQ1CLNT360 |
生产环境 prd | EP1CLNT600 |
- <RETRY>默认0
- <SENDTIME>当前时间年月日时分秒
点击执行 有结果返回 接口ok
1.1 External Definition: ED_PI1579
Step1:根据对外发布服务的WSDL地址生成接口:
根据上面截图的地址url打开的xml文件保存成本地,
1.2. outbound service interface: SI_PI1579_O_ECC_IMAGE_DOCUMENT_ATTACHMENT
1.3. inbound service interface: SI_PI1579_I_ECC_IMAGE_DOCUMENT_ATTACHMENT
通过External Definition定义的接口,type也要选择外部,再勾选对应方法
注意:inbound/outbound service interface的mode方式默认是异步,需要手动调整为同步。
1.4. Export Design Objects.(Object Set: Individual Objects)
Step2。Configuration Integration Builder Config:
应用程序被JAVA安全阻止如何设置
把PI对应的三个及http://t-pid01-mzb.vanke.com:51000/配置加入进JAVA安全信任站点:
在WINDOWS系统/控制面板/java/安全/编辑站点列表:
注意:PI环境的地址也要加入到JAVA安全信任站点列表:
SAP PI是用JAVA开发的,初始化环境后,会打开PI配置环境。
Available Profiles选择Unrestricted。表示不受权限限制能查看所有项。
PI接口报错解析
原因:PI接口配置的对象recevier determination没有传输或配置
- recevier determination没有传输
2. recevier determination没有配置完整,没有配置config recevier