cancel
Showing results for 
Search instead for 
Did you mean: 

ECC6.0 call 2 PI servers

former_member443015
Participant
0 Kudos

Dear all,

I am trying to connect my ECC 6.0 (ABAP proxy) to two PI systems. I see from web that I can use t-code SXMB_ADM to specify one or more ABAP proxy messages.

https://blogs.sap.com/2009/09/02/connect-sap-application-system-to-multiple-sap-pi-integration-serve...

I have followed the instructions and created two runtime records, one runtime record contain empty subparameter and the other runtime record contain subparameter 'BATCH1'.

May I ask how can I choose which runtime record is used?

According to the instructions, the runtime record can be determined in the class CL_XMS_PLSRV_IE_ADAPTER with method get_url_of_is. But the coding cannot be modified as it is an standard classes.

METHOD get_url_of_is.
  DATA lv_iserver_url TYPE sxmsvalue.
  DATA lv_is_default  TYPE sxmsflag.
  DATA lv_subparam    TYPE sxmsconfvlv-subparam.
  DATA l_mo           TYPE REF TO if_xms_message.
  DATA l_site_id      TYPE sxmssite.
  DATA l_found        TYPE char1.
  DATA l_t_site_id    TYPE sxms_site_tab.
  DATA l_interface    TYPE sxmsinterface.
  DATA l_sender       TYPE sxi_fromorto.
  DATA l_pipelineid   TYPE sxmspidext.
  data l_engine_name  type SSRV_ENGINE_NAME.

  FIELD-SYMBOLS: <site_wa> TYPE LINE OF sxms_site_tab.

  CLEAR re_url.
  l_mo ?= message.
  l_pipelineid  = l_mo->ro->get_external_pl_id( ).

  if l_pipelineid = 'RECEIVER_BACK'.
    l_engine_name = l_mo->ro->GET_ENGINE_NAME( ).
    if not l_engine_name is initial.
      lv_subparam = l_engine_name.
      TRANSLATE lv_subparam to UPPER CASE. "#EC TRANSLANG
      CALL FUNCTION 'SXMB_GET_CONFIG'
        EXPORTING
          im_area             = if_xms_config=>co_area_runtime
          im_param            = if_xms_config=>co_param_is_url
          im_subparam         = lv_subparam
        IMPORTING
          ex_value            = lv_iserver_url
        EXCEPTIONS
          parameter_not_found = 1
          OTHERS              = 2.
      IF sy-subrc = 0 AND lv_iserver_url IS NOT INITIAL.
        l_mo->ro->set_is_url( lv_iserver_url ).
        m_trc3 'IS_URL_BACK Engine = ' lv_subparam.
        l_found = 'X'.
      else.
        lv_iserver_url = CREATE_URL_ENGINE( l_engine_name ).
        if not lv_iserver_url is initial.
           m_trc3 'IS_URL_BACK Engine = ' lv_subparam.
          l_found = 'X'.
        endif.
      endif.
    endif.
  else.
  l_site_id = l_mo->ro->GET_SITE_ID( ).
................

................

Do anyone have some idea of this case?

Many thanks for all of your kindly help.

Sunny

Accepted Solutions (0)

Answers (1)

Answers (1)

JaySchwendemann
Active Contributor
0 Kudos

Please have a look at those two notes (and the linked content therein)

Bottom line would be that you have basically two options

  1. Using SXMSIF to map interfaces to IS_URL sub parameter
  2. Using SOAMANAGER

There might (quite frankly will be) other options as well, so take with grain of salt.

Cheers

Jens