Receiver Determination Question

Dear all,
I have to determine the receiver based on one input field.
If Status is PICKUP or DELIVERY OR READY TO DELIVER, i have to send it to ECC, else i have to send to Error folder.
I did with Receiver determination X-path, and working fine.The issue is if i give "PICKUP" in lower case like "pickup" it is going to error folder.
Means this is case sensitive, How to handle this. In mapping we can transform to Upper case but how in x-path editor to handle this?
Regards

Hi Bhavana,
                    Best way, as you already suggested is that in the message mapping where you are putting values into the field Status, convert characters to upper case.Like this UDF below will convert all character to upper case thus receiver determination will work properly. The name of the UDF is changeCase. I have always used upper case for receiver determination.
INPUT to the UDF=" PIckup"
OUTPUT string=  "PICKUP"
public class UpperCase {
@param args
     public static String changeCase(String s)
          String a="";
          try
               int i,l;
               l=s.length();
               for(i=0;i<l;++i)
                    if(s.charAt(i)>='a' && s.charAt(i)<='z')
                         a+=(char)((int)s.charAt(i)- ('a'-'A'));
                    else
                         a+=s.charAt(i);
          catch(Exception e)
               e.printStackTrace();
          return a;
     public static void main(String[] args) {
          // TODO Auto-generated method stub
          String s="pickupa";
          System.out.println(changeCase(s));
regards
Anupam
Edited by: anupamsap on Feb 27, 2011 4:31 AM
Edited by: anupamsap on Feb 27, 2011 4:43 AM

Similar Messages

  • Question about Receiver Determination step in BPM

    Hello all,
    I have a BPM process similar to Multicat BPM Pattern.
    I have some questions regarding how the Receiver Determination works:
    1. Does it have to have interface determination in the Integration Directory?
    2. Does that interface determination (including the mapping) takes place when sending a message to a receiver from that Receiver Determination step,
    or should I perform a Mapping step explicitly in the process?
    Thanks ahead,
    Yoav.

    Yoav,
    Am not sure if I understood your requirement compltely.
    <b>Case A:</b>If you are using a send step without a Transformation Step.
    Then <b>Send will have message A</b> being sent out from BPm and then , during Interface Determiantion this will be transformed into Message B by Mapping in Interface Determination and this message B will be received by receiver
    <b>Case B:</b>If you have a transform and then a Send
    In this case, the mapping has been done, so you have the message B with you and so, <b>them message sent from the BPM will be message B</b>Hope this clarifies,
    Regards,
    Bhavesh
    Message was edited by: Bhavesh Kantilal

  • Another question about receiver determination

    Hi friends
    Can we add a new receiver to the list of receivers in the  receiver determination , based in some condition only for this new receiver.
    Let us say we have the message 1 sent to receiver_1 and receiver_2 no matter what , but the message 1 should only be sent to receiver_3 according to some conditions.
    my question if I can only put condition for the receiver_3 receiver determination , or do i have to write a UDF for mapping of the receiveres.
    Thanks

    Can we add a new receiver to the list of receivers in the receiver determination , based in some condition only for this new receiver.
    yes you can add list of the receivers in the receiver determination , based on  some condition .
    my question if I can only put condition for the receiver_3 receiver determination , or do i have to write a UDF for mapping of the receiveres.
    dont need to write any UDF's . u have to use Context Object/X-Path for REC3 in rec.det
    for ex: field1 = 1000 -> rec3
       field1 =900 ->rec1
    Edited by: bhavanisankar.solasu on Feb 10, 2012 3:48 PM

  • Receiver Determination Understanding Question

    Hi Guys,
    I have a question regarding receiver determination in a scenario where I have to send Orders Idocs to multiple Suppliers. For each supplier I would create a new partner with a corresponding communication channel. Since I have one Business system sending the orders idoc I have to set up receiver determination to work correctly. Are there any documents for this kind of scenario?
    Regards,
    Michael

    Hi Michael,
    Why do you need any document? Its very simple, you can create it.
    1. Create one Receiver determination.
    2. Add as many receiver services in that single receiver determinaiton as you want.
    3. Create interface determination and receiver agreement for each receiver services.
    Pls reward points if it helps you!
    BR,
    Madan

  • Some PI questions regarding RFC and  receiver determination

    If we import the design objects in one customer system from another customer system , and in the original system there is an imported RFC ,
    This RFC has been created in the new SAP customer system.
    My question is do we have to import the RFC again , as it is already in the imported design objecs.
    My second question is , di we need to create a receiver determination for the answe in a synchronous send step of the BPM ,
    Thanks

    My question is do we have to import the RFC again , as it is already in the imported design objecs
    Yes....the RFC/ IDOC should be imported from the system to/ from which you will send/ receive the data.
    If the RFC was in system1 earlier and now in system2.....then you have to delete the RFC imported from system1 (if it is not used) and then import it from system2
    My second question is , di we need to create a receiver determination for the answe in a synchronous send step of the
    BPM ,
    Irrespective of sync/ async send step.....you should create Receiver Determination....which will have BPM as sender and the TO_SYSTEM as receiver.....not separately for response....just once
    Regards,
    Abhishek.

  • Question regardin Receiver Determination

    Hi,
    IS there any way to determine the receiver from multiple receivers based on value which is coming from User defined function?
    I tried XPATH but I am able to populate only Sender Message Type in that. In my requirements I've to put condition based on value coming from User define function in message mapping
    for example : I am getting values LOC1, LOC2, LOC3 from database. Now want to put condition like If LOC1 then Receiver1, If LOC2 the Receiver2 etc.. But I am not able to get LOC1 field in XPATH.
    Anyone can suggest how to do this? Is there any alternative way to achieve this?
    Please help me ASAP.
    Thanks in advance.
    Chintan

    > 1) Enhanced Receiver determination can be used with Asynchronous Scenario. To use it with synchronous scenario we have to use BPM
    Actually, it is possible. You just have to implement a few workarounds. Check this blog: /people/jin.shin/blog/2007/12/11/sap-netweaver-process-integration-enhanced-receiver-determination-for-synchronous-scenarios
    Also, make sure your mapping for the enhanced receiver determination always result in at most 1 receiver (since sync scenarios can't process more than 1 receiver at once).
    > 2) We can't evaluate User Define Function (which is created in Message mapping to get some external data) in XPATH Condition. In XPATH we can use only Source structure to put the condition and find the receiver.
    The answer for this questions comes naturally once you understand a little further how XI works internally.
    In the message pipeline, the receiver determintion step comes before the interface determination, which is the step that executes the mapping runtime. Hence, at receiver determination, no mapping has been exeucuted in the payload yet, so the evaluation is done over the sender (outbound) interface.
    Regards,
    Henrique.

