Skip to Content

Introduction:

If we consider any PI System, across an interface there will be thousands of messages flowing. So it becomes very difficult to search for a message which is required to us. To make the message search in an easy way User-Defined Search can be configured. User-Defined search is nothing but searching for a required message in an interface based on the content of the payload or the dynamic header. In this document step by step procedures for configuring User-defined search in Integration engine (Abap stack) and Adapter engine (Java stack) has been explained.

Basic Concepts and Overview:

1. If you consider the payload which is given below We can define user-defined search for any of its content.

UDS_1.png

2. Let us take a Name here as an example.

3. Once we define the Name as search criteria in the UDS, Based on the value which we give the particular message that satisfies our search value will be filtered and that message will be displayed.

 

For configuring User-defined Search the following three things need to be configured.

           

  • FiltersThey contain the details about the interface .i.e. the sender and receiver components, Interfaces and their namespaces.
  • ExtractorsExtractors for filters contain extraction details for the filters i.e. based on which criteria we want to filter the messages. It can be content of the payload or dynamic header. So here we need to define the required the X-path expression or dynamic header.
  • Namespace PrefixesHere we define the namespace prefix and the corresponding value for the namespace prefix.

Indexing:

In Adapter engine User-defined search we have an Indexing option. Indexing is nothing but searching for the message which has been already sent to PI and processed. Currently this option is available in adapter engine. We don’t have this option for Integration Engine.

System Requirements:


PI 7.3 system and Access to Transactions SXMS_LMS_CONF, SXMB_MONI, and SXMB_IFR are required for PI System.

User-Defined search in Integration Engine (Abap Stack):

With PI 7.3 We can open Abap stack by two ways.

  • Using normal SAP Logon.
  • Using Browser.
  • The step by step procedure to open Abap stack using browser is explained in this guide.
  • In the Abap stack use the transaction “SXMS_LMS_CONF” to define filters, extractors and namespace prefixes.

Opening Abap stack using web browser:

Opening ABAP stack using web browser is a new feature available with PI 7.3.Now let us  

see how to open Abap stack using web browser and then we will how to configure User-

defined Search using the transaction “SXMS_LMS_CONF”.

1. Open PI browser.

2. Then select “configuration and Monitoring Home” Which is encircled in black in the screenshot below.

UDS_1.png

3.Then select monitoring tab and under that Integration Engine tab and select “message monitor (Database)” option which is encircled in black in the screenshot below.

UDS_1.png

4. Once we click that we will be redirected to Abap stack as shown below.

UDS_1.png

5. Then we need to go to transaction”SXMS_LMS_CONF” to define User-Defined Search.

Filters:


1.Once we open the transaction “SXMS_LMS_CONF” we will find the option to add, delete and edit filters as shown below.


UDS_1.png

2. Define filters by giving sender and receiver parties, components, Interface name and namespace.

UDS_1.png

 

Extractors:


1. The next step is configuring Extractors for the filters.

2. Select the filter for which Extractor need to be defined.

3. At the bottom of the screen you will find the option to create Extractor which is encircled in Black in the screenshot below.

4. Once we select new option a new tab will open as shown in next slide where we will define our Extractors.

UDS_1.png

5. Define extractors for the filters by giving X-path or dynamic header.

6. Also you can invoke these extractors during message processing or by external job.Select them according to the requirement.

UDS_1.png

7. One Filter can have many Extractors.

Namespace Prefixes:


1.in the same screen at the right side bottom you will find an option to add Namespace Prefix which is encircled in black in the screenshot.

UDS_1.png

2.  The screenshot below is for Namespace prefix definition.

UDS_1.png

3. Define namespace prefix and namespace value and corresponding prefix.

Searching for the message using User-Defined Search Criteria:

1. After configuring filters and extractors, namespaces go to transaction “SXI_MONITOR”.

2. Select the “User-Defined selection Criteria” tab.

UDS_1.png

3. There you can find two columns Name and value.

4. Name is where the extractor defined will be selected and give the value based on which You want to search for the message.

5. Values are given as shown below.

UDS_1.png

6. You can search for all values or for any of the value.

7. Its like “or” and “And”

8. Now the messages will be filtered based on the” user-defined” search criteria and you can see the user defined attributes by selecting attributes tab or by pressing F7.

UDS_1.png

