Receiver dtermination condition ...????

Hi..friends...
its IDoc - to -file..
based on the idoc ,one of the segments filed value...i need to plave the file on related FTP server..
earlier i discussed in thread...FILE to ABAP Proxy
in the receiver determination..in condition ..
i given like this ...
HRMD_A05/IDOC/E1PLOGI/E1PITYP/E1P0002/NAMZU = 1 then Bs_ftp1
HRMD_A05/IDOC/E1PLOGI/E1PITYP/E1P0002/NAMZU = 2 then BS_ftp2
the segment  E1P0002 occurance.. 999999
in one Idoc, segment  E1P0002  conatins similar values like  NAMZU=1 the the file is placing on Bs_ftp1
in one IDoc,if  segment  E1P0002  conatins for  NAMZU=1 and another E1P0002 conatins NAMZU=2 then the file is placing on both Bs_Ftp1 and Bs_Ftp2 ..its not checking the condition in the condition editor....
please help me..
regards
ram

Hi friends...
now its going to respected BS_ftps
in my idoc i given three times of E1P0002
first E1P0002 segment for NAMZU=1
second E1P0002 segment for NAMZU =2
third E1P0002 segment for NAMZU =1
so my output xml should be on BS_ftp1 (if NAMZU =1 ) like this
( i given 2 two segments for NAMZU =1 ..here id is incremental value how many times the NAMZU =1 repeating)
<Assignment Operator id =1 >
< userid =.................................>
</Assignment Operator>
</Assignment Operator  id= 2>
<userid=....................................>
</Assignment Operator>
for Bs_ftp2 the xml file should be..
<Assignment Operator id =1 >
< userid =.................................>
</Assignment Operator>
i created some UDF like this....
Udf no input parameters and of type value..
public String countId(Container container)
int counter = 0;
counter++;
return(""+counter);
and i assign this UDF to assignment Operator.
and i am getting
1 for id..
each and every time i am getting 1 only..
i created another UDF like this..
public void countingId(String[] sNamzu,ResultList result,Container container){
int counter =1;
for (int i=0;i<sNamzu.length;i++)
if(sNamzu<i>.equals("1"))
result.addValue(counter+"");
counter=counter+1;
NAMZU>remove context>countingId>SplitByvalue(Each vlue)>id
if i do like this ..display queue..is working fine..
but in runtime...its
i am getting o/p file this
<assignment operator id =2>( i given 2 values for NAMZU =1)
<user id=....................>
</assignment operator>
<assignment operator >( id is missing )
<user id=...............>
</assignment operator>
please guide me..how to write UDF to get required output..
regards
Ram

Similar Messages

  • Condition receiver determination: Condition Editor

    Hi,
    I have to ruote the message to multiple receivers based on source filed value. 
    1) If FIELD-A = 1 or 2 or 3, we have to send it to RECEIVER-1
    root/FIELD-A = 1 or root/FIELD-A = 2 or root/FIELD-A = 3 = RECEIVER-1
    2) If FILED-A # 1 or 2 or 3 (anything other than 1,2 and 3), we have to send it to RECEIVER-2
    3) No matter what the FIELD-A value (1,2,3,4, anything), we have to send it to RECEIVER-3
    I have configured it in condition receiver determination:
    Conditions 1 and 3 are workign fine, but how do I make condition-2 work?
    I have tried to give root/FIELD-A # 1 or root/FIELD-A # 2 or root/FIELD-A # 3 = RECEIVER-2, It didn't work, even if the value is 2, message is being send to RECEIVER-2.
    How define 2nd condition in condition editor?
    Thanks in advance,
    Riya Patil

    Hi Riya,
    Please give following condition and check.
    (/BOL[(Revision != '1'and Revision != '2' and Revision != '3')]) EX
    Also if you are not able to see Message type in XPATH, please check if that software component is present in corresponding technical system of source busniess system in SLD.
    Once you see messagetype in XPATH, just select corresponding Revision Field in XPATH Editor and give above condition. Operator should be exists.
    Let me know if you face any issue.
    -Gouri

  • Multiple Receiver Dtermination from Same Business Sender Service to RecvStp

    Hi,
    I was trying to implement FORK STEP in ccBPM. Scenario I'm trying to implement is, using fork bundle PO with same items together.
    Can anybody help me to create multiple receiver dterminations for three receiver steps in three branches of fork step, where a common business sender service and same Integration process is used for receiving messages into SAP XI.
    Please advice soon,
    Thank You,

    Hi Murali,
    If it's always the same message, only one receiver determination is necessary. I'd also rather tend to do the capturing within a loop which is executed three times.
    Best regards
    Joachim

  • Receiver interfaces condition

    Hello All,
    In PI 7.31, I am trying to insert 1 receiver interfaces condition to check if the source field is not empty, then do not execute the interface
    I have given the condition as ns0:Material_MT/row/flag # (not equal) and right operand is blank and checked multiline checkbox
    In my case, the source structure is 0..unbounded where I use a select statement to fetch mutiple records (row)
    So the structure is like this below
    <MT_Material>
    <row> 0..unbounded
    <matid>
    <flag>
    </row>
    </MT_Material>
    The condition is not working so I am assuming its wrong. And also since the source structure is 0..unbounded, how do I specify the condition ?
    is the multline will take care of 0..many?
    thx
    mike

    I think I haven't made my question clear
    I have 2  receiver interfaces in the ICO for one outbound interface and I am maintaining maintain order at runtime checkbox for these 2
    For the second interface, I have to execute only if it satisfies the condition given below
    ns0:Material_MT/row/flag and ns0:Material_MT/Material ID not equal to space, then call the 2nd interface
    how do I write the condition??
    if the source structure ns0:Material_MT is 0.unbounded, how do I mention that in the condition editor? is it multiline check box?
    pls help
    thx
    mike

  • Receiver Determination - condition editor

    Hi,
    I have a receiver determination which receives files and the filename determines where the file is sent/routed. I am using the condition editor for this functionality and need some help. The filename contains the following format 'xxxxxx010xxx20070101.out' where xxx represents different codes depending on the extraction. I used the following in the condition editor:
    ++++++010* I understood each + to represent a character. This is not working, any ideas?
    Thanks,
    Leanne

    you can utilize XPATH functions in your conditions to acheive the same.
    Try to take the help of the following weblog and maybe the string functions of xpath to achieve your results.
    ref:
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    http://www.w3schools.com/xpath/xpath_functions.asp#string

  • Receiver Determination Condition and XPATH

    Hi Everyone,
    I have a receiver determination with conditions and can not figure out why one thing is working, and the other isn't.
    As suggested in the following forum post, XPATH and RECEIVER DETERMINATION, I had to do the following to my XPATH expression to make it work.  The full xpath expression is this:
    (/p1:RenExtract_MT/Detail/CompanyCode = 9740)
    where
    p1 = http://company.com/xi/fin/
    but whenever I put in a condition it could not find a receiver.
    Hoewver, when I did this:
    //CompanyCode
    it worked.
    I did everything through the condition editor, many times, and didn't type anything in myself.  Is there a length limitation or something (I removed some data in here, the expression is really longer!).
    Any ideas?
    Peter

    Hi Peter,
    I do not have an explanation for this wired behaviour.
    But I can assure your, that your working solution, the //something expression is a good one and not inferior to a solution using an explicit, absolute path.
    Why is that: I can remember some benchmarks, where the //something expression always outperformed the other one.
    Regards
    Gregor

  • Receiver Determination conditions

    Hi All
    We have a scenario where a IDOC is trigerd in the ecc system and multiple IDOC is send to the XI system. Only when a certain field is 3  char or 5 char or 7char long should the file be dumped on the server. Is is possible to have a condition in the receiver determination to say if the field is between 100 and 999 or between 10000 or 99999 or between 1000000 and 9999999 to only create the files?
    Any help will be appreciated.

    hi,
    Its quite easy to achieve this requirement.
    You can edit the xpath in the Recv. Determination and then in combination with xpath standard functions achieve this.
    have a lo0k at my blog - Customise your 'XPATH' Expressions in Receiver Determination
    Also for xpath functions ref: http://www.w3schools.com/Xpath/xpath_functions.asp

  • Receiver Determination, condition to select receiver doesn't extract values

    Dear all!
    I have SAP PI 7.1
    I am facing problem in Receiver Determination while using Condition to select receiver based on the values in the payload.
    I need, if Identificador = 1 then receiver BC_1 and if Identificador = 2 then the receiver BC_2
    My payload has the value:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:p1="http://pruebas.endesa.es/AME4S_2">
      <soap:Body>
        <p1:MT_WS_SENDER_Q>
          <IDENTIFICADOR>1</IDENTIFICADOR>
          <OBJECT_ID>7600000009</OBJECT_ID>
        </p1:MT_WS_SENDER_Q>
      </soap:Body>
    </soap:Envelope>
    But, the trace shows following:
    <Trace level="2" type="T">......extracting (new) for Extractor: XP /p1:MT_WS_SENDER_Q/IDENTIFICADOR </Trace>
    <Trace level="2" type="T">......extracting values found: 0 </Trace>
    I tried with double quotes, simple quotes, without quotes...
    I tried too with a Receiver Rule (with context) and local rule with xpath....
    Can someone please advise?
    Thanks in advanced!!

    Hello,
    /p1:MT_WS_SENDER_Q/IDENTIFICADOR = 1
    Can you try //p1:MT_WS_SENDER_Q/IDENTIFICADOR = 1 ? I'm sure I read it somewhere here in SDN regarding the xPath difference for stateless and stateless XI 3.0 compatible version is an additional /. It's worth to try
    Hope this helps,
    Mark

  • Receiver determination condition for multiple line items

    I have a structure like this
    <Invoice>
       <InvoiceHeader></InvoiceHeader>
      <InvoiceItemDetail>
       <InvoiceItem>
             <InvoicePrice>0.00</InvoicePrice>
        </InvoiceItem>
       <InvoiceItem>
             <InvoicePrice>0.00</InvoicePrice>
        </InvoiceItem>
       <InvoiceItem>
             <InvoicePrice>0.00</InvoicePrice>
        </InvoiceItem>
      </InvoiceItemDetail>
       </Invoice>
    if my Invoiceprice is 0.00 in all invoice items , i need to send to a particular receiver.
    In this case, how do i need formulate a receiver condition? i have tried all, but it is not working.
    Regards,
    Raveendra

    HI,
    if i have two invoice items with one price with 0.00 and 30.00. your condition will find a receiver. But, it has to find receiver only when two invoice prices are 0.00
    if i have two invoice items with one price with 0.00 and 30.00
    for ex:
    item  A = 0.00
    item  B = 0.00 / 30.00
    But, it has to find receiver only when two invoice prices are 0.00
    rootnode/InvoiceItemDetail/InvoicePrice(A) = 0.00  AND  rootnode/InvoiceItemDetail/InvoicePrice(B) = 0.00 -
    > target A
    rootnode/InvoiceItemDetail/InvoicePrice(A) # 0.00 OR     rootnode/InvoiceItemDetail/InvoicePrice(B) # 0.00 -
    > target B
    thanks,

  • Receiver Determination-Condition not working

    Hi all,
    It is simple iDoc to File scenario.  I have two receivers based on a condition in the receiver determination.  I am getting all data into both receivers without executing the condition. 
    Below is the condition.  Any idea why this is not being executed?  Thanks for your help.
    (/ZGENERIC_OUTBOUND01/IDOC/Z1GENERIC_SDATA/SDATA = '1C')
    (/ZGENERIC_OUTBOUND01/IDOC/Z1GENERIC_SDATA/SDATA = '1B')

    >   <?xml version="1.0" encoding="UTF-8" ?>
    > - <ZGENERIC_OUTBOUND01>
    > - <IDOC BEGIN="1">
    > - <EDI_DC40 SEGMENT="1">
    >   <TABNAM>EDI_DC40</TABNAM>
    >  ......
    >  ......
    >   </EDI_DC40>
    > - <Z1GENERIC_SDATA SEGMENT="1">
    >        <SDATA>1C</SDATA>
    >   </Z1GENERIC_SDATA>
    > - <Z1GENERIC_SDATA SEGMENT="1">
    >        <SDATA>1C</SDATA>
    >   </Z1GENERIC_SDATA>
    > - <Z1GENERIC_SDATA SEGMENT="1">
    >        <SDATA>1B</SDATA>
    >   </Z1GENERIC_SDATA>
    >   </IDOC>
    >   </ZGENERIC_OUTBOUND01>
    You cannot have both the conditions in same IDOC at the same time. Like here in the above example you have 1C & 1B both, so in this situation it will not work.
    Just for testing either remove 1C or 1B and then test. I am sure it will work.
    You cannot send the same payload at the same time based on two different conditions to 2 different receivers except you put 'OR' in your conditon for 1C & 1B. But in this situation message will go to both of the receivers which you don't want here.
    Regards,
    Sarvesh

  • Receiver determination Condition. XPATH suggestion

    Hi All,
    I got a condition to put in receiver determination like..
    Condition 1 --> System_A
    //ZORDER03/IDOC/E1EDKA1(PARVW='LF')/ILNNR = SA       AND
    //ZORDER03/IDOC/E1EDKA1(PARVW='LF')/PARTN = 0000050570      AND
    //ZORDER03/IDOC/E1EDKA1(PARVW='WE')/LIFNR = 1433            AND.
    It it satisfies above condition, message should goto System_A
    Condition 2 --> System_B
    //ZORDER03/IDOC/E1EDKA1(PARVW='LF')/PARTN # 0000050570      AND
    //ZORDER03/IDOC/E1EDKA1(PARVW='WE')/LIFNR # 1433           
    The values will be coming differently for E1EDKA1(PARVW='LF')/ILNNR like XMl,KNF,DHD,File etc apart from 'SA'.
    It is working correctly only for 'SA', not working for remaining values.
    Is there any simple way to insert this conditions? Kindly suggest.
    Thanks
    Deepthi.

    Hello,
    Kindly check the below condition, assuming PARVW, ILNNR, PARTN are under same parent node i.e. E1EDKA1:
    For System A:
    //ZORDER03/IDOC/E1EDKA1[( (PARVW = 'LF') and ((ILNNR = 'SA') or (PARTN = '0000050570'))) or ((PARVW = 'WE') and  (LIFNR = '1433'))]  EX
    For System B:
    //ZORDER03/IDOC/E1EDKA1[not (((PARVW = 'LF') and ((PARTN = '0000050570'))) or ((PARVW = 'WE') and  (LIFNR = '1433')))] EX
    -Rahul

  • 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.

  • XI - Receiver Determination Condition not working

    I created a Condition on my Receiver Determination to stop some messages from being sent based on a field in our message.
    It works when using some test tools (workbench, SOAPUI, etc) but not when coming from our MDM system.  The beginning of the input message looks like what is listed at the bottom of this message(and it works).
    But when coming from MDM the one node looks like this  - there is no colon ( after the xmlns.
                   <YMDMB_CREMDM xmlns='http://intel.com/MDM/BUPA/Vendor'
    without the colon ( the condition does not work;  with the colon it does work.
    the sending system is not able to add the colon. 
    Does anyone know why the colon matters and what we can do to get around it in XI ??
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Receiver Grouping -->
    <YMDMB_CREMDM xmlns:='http://intel.com/MDM/BUPA/Vendor' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <IDOC BEGIN='1.0' xmlns=''>

    below is the beginning of the XSD from the IDOC (it is custom but based on a SAP one  - just added a few fields)
    I also put the start of the input message below that.
    also to make sure I was clear, if all we do is change this node of the input message by adding a colon after the xmlns everything works.
                   <YMDMB_CREMDM xmlns='http://intel.com/MDM/BUPA/Vendor'
    thanks
    begging of XSD from IDOC
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:element name="YMDMB_CREMDM">
              <xsd:complexType>
                   <xsd:sequence>
                        <xsd:element name="IDOC" type="YCREMDM.YMDMB_CREMDM" />
                   </xsd:sequence>
              </xsd:complexType>
         </xsd:element>
         <xsd:complexType name="YMDMB_CREMDM.E1BPADTTX">
    here is beginning of input message
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Receiver Grouping -->
    <YMDMB_CREMDM xmlns='http://intel.com/MDM/BUPA/Vendor' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <IDOC BEGIN='1.0' xmlns=''>

  • Multiple receiver without condition

    hi,
      I hava a scenario of multiple receiver without the condition. I used 2 send step but i don't find any parameters in send step to specify the receiver channel in send step. Please let me know whether to specify it.
    regards,
    Dhil

    Hi Ahmed,
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    in the above blog <status>tag is getting populated from the sender but in my case i need to calcualte in runtime and it was in BPM for eg. sum of particular field f1.  then need to send accordingly only based on this f1 value.
    please help me out how this will be possible. can we use the variable in Recevier determination which i declared in BPM.
    Regards,
    Dhil

  • XPATH & RECEIVER DTERMINATION

    My scenario is Invoic02-file
    I configured the 2 receivers in my receiver determination.
    Both receivers belongs to same party.
    I want to determine the receiver depending on my inbound payload.
    Its working fine withought condition,in this case invoice is going to both the places.
    But I want to send it one receiver depending on my inbound payload.
    If I use the condition to determine the receiver ,I'm getting the following error.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Receiver Identification
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I tried using  both ways (XPATH & Context Objects ) to set the condition.I'm getting the same error.
    can someone please provide good information to identify and resolve this issue ??
    Thanks
    sagar

    I set the condition in this way..
    Condition if(  A = 0    )
    party   LEFTIN LEFTIN   
    Service Serive1  Service2
    if A = 0 then the receiver is Service1.
    If A != 0  receiver is Service2.    
    is this is a correct procedure??
    Message was edited by:
            sagarkavi srungarakavi

Maybe you are looking for

  • Gnome stuck in fallback mode - not recognizing nvidia drivers

    Every time I start a gnome session it is stuck in fallback mode. Checking under System Settings > Details > Graphics I see that the Driver is listed as Unknown and Experience is Fallback. Forced Fallback Mode is OFF. I cannot get it to recognize the

  • Opening mini bridge in Photoshop, how to

    trying to have mini-bridge open while PS is also open to preview the pictures I am working with. I went to Windows>extensions> but extensions is not highlighted

  • Making a DVD from Keynote

    This should be a simple process, but I can't find out how to do it. (I get it to work after hours of trial and error, usually, but this time I'm stuck) I make a Keynote show - beautiful photos, text, etc - but without the music since I've been told t

  • Embarrassing UTC time in iPhone/iPad calendar

    Hi, I sync my iPhone6 calendar with Gmail. I currently have a problem with the iPhone calendar. The event contains the good times , however, placed in the box of the event, the time is displayed in UTC so with 2 hours ( or 1 hour in winter ) less (fr

  • Converting Physical Exchange Server into virtual environment (P2V) – Best Practices & Tips from the field (Guide)

    Hi, I wrote a 10-pages guide regarding Exchange P2V process which I performs often at organiziations. I would like to hear your opinion about this guide, if you have additional information - feel free to contact me at netanel [at] ben-shushan [dot] n