  • Question regarding Receiver Determination and Differente Namespaces

    Dear sirs,
    I have the following scenario:
    I have a mail account read by a sender communication channel IMAP4 in namespace http://a. The message is sent to a receiver communication channel type XI delivering to an ABAP Proxy at the same namespace. Everything works fine here.
    I need to split the route: Reading the same mail account and depending on the message received send it to an ABAP Proxy of namespace http://A or namespace http://B. The receiver determination does not allow to configure destinations of different namespaces.
    Please someone could give me an idea how to solve this issue?
    Thank you in advance.
    Fabio Purcino

    Hi,
    I have already two receiver agreement and two mapping programs but I'm not able to set these programs on interface mapping  because it's on a different namespace.
    I attached a image of my interface determination configuration.
    [http://img683.imageshack.us/img683/7909/imagenamespacepi.jpg]
    Best Regards,
    Fabio Purcino

  • Multi Mapping using condition & Dynamic Receiver determination – Used XSLT Mapping

    Dear Experts,
         I am struggling to identify an error on the Technical Routing. Firstly according to my scenario, I receive an XML file with multiple PO's and I have to split the file to 2 different target messages. and also according to the source payload I have to send the file to 2 different receivers. first receiver is ABAP Proxy to the back end system and the 2nd one is to a file location. I have used XSLT to split the message into 2 target message type and I have used a XSLT mapping for receiver determination. Does any one have any idea of what I am doing wrong.
    Note: some time I will only be able to fill in on target message.
    I have attached my XSLT message split mapping with this post, please let me know if you have further question.
    Your help is more appreciated.
    Advance Thanks,
    Pradeep
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
      <xsl:variable name="vFlag"/>
      <xsl:variable name="vPONUM" select="POTRACKING/Lines[1]/PONumber"/>
      <xsl:template match="/">
        <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
          <ns0:Message1>
            <ns1:MT_Tracking xmlns:ns1="http://www.findel-education.co.uk/axapta">
              <xsl:for-each select="POTRACKING/Lines">
                <sap:call-external class="ZCL_VNAP_OBJECTS" method="CHECK_PO_EXIST">
                  <sap:callvalue param="IP_EBELN" select="string(PONumber)"/>
                  <sap:callvariable name="vFlag" param="EP_BOLEAN" type="string"/>
                </sap:call-external>
                <xsl:if test="$vFlag = 0">
                  <Lines>
                    <DDate>
                      <xsl:value-of select="DespatchDate"/>
                    </DDate>
                    <PONumber>
                      <xsl:value-of select="PONumber"/>
                    </PONumber>
                    <POLine>
                      <xsl:value-of select="POLine"/>
                    </POLine>
                    <QTY>
                      <xsl:value-of select="Quantity"/>
                    </QTY>
                    <VendorMaterial>
                      <xsl:value-of select="VendorMaterialNumber"/>
                    </VendorMaterial>
                    <AccountRef>
                      <xsl:value-of select="AccountReference"/>
                    </AccountRef>
                    <ConsignNumber>
                      <xsl:value-of select="ConsignmentNumber"/>
                    </ConsignNumber>
                    <CarrierURL>
                      <xsl:value-of select="CarrierURL"/>
                    </CarrierURL>
                    <ConsignURL>
                      <xsl:value-of select="ConsignmentURL"/>
                    </ConsignURL>
                  </Lines>
                </xsl:if>
              </xsl:for-each>
            </ns1:MT_Tracking>
          </ns0:Message1>
          <ns0:Message2>
            <ns2:MT_Tracking xmlns:ns2="http://www.findel-education.co.uk/ecc/ax/po/ftp">
              <xsl:for-each select="POTRACKING/Lines">
                <sap:call-external class="ZCL_VNAP_OBJECTS" method="CHECK_PO_EXIST">
                  <sap:callvalue param="IP_EBELN" select="string(PONumber)"/>
                  <sap:callvariable name="vFlag" param="EP_BOLEAN" type="string"/>
                </sap:call-external>
                <xsl:if test="$vFlag = 1">
                  <Lines>
                    <DDate>
                      <xsl:value-of select="DespatchDate"/>
                    </DDate>
                    <PONumber>
                      <xsl:value-of select="PONumber"/>
                    </PONumber>
                    <POLine>
                      <xsl:value-of select="POLine"/>
                    </POLine>
                    <QTY>
                      <xsl:value-of select="Quantity"/>
                    </QTY>
                    <VendorMaterial>
                      <xsl:value-of select="VendorMaterialNumber"/>
                    </VendorMaterial>
                    <AccountRef>
                      <xsl:value-of select="AccountReference"/>
                    </AccountRef>
                    <ConsignNumber>
                      <xsl:value-of select="ConsignmentNumber"/>
                    </ConsignNumber>
                    <CarrierURL>
                      <xsl:value-of select="CarrierURL"/>
                    </CarrierURL>
                    <ConsignURL>
                      <xsl:value-of select="ConsignmentURL"/>
                    </ConsignURL>
                  </Lines>
                </xsl:if>
              </xsl:for-each>
            </ns2:MT_Tracking>
          </ns0:Message2>
        </ns0:Messages>
      </xsl:template>
    </xsl:stylesheet>

    Hi Hareesh,
    Please find my determination in the XSLT below, I am using enhanced receiver determination.
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:p1="http://sap.com/xi/XI/System" xmlns:ns="urn:sap-com:document:sap:idoc:messages" version="1.0">
      <xsl:variable name="vFlag"/>
      <xsl:variable name="vAX" select="0"/>
      <xsl:variable name="vSAP" select="0"/>
      <xsl:variable name="vBoth" select="0"/>
      <!--  <xsl:variable name="vPONUM" select="POTRACKING/Lines[1]/PONumber"/>-->
      <xsl:template match="/">
        <xsl:for-each select="POTRACKING/Lines">
          <sap:call-external class="ZCL_VNAP_OBJECTS" method="CHECK_PO_EXIST">
            <sap:callvalue param="IP_EBELN" select="string(PONumber)"/>
            <sap:callvariable name="vFlag" param="EP_BOLEAN" type="string"/>
          </sap:call-external>
          <xsl:choose>
            <xsl:when test="$vFlag = 0">
              <!--          <p1:Receivers>
                <Receiver>
                  <Service>
                    <xsl:text>BS_AXAPTA_TST</xsl:text>
                  </Service>
                </Receiver>
              </p1:Receivers>-->
              <xsl:variable name="vAX" select="$vAX + 1"/>
            </xsl:when>
            <xsl:when test="$vFlag = 1">
              <!--          <p1:Receivers>
                <Receiver>
                  <Service>
                    <xsl:text>BS_ECQCLNT300</xsl:text>
                  </Service>
                </Receiver>
              </p1:Receivers>-->
              <xsl:variable name="vSAP" select="$vSAP + 1"/>
            </xsl:when>
          </xsl:choose>
        </xsl:for-each>
        <xsl:if test="$vSAP &gt; 0">
          <xsl:if test="$vAX &gt; 0">
            <xsl:variable name="vBoth" select="$vBoth + 1"/>
            <xsl:variable name="vSAP" select="0"/>
            <xsl:variable name="vAX" select="0"/>
          </xsl:if>
        </xsl:if>
        <xsl:if test="$vBoth &gt; 0">
          <p1:Receivers>
            <Receiver>
              <Service>
                <xsl:text>BS_AXAPTA_TST</xsl:text>
              </Service>
            </Receiver>
            <Receiver>
              <Service>
                <xsl:text>BS_ECQCLNT300</xsl:text>
              </Service>
            </Receiver>
          </p1:Receivers>
        </xsl:if>
        <xsl:if test="$vAX &gt; 0">
          <p1:Receivers>
            <Receiver>
              <Service>
                <xsl:text>BS_AXAPTA_TST</xsl:text>
              </Service>
            </Receiver>
          </p1:Receivers>
        </xsl:if>
        <xsl:if test="$vSAP &gt; 0">
          <p1:Receivers>
            <Receiver>
              <Service>
                <xsl:text>BS_ECQCLNT300</xsl:text>
              </Service>
            </Receiver>
          </p1:Receivers>
        </xsl:if>
      </xsl:template>
    </xsl:transform>

  • Receiver determination wildcard in condition editor

    Hi experts,
    I have a question regarding the condition editor for receiver determinations on PI 7.1. I have an xpath expression on the left side and I need to have a condition on the right side that includes a certain pattern.
    One example:
    p1:myDocument/element = 1A2B*
    There I would want to read the xml element "element" and redirect to a certain communcation component if the value of 'element' starts with 1A2B.. regardless if its 1A2B3 or 1A2BC and so on.
    Is that possible? I tried like in the example to use * as a wildcard, but that didn't work.
    Any help would be appreciated.

    It should not be = operator ....it should be Contains Pattern Operator
    Refer: http://help.sap.com/saphelp_nwpi71/helpdata/EN/67/49767669963545a071a190b77a9a23/content.htm
    Regards,
    Abhishek.

  • Receiver determination step - Send context

    Hi Experts,
    I have understood from SAP library and others threads that send context in the receiver determination step is used to send value for the conditions we have added in ther receiver determination and fetch only receivers those satisfy the cretiria.
    Please validate whether my understand is right or not?
    If its correct, then my question is can we populate this value dyanmically, say field value from another message.
    Please clarify.
    Thanks,
    Kar

    Check if the below link is of any interest to you:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/46/8015de950e6be3e10000000a155369/frameset.htm
    From the link:
    Condition: when the AirlineID field in the message payload has the value LH, then the message is
    forwarded to the receiver business system BUS_100. A context object of the same name from the ES
    Repository is used to access the AirlineID field in the message.
    It talks about normal receiver determination as against the receiver determination step (of BPM) which you want....

  • Receiver determination step in BPM

    Hi, I have open a topic about BLOCK in BPM, as this link
    Re: question on BLOCK in BPM
    I descript the symptom in it, you can have a look.
    But now I find that the problem is due to receiver determination step in BPM, not block.
    So I think I'd better post it as a new topic.
    Are there anyone familiar with the receiver determination step in BPM, or know how to correctly use receiver determination step in BPM. Specially the 'send context', how to set it and how to combine it in Integration Directory.
    Thanks a lot

    You use the send context to specify a condition in your recevier determination. If your BPM flow sends the same message type in different send steps to different destinations you can specify some unique text like "R3" or "LEGACY" in the send context of your send step. Then in the receiver determination you can specify a condition that says Process Step = "R3" send to R3 "Process Step="LEGACY" send to legacy system.
    Hope that helps.
    Regards,
    Jitendra

  • PI 7.4-receiver determination, communication component

    Hello,
    I believe the question is simple,
    what determines, what communication components are available in receiver determination,
    I mean, when You are creating receiver determination, there is need to choose communication component (using search help) and I cannot see one communication component which I want.
    I've created comunnication channel, receiver agreement, interface determination for this system/communication component, but in receiver determination I cannot change the communication component.
    Thank You,
    Regards,
    Tomasz

    Hi Tomasz!
    In Integration Directory(ID), Communication Component are of two types.
    1. Business Service.
    2. Business System.
    Before creating Receiver Determination, make sure both the above Communication Component
    are created first. As we know these are the inputs for Receiver Determination.
    Now, assign 'Business Service' at 'Sender Communication Component' level and
                         'Business System' at 'Configuration Receivers' level.
    Note: The Business System is not an editable input, we have to select them among search help as
              mentioned before. If you are successfully created/assigned the Communications Components,
              then you will find them in search helps.
              At last do not forget to debug 'Test Configuration'.
    With Regards,
    Yarnagula Sudhir.
    Find the attachment Picture for the reference.

  • Enhanced Receiver determination - for Integration Process

    Hi,
    Just wanted to confirm that if it is possible to have more than one Receivers, with Enhanced Receiver Determination and one of the Receiver happens to be Integration Process. I know with Enhanced Receiver Determinations you can find more than one Receivers at Run time, however the key question is, if in addition to normal Receiver Systems (like SAP R/3 or Web Services etc), if we can also kickoff Integration Process within Enhanced Receiver Determination.
    Thanking in advance.

    as said by Udo Martens
    Assumedly the different receivers are using different Inbound Interfaces (a BP is using an Abstract Interface). Therefore you would need for each different receiver a own Interface Determination referring a own mapping.
    refer this wiki  http://wiki.sdn.sap.com/wiki/pages/pointstab/viewpageversion.action?pageId=131760630&version=5 to Know how to  configure Enhanced receiver determination  and Interface determination for each receiver .
    In your case one of the receiver will be Integration process

  • Interface and Receiver determination steps

    Dear Experts,
    I have list of queries which I am facing issue in ID. I am working on SOAP<->SAP-PI<->PROXY scenario.
    1. Created 2 Service Interface i.e. SI_SOAP_OB and SI_PROXY_IB in ESR.
    My question is that in the sender and receiver tab what should be the entries in Business System of SOAP and PROXY systems ( i.e. BS system created under the  node Communication Component without party). I created this Business System ABAP from the entries of SLD.
    2. What is the sequence of steps in the ID i.e. Cc,ID,RD,SA,RA.
    3. In the Receiver Determination, I can see in the "Configuration Overview" tab
    that the PROXY business system has red entries. I think that this system should show SI_PROXY_IB
    but it shows SI_SOAP_OB.
    4. When trying to create Interface Determination, I receive "JAVA.lang stack overflow error"
    and INTERNAL ERROR.I made sure that there is no inactivated objects under my user.
    5. I am sure that the step till creating SI in ESR and sender agreement in ID is correct. Can I create proxy as well as WSDL with end point at this stage.
    I need urgent suggestions from experts , kindly help.
    Regards
    Alice Rebecca

    1. Created 2 Service Interface i.e. SI_SOAP_OB and SI_PROXY_IB in ESR.
    My question is that in the sender and receiver tab what should be the entries in Business System of SOAP and PROXY systems ( i.e. BS system created under the node Communication Component without party). I created this Business System ABAP from the entries of SLD.
    ANS -
    For SOAP, anything like Legacy_filer can be created & used.
    For PROXY, use the business system of R/3 system maintained in SLD.
    2. What is the sequence of steps in the ID i.e. Cc,ID,RD,SA,RA.
    ANS-
    Sender CC
    Sender Agreement
    Rec Determination
    Int Determination
    Rec CC
    Rec Agreement.
    Create the steps in COnfiguration Scenario directly.
    3. In the Receiver Determination, I can see in the "Configuration Overview" tab
    that the PROXY business system has red entries. I think that this system should show SI_PROXY_IB
    but it shows SI_SOAP_OB.
    4. When trying to create Interface Determination, I receive "JAVA.lang stack overflow error"
    and INTERNAL ERROR.I made sure that there is no inactivated objects under my user.
    ANS
    its cache error. Go for full cache refresh in IB>AdministrationData cahce--cache refresh.
    5. I am sure that the step till creating SI in ESR and sender agreement in ID is correct. Can I create proxy as well as WSDL with end point at this stage.
    ANS
    Nope. create the structure in ESR & generate proxy for the same in ECC system. that's it. No need of WSDL here.
    -santosh.

  • Receiver determination Condition on Payload

    Hi,
    We are working on File - RFC - MQ Asynch -Synch Scenario without using the BPM.
    I will pick the file, and Based on file name I will get the MQ information, and pass the data to that MQ.
    For EX:-
    File name [ test_123], RFC returns the MQ name is Test_123.
    File name [ Test_234], RFC returns the MQ name is Test_234.
    File name [ Test_345], Rfc returns the MQ name is Test_345.
    File name also I am getting dynamically.
    So my question is, how can I maintain the condition on receiver determination.
    I think sender payload we can't maintain the condition.
    Is there any chance to maintain the condition on receiver payload...
    Please give me the solution.
    Thanks,
    Anu.

    You'll have a set of possible receiver Business Services?
    Also, is the RFC used just for looking up the mq name?
    If that's the case, I'd recomend using rfc lookup in the mapping + dynamic configuration for dynamic determination of the mq.
    If it won't meet your requirements, then I'd say rfc lookup + enhanced receiver determination.
    Avoid the async/sync bridge (it seems unecessary here, given that the sole purpose of the rfc is to return the file name).
    Regards,
    Henrique.

Maybe you are looking for

  • Could not load file or assembly 'System.EnterpriseServices

    Hello Guys, I"m new to Oracle and .Net, I'm trying to display data in a gridview but when I run my Asp.net application I get this error: "*System.IO.FileNotFoundException: Could not load file or assembly 'System.EnterpriseServices, Version=1.0.3300.0

  • Second iSight on my Mac Book Pro possible ?

    Hi! I'd like to buy an old iSight external camera and connect it to my MacBook Pro. But The MacBook Pro already has an iSight camera. Will it work ? How will I select which camera will be used ? Many thanks for your help.

  • Suddenly Slow Export

    I produce a half-hour tv show each week that ordinarily takes an hour to export.  I've been shooting/editing the same way for a year and a half, and within the last two weeks it suddenly takes three hours to export.  I shoot on the same camera with t

  • Sending the Stored Business Docs(TOA01) through email

    Hi ABAP Gurus, i have a scenario where in i have to collate all the store Business documents in PO (ex. if the PO is referring a PR/RFQ then all the attached business docs should be available in PO as stored business docs automatically) and then on c

  • Merging projects

    Trying to help a colleague out. Two sets of developers working on the same project but in two different project folders, proj1 and proj2. The second project was created by copying the first and renaming it to proj2. Then new mappings were developed i