cancel
Showing results for 
Search instead for 
Did you mean: 

Extract Payload from sxmb_moni

Former Member
0 Kudos

Hi,

I have a scenario in which we send PO as cxml to the vendor.

Sometimes we need to search whether a particular PO number has gone successfully. In this case we need to manually check the payload of each message and match the particular PO.

Also sometimes for errored messages we need to extract the payload as a file and send it to the vendor. Now we are manually doing it.

Is there any way in which I could download the payload and to search for a particular text in the payload.

I have gone through the following links

http://searchsap.techtarget.com/tip/XI-Search-through-the-payload-of-a-message-without-TREX : This was not working

/thread/388869 [original link is broken] : Can anyone please tell me how to convert long raw to string.

Please help as this issue is very critical.

Thanks and regards,

Siji

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Anup,

For your first issue : finding payload for specific PO,

you have to write an UDF to place the message id and PO in some file or table, but you have to maintain this, PI will hold the payload in internal tables but you can't find which payload has you PO, so you need to pass message id and PO number so that you can go to moni and open the PO using the message id from the table of file.

we did this in one of our projects for central monitoring, where all the messages were logged with messaged id and idoc number so that we can track them.

Second thing : for failed messages, it would be eay to use Alerts in which you will have message id and you can get the payload you want by clicking the payload link in the mail or by going to moni with message id.

in both the ways there is no easy option where you can simply click a button and you gets the paylaod.

thanks...

Karna....

Former Member
0 Kudos

Hi,

Thanks for your fast reply. But can you give the sample code which you had used in your program for storing the message id and the PO. We are using BPM for this scenario.

Also for my second scenario it is like when 60-70 PO'sfail. So instead of going inside moni and clicking on each PO we could write a program in which if we provide the message id we could be able to download that payload.

Thanks and regards,

Siji

Former Member
0 Kudos

Hi Martin,

I am using to proxy to HTTP scenario. No IDOC's are used.

Former Member
0 Kudos

Sorry Anup, I don't have that code... but it is a java UDF which send details to a queue and from there it is published to a webservice by another program.

Thanks...

Karna...

Former Member
0 Kudos

Hi again, custom or standard proxy?

If custom proxy, implement logging of message id and PO number. Then you can easily find the message in sxmb_moni, under tab Advanced selection criteria you can search for message id. Check [Accessing the Message ID on SAP help|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/2a/a4033eec2bc452e10000000a114084/content.htm] for coding in ABAP.

If standard proxy, check documentation if logging is available. If not, implement an enhancement and implement logging as depicted in SAP help.

Regards, Martin

Former Member
0 Kudos

Hi Martin,

I am using custom proxy. But can you tell me how to store the PO number and its corresponding message id.

Former Member
0 Kudos

Hi, check the SAP help link i provided. In the ABAP implementation of the custom proxy, you can extract the message id from proxy runtime after having executed the proxy:


" step 1, get a protocol instance for if_wsprotocol_message_id:
DATA: mo_wsprotocol_message_id TYPE REF TO if_wsprotocol_message_id.
mo_wsprotocol_message_id ?= cl_proxy_client->get_protocol( if_wsprotocol=>message_id ).
" step 2, call method:
CALL METHOD mo_wsprotocol_message_id->get_message_id
    RECEIVING
      message_id = <MSG_GUID>.

The PO number should be available in a variable in your implementation. Then you can log a combination of PO number and message id any convenient place, e.g. application log, custom table, screen output etc.

Regards, Martin

Edited by: Martin Sommer on Dec 2, 2011 5:03 PM

Former Member
0 Kudos

Never mind this is for ECC to find out the idoc based on content....

Hi Anup,

I now remember one TCode WE09/We10 in PI with which we can trace the idoc and search for particular field, I guess this will help you in your case..

try it.

Karna....

Edited by: Chirumamilla Sukarna on Dec 3, 2011 4:37 PM

Answers (2)

Answers (2)

vadimklimov
Active Contributor
0 Kudos

Hello Siji,

Please consider using user-defined message search (lean message search): in this case, you will get capability to identify which payload elements you would like to make search against (e.g. PO number in your case) and then search by values of these elements in messages' payloads. The idea behind is that you configure filters (for which scenarios based on sender/receiver/interface you would like to enable the feature) and extractors for each defined filter (which payload elements' values should be extracted for further enabled search). This all is done via SAP standard customizing transaction (SXMS_LMS_CONF). Then, you can use standard monitoring tools to perform search against extracted payload elements.

Note that this feature became available starting from release 7.1 EhP 1.

For example of practical usage of this feature, have a look at the following blog: .

Regards,

Vadim

Former Member
0 Kudos

Hi, how do you send the POs to PI? Idoc, RFC, proxy? Is there any logging on the sender side from the process sending the POs? e.g. for proxy it is common to log the message id.

If you use Idoc, you can use IDX5 in PI with Idoc number from ECC to find the message.

Regards, Martin