9. This is how UDS works in Integration engine.

User-Defined Search in Adapter Engine (Java Stack):


1. Hope you all now got the idea what is User-Defined Search. Now we will see how to do various configurations for UDS in Adapter Engine message search.

2. Open java stack of PI.Go to configuration and monitoring home.

3. There you will find “User-Defined Search Configuration”. Select that option.

UDS_1.png

4. Once you select the “User-Defined Search” option you will be directed to the page as shown below.

UDS_1.png

5. Here you find the filters, extractors and prefixes tab.

6. You can create new filter by using the “New” button which is highlighted by the black circle.

7. You can edit the existing filter by using the” Edit” button which is highlighted by red circle.

8. You can also the delete the existing filter by using “Delete” button which is highlighted by green circle.

9. You can also activate or deactivate the filter.

Filters:


1. Now we will see how to create filters for a interface.

2. Select the “New” button for creating filter. You will be redirected to the page as shown below.

UDS_1.png

3. New filter can be created by giving Name of the filter, Sender & receiver parties, components, and interface name and namespace.

4. Here also you can activate or deactivate the filter with the help of status option.

Extractors:


1. Now its time to create extractors for the filters.

2. Select the “search Criteria” option which is encircled in black in the screenshot below to define extractors.

UDS_1.png

3. Select the Filter for which you want to create extractor. Now select the new Button and define the extractor.

UDS_1.png

4. For extractor you need to give the Name, Type .i.e. whether it is xpath expression or dynamic header.

5. Then give the required Xpath or Dynamic header based on which you want to search for the message.

UDS_1.png

Namespace Prefixes:


1. After creating Filters and extractors now namespace prefixes should be defined.

2. Select the prefixes tab.

UDS_1.png

UDS_1.png

    

3.Select the prefix tab and give the namespace prefix and the corresponding value.


UDS_1.png



Searching for the message using User-Defined Search Criteria:


1. Now its time to check our UDS which we have configured.

2. Select monitoring option and below which you will see under” Adapter engine” tab.

3. After selecting that select” message monitor option “which is encircled with black in the figure below.

UDS_1.png

1. You will be redirected to Monitoring messages page. Select Database view and also select 

    “Advanced” option which is encircled with Red in the figure below.

UDS_1.png

2. Once you select the Advance option you can see the “User-defined Search” criteria.

UDS_1.png

3. Select the ADD predefined tab.

4. Now you can see the filters and extractors which we have defined earlier.

5. Now select the required filter and extractor for your interface.

UDS_1.png

6. Then give the value based on which you want to filter.

7. for example if EmpId is the filter criteria and your giving”1” as the value. Messages that contain “1”in the payload will be displayed.

8. The screenshot below here shows the messages filtered based on the value or content.

UDS_1.png

9. In User-Defined Attributes tab you can see the values which we have defined.

Indexing:


1. As discussed earlier, Indexing option is available for adapter engine User-Defined search.

2. Select the Indexing options button which has been encircled with black in the screenshot below.

UDS_1.png

3. By indexing we mean we can search for the message which has been already processed.

UDS_1.png

4. We can give the required dates and select “start Indexing” button to start indexing.

And the status can be checked by selecting” Indexing status” button.

To report this post you need to login first.

29 Comments

You must be Logged on to comment or reply to a post.

      1. Sampath N

        Hi Raghu,

        i created UDS based on above steps ,while testing in message monitoring advanced…No messages available for selected filter criteria this error  i am getting .can you  pls replay on this .

        My PI System  7.31 (java stack only)

        “”

        <?xml version=”1.0″ encoding=”utf-8″ ?>

        <nm:MT_Man  xmlns:nm=”urn:ate xmlns:prx=”urn:sap.com:proxy:IED:/1SA>

        <ER>

        <KURST>M</KURST>

        <GDATU>20150212</GDATU>

        <FCURR>PLN</FCURR>

        <TCURR>PHP</TCURR>

        <UKURS>12.38229</UKURS>

        </ER>


        “”

        based on the above xml structure , can explain how to give  X-path .

        (0) 
        1. Sahithi M

          Hi,

          In receiver interface,select XPATH and mention the same path in the search criteria in userdefined message search.In this way you can provide the XPATH.

          Still if you face any issue reply back.

          (0) 
            1. Sahithi M

              Hi Sampath,

              Please check  below points:

              1. Is the data you have given is valid one or not.

              2. Did you mention the prefix in the prefix tab.

              3. Just mention /nm:MT_ABC/Header/element in the XPATH.

              Please attach the screenshot still if you face issue.

              Regards,

              Sahtihi

              (0) 
      2. Mohd Abdul Mukheed

        Thanks Raghuram ,

        For such a nice blog which is self explanatory , I have dout in when you specfify that there is no indexing in  abap stack, but we can specfiy the dates in which we want to search message using first tab standard selection criteria.

        Regards
        mukheed

        (0) 
        1. Raghuraman S Post author

          Hello Mohd,

          But the messages wont be filtered if you dont do indexing,I mean the messages processed before configuring UDS.Now there is a option of indexing using some program.

          (0) 
  1. Nidhi Srivastava

    Hi Experts,

    I tried implementing the UDS in the same way but not getting UDS tab in monitoring.


    UDS_Issue.jpg

    Also, added the indexing option.


    UDS_Indexing_Option.JPG


    Please suggest what I am missing?

    Thanks,

    Nidhi

    (0) 
  2. Ankur Shukla

    Hi Raghu,

    i created UDS based on above steps ,while testing in message monitoring advanced…No messages available for selected filter criteria this error  i am getting .can you  pls replay on this.

    SAP PI(Dual Stack) 7.4 (Synchronous Interface)
    Payload :
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <ns0:MT_Add_Beneficiary_WithOther_Bank_Request xmlns:ns0=”http://adarsh_member_mob_ecc.com”>
    <Transaction_Request_No/>
    <Beneficiary_Account_Number/>
    <Beneficiary_Account_Type/>
    <IFSC_Code/>
    <Bank_Name/>
    <Branch_Name/>
    <Beneficiary_Name/>
    <Member_BP/>
    <NetworkID/>
    <MAC/>
    </ns0:MT_Add_Beneficiary_WithOther_Bank_Request>

    BR,
    Pradeep Kumar

    (0) 
  3. Ankur Shukla

    Hi Raghu,

    I have checked payload in SXMB_Moni , RWB and Message mapping  and there found below mentioned payload.

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <ns0:MT_Add_Beneficiary_WithOther_Bank_Request xmlns:ns0=”http://adarsh_member_mob_ecc.com”>
    <Transaction_Request_No/>
    <Beneficiary_Account_Number/>
    <Beneficiary_Account_Type/>
    <IFSC_Code/>
    <Bank_Name/>
    <Branch_Name/>
    <Beneficiary_Name/>
    <Member_BP/>
    <NetworkID/>
    <MAC/>
    </ns0:MT_Add_Beneficiary_WithOther_Bank_Request>
    …………………………………………………………………………………………………………………………………………..

    While I have checked Xpath in Interface determination & Receiver Determination and there found as below mentioned.

    /p1:MT_Add_Beneficiary_WithOther_Bank_Request/Transaction_Request_No

    So I have used both Xpath but issue is same.

    Thanks

    BR,
    Pradeep

    (0) 
    1. Raghuraman S Post author

      Hello Pradeep,

      Try like below

      //p1:MT_Add_Beneficiary_WithOther_Bank_Request/Transaction_Request_No

      and maintain namespace definition for P1
       

      (0) 
  4. PRADEEP KUMAR

    Hello Raghu,

    I have used both Xpath but issue is same(

    No messages available for selected filter criteria

    )

    Xpath :  //p1:MT_Add_Beneficiary_WithOther_Bank_Request/Transaction_Request_No
    Prefix :   p1
    Xpath : //ns0:MT_Add_Beneficiary_WithOther_Bank_Request/Transaction_Request_No
    Prefix:ns0

    I have checked Xpath in interface determination and there found (/p1:MT_Add_Beneficiary_WithOther_Bank_Request/Transaction_Request_No)

    But when i have checked mapping XML message and there found (ns0:MT_Add_Beneficiary_WithOther_Bank_Request/Transaction_Request_No)

    Thanks in advance.
    BR,
    Pradeep Kumar

     

    (0) 
    1. Raghuraman S Post author

      Hello Jana,

      Never faced such a issue,can you check if you have appropriate roles in ur Id and also try configuring new extractor and check.

      (0) 

Leave a Reply