Quantcast
Channel: SCN : All Content - Process Integration (PI) & SOA Middleware
Viewing all articles
Browse latest Browse all 7030

Receiver Determination Condition not working at runtime

$
0
0

Hi Experts,

 

We are using SAP PI 7.1 System. There are 3 interfaces, where sender is SAP ISU (via standard proxy) and receivers are MDM and SOA (via webservice).

To decide the receiver, we implemented the XPATH conditions.

/p1:UtilitiesDeviceERPSmartMeterLocationNotification/UtilitiesDevice/SmartMeter/UtilitiesAdvancedMeteringSystemID = HES

message should go to MDM

 

/p1:UtilitiesDeviceERPSmartMeterLocationNotification/UtilitiesDevice/SmartMeter/UtilitiesAdvancedMeteringSystemID != HES (not equal to HES)

message should go to SOA

 

When i test this through integration engine it is working as expected.

But when i test this end-to-end, the above condition root get changed at runtime.

CPA Cache Refresh and SXI_Cache done multiple times, after cache refresh interface works for few hours and then issue pops up again.

 

For ex: message is for UtilitiesDeviceERPSmartMeterLocationNotification interface.

Please find below receiver determination trace for same message, where root of the condition changed at runtime to UtilitiesDeviceERPSmartMeterRegisterCreateRequest.

 

 

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Receiver Determination --> <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30"><Trace level="1" type="T">CL_XMS_MAIN-&gt;DETERMINE_EXT_PID: CENTRAL</Trace>

<Trace level="1" type="T">Party normalization: sender </Trace>

<Trace level="1" type="T">Sender scheme external = </Trace>

<Trace level="1" type="T">Sender agency external = </Trace>

<Trace level="1" type="T">Sender party external = </Trace>

<Trace level="1" type="T">Sender party normalized = </Trace>

<Trace level="3" type="T">##### DG: 0</Trace>

<Trace level="3" type="T">##### TO: 3</Trace>

<Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST"></Trace><!-- ************************************ -->

<Trace level="1" type="T">XMB was called with URL /sap/xi/engine/?type=entry</Trace>

<Trace level="2" type="T">Request Line = POST /sap/xi/engine/?type=entry HTTP/1.0</Trace>

<Trace level="2" type="T">Host = MB3AP1069:50200</Trace>

<Trace level="2" type="T">Server protocol = HTTP/1.0</Trace>

<Trace level="2" type="T">Remote address = 10.212.178.153</Trace>

<Trace level="3" type="T">COMMIT is done by IS ! </Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS">

<Trace level="1" type="T">CL_XMS_MAIN-&gt;DETERMINE_EXT_PID: CENTRAL</Trace>

<Trace level="1" type="T">CL_XMS_MAIN-&gt;DETERMINE_INT_PID: SAP_CENTRAL</Trace>

<Trace level="3" type="T">##### DG: 0</Trace>

<Trace level="3" type="T">##### TO: 3</Trace>

<Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV">

<Trace level="3" type="T">No triggers found. OK. </Trace>

</Trace>

<Trace level="3" type="T">system-ID = RX2</Trace>

<Trace level="3" type="T">client = 001</Trace>

<Trace level="3" type="T">language = E</Trace>

<Trace level="3" type="T">user = BASIS</Trace>

<Trace level="1" type="Timestamp">2014-03-11T05:12:50Z INDIA  </Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE"></Trace><!-- ************************************ -->

<Trace level="1" type="T">Message-GUID = 0050569403CE1ED3AA9B792DB442C615</Trace>

<Trace level="1" type="T">PLNAME = CENTRAL</Trace>

<Trace level="1" type="T">QOS = EO</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC">

<Trace level="3" type="T">QOS = EO</Trace>

<Trace level="3" type="T">Message-GUID = 0050569403CE1ED3AA9B792DB442C615</Trace>

<Trace level="3" type="T">Generate prefixed queue name </Trace>

<Trace level="1" type="T">Queue name : XBTI0003</Trace>

<Trace level="1" type="T">Generated prefixed queue name = </Trace>

<Trace level="1" type="T">Schedule message in qRFC environment </Trace>

<Trace level="3" type="T">Setup qRFC Scheduler </Trace>

<Trace level="1" type="T">Setup qRFC Scheduler OK! </Trace>

<Trace level="3" type="T">Call qRFC .... MsgGuid = 0050569403CE1ED3AA9B792DB442C615</Trace>

<Trace level="3" type="T">Call qRFC .... Version = 000</Trace>

<Trace level="3" type="T">Call qRFC .... Pipeline = CENTRAL</Trace>

<Trace level="3" type="T">OK. </Trace>

<Trace level="1" type="T">----------------------------------------------------- </Trace>

<Trace level="1" type="T">Going to persist message </Trace>

<Trace level="1" type="T">NOTE: The following trace entries are always lacking </Trace>

<Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST </Trace>

<Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC </Trace>

<Trace level="1" type="T">Async barrier reached. Bye-bye ! </Trace>

<Trace level="1" type="T">----------------------------------------------------- </Trace>

</Trace>

<Trace level="3" type="T">Version number = 000</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST"></Trace><!-- ************************************ -->

<Trace level="3" type="T">Persisting message Status = 001</Trace>

<Trace level="3" type="T">Message version 000</Trace>

<Trace level="3" type="T">Pipeline CENTRAL</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE"></Trace><!-- ************************************ -->

<Trace level="3" type="T">Trace object available again now. OK. </Trace>

<Trace level="3" type="T">Message was read from persist layer. OK. </Trace>

<Trace level="3" type="T">Message properties in XMB object were setup. OK. </Trace>

<Trace level="3" type="ToDo">Make sure we catch exceptions in persist read </Trace>

<Trace level="3" type="ToDo">Tracing obj. not avail. before return of CL_XMS_MAIN-PERSIST_READ_MESSAGE</Trace>

<Trace level="1" type="B" name="PLSRV_XML_VALIDATION_RQ_INB">

<Trace level="1" type="Timestamp">2014-03-11T05:12:50Z INDIA Start of pipeline service processing PLSRVID= PLSRV_XML_VALIDATION_RQ_INB</Trace>

<Trace level="1" type="B" name="CL_XMS_PLSRV_VALIDATION-ENTER_PLSRV">

<Trace level="3" type="T">Pipeline Service = PLSRV_XML_VALIDATION_RQ_INB </Trace>

<Trace level="3" type="T">Skip Inbound Validation =  </Trace>

<Trace level="3" type="T">Skip Outbound Validation =  </Trace>

<Trace level="3" type="T">Area = XML_VALIDATION_INB </Trace>

<Trace level="1" type="T">Reading sender agreement </Trace>

<Trace level="1" type="T">Message does not contain a sender agreement </Trace>

<Trace level="1" type="T">Inbound validation by Integration Engine does not take place </Trace>

</Trace>

<Trace level="1" type="Timestamp">2014-03-11T05:12:50Z INDIA End of pipeline service processing PLSRVID= PLSRV_XML_VALIDATION_RQ_INB</Trace>

</Trace>

<Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">

<Trace level="1" type="Timestamp">2014-03-11T05:12:51Z INDIA Start of pipeline service processing PLSRVID= PLSRV_RECEIVER_DETERMINATION</Trace>

<Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">

<Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N </Trace>

<Trace level="1" type="T"> Cache Content is up to date </Trace>

<Trace level="2" type="T">Start without given receiver </Trace>

<Trace level="2" type="T">Classic Receiver Determination via Rules. </Trace>

<Trace level="3" type="T">...create rule engine </Trace>

<Trace level="2" type="T">Check conditions for rule line no. 1  </Trace>

<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&amp;_MSG&amp;;NSP=&amp;_NSM&amp;;XPATH=&quot;/p1:UtilitiesDeviceERPSmartMeterRegisterCreateRequest/UtilitiesDevice/SmartMeter/UtilitiesAdvancedMeteringSystemID&quot;)% NE HES</Trace>

<Trace level="2" type="T">......extracting (new) for Extractor: XP /p1:UtilitiesDeviceERPSmartMeterRegisterCreateRequest/UtilitiesDevice/SmartMeter/UtilitiesAdvancedMeteringSystemID </Trace>

<Trace level="2" type="T">......extracting values found: 0 </Trace>

<Trace level="2" type="T">......extracting values found: 0 </Trace>

<Trace level="2" type="T">...valid Receiver with Condition:  - SOA_DEMO </Trace>

<Trace level="2" type="T">Check conditions for rule line no. 2  </Trace>

<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&amp;_MSG&amp;;NSP=&amp;_NSM&amp;;XPATH=&quot;/p1:UtilitiesDeviceERPSmartMeterRegisterCreateRequest/UtilitiesDevice/SmartMeter/UtilitiesAdvancedMeteringSystemID&quot;)% CE HES</Trace>

<Trace level="2" type="T">......extracting (new) for Extractor: XP /p1:UtilitiesDeviceERPSmartMeterRegisterCreateRequest/UtilitiesDevice/SmartMeter/UtilitiesAdvancedMeteringSystemID </Trace>

<Trace level="2" type="T">......extracting values found: 0 </Trace>

<Trace level="2" type="T">......extracting values found: 0 </Trace>

<Trace level="2" type="T">...invalid Receiver:  - Emeter_Demo </Trace>

<Trace level="2" type="T">No Receiver found behaviour: 0  </Trace>

<Trace level="2" type="T">Number of Receivers:1  </Trace>

</Trace>

<Trace level="1" type="Timestamp">2014-03-11T05:12:51Z INDIA End of pipeline service processing PLSRVID= PLSRV_RECEIVER_DETERMINATION</Trace>

</Trace>

</SAP:Trace>

 

any input on this would be helpful.

 

Thanks,

Mandar


Viewing all articles
Browse latest Browse all 7030

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>