SAP PI相关配置

  1. 目录

    PI相关(Process Integration)

    PI日志功能

    PI应用程序配置

    PI ESR(Enterprise Services Repository企业服务构建器 )配置

    Communication Channel Adapter Type

    PI Configuration Integration Builder配置

    PI对象请求传输

    对新增的PI环境配置HOST文件

    Configuration配置

    SOAPUI 测试PI接口服务

    应用程序被JAVA安全阻止如何设置

     PI接口报错解析


    PI应用程序配置

PI相关code

SPROXY

SXI_MONITOR

PI相关(Process Integration)

  1. 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_IDtype 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_msgim_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_protocolif_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_xmldata LS_EXPO ).
    zcl_fi_intf_log=>save_log( ).

PI应用程序配置

PI服务与接口对应关系表在ZTAB0002:  提供系统方, 接收方,接口类型,对应函数,实施类等

新生成的PI接口,实现类双击进去

双击进去

注意:新增的PI接口需要

  1. 自行在这里新增 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 设置

  1. Object Set选择Individual Objects ,表示单独/增量传输
  2. Include Deleted Objects勾选去掉。
  3. Skip Preview 跳过预览去掉, 导出每一步自己来点。
  4. 把新增/修改的对象【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 设置

  1. Object Set选择Individual Objects ,表示单独/增量传输
  2. Include Deleted Objects勾选去掉。
  3. Skip Preview 跳过预览去掉, 导出每一步自己来点。
  4. 把新增/修改的对象从左边拖拽到右边的传输清单里。

选择导出保存的文件路径

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返回结果。

  1. 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的参数说明

  1. 新增的接口名SERVICENAME在SOAPUI自动生成的URL上有:
  2. <S_SYSTEM> 外围系统接口名
  3. <T_SYSTEM>: 各个环境T_SYSTEM 传值如下:

开发环境 dev

ED1CLNT220

测试环境 qas

EQ1CLNT360

生产环境 prd

EP1CLNT600

  1. <RETRY>默认0
  2. <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没有传输或配置

  1. recevier determination没有传输 

2. recevier determination没有配置完整,没有配置config recevier

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值