cancel
Showing results for 
Search instead for 
Did you mean: 

Need help on Receiver Determination Conditions

Former Member
0 Kudos

Hi Experts ,

we   have one scenario where  PI Needs to pick up the file from MQ (Sender System)  and PI needs to send the message to SAP ECC (Receiver) Flow is like  MQ--->PI--->ECC . But there are certain condition based on which PI should send message to ECC  using Receiver IDOC Adapter .

Condition is like 

IF segment <Type> = 1 then PI Should pick up the file from MQ but should not map and  send anything to ECC

IF segment <Type> = 2 and 3 then PI Should  map  to IDOC and send msg to ECC .(each inbound message must give input to one IDoc)

I was trying to achieve this above condition  under Receiver Determination  using the Condition Editor .

if any  one has and suggestions please share  like how can i get   this condition at Receiver Determination

Regards,

Aziz

Accepted Solutions (0)

Answers (2)

Answers (2)

udo_martens
Active Contributor
0 Kudos

Hi Aziz,

shouldn t be a problem. Where are you struggeling?

The outbound IF should be available in the condition editor. Click X-Path and navigate the corresponding field/attribute you like to check. Combine in your second check the conditions with 'or'.

/Udo

Former Member
0 Kudos

HI Udo,

I have given the condition  as below

(PurchaseOrderLineReceive/DataArea/Type = 2) OR 

(PurchaseOrderLineReceive/DataArea/Type = 3)

Then PI should send the message to ECC .  This condition i am able to get now

Second case :

-------------------

For segment type = 1, you may choose error/ ignore as per requirement as it will not be able to determine the receiver.

For the First Case i have selected  the  Receiver Business System as per the requirement . But for this Second Case do i need to keep the Receiver Business System blank . If i do so . I will get error like "Unable to determine receiver. Message does not contain errors, but will be stopped " .

here i am facing problem when i test the message .


Former Member
0 Kudos

As you dont want to forward this message to receiver system, this message should be fine. Do you expect some other behaviour? What kind of problem you are facing?

ashish_goel4
Active Participant
0 Kudos

Hi Aziz,

For first case ( type = 1 ) you can give condition in mapping itself using "create if" in the mapping editor. But it will fail as no receiver is found.

How would you like to handle this condition ?

For second case it will work fine as you have given condition in RD.

Thanks,

Ashish 

allamudi_loordh
Active Participant
0 Kudos

Hi Aziz,

Do this create dummy file channel.. for first case type=1 pass data to file.. for this case you use what ashish told create if condition.. so nothing will come in receiver structure.no error can be seen in monitoring. that time in File Receiver channel check the option for empty handler ..

for the other two options go for ECC passing as suggested above..

Regards,

Loordh.

udo_martens
Active Contributor
0 Kudos

Hi Aziz,

But for this Second Case do i need to keep the Receiver Business System blank . If i do so . I will get error like "Unable to determine receiver. Message does not contain errors, but will be stopped " .

You need only one receiver (the first condition). If the result is false, you can define by check box if you want an "error message" or just "ignore" (no error case, nothing red in MONI).

/Udo

Former Member
0 Kudos

Hi Aziz,

What do you need to do with file once its picked up for segment Type = 1?

If you do not wish to send it to ECC, PI will pick up the file and fail in PI with receiver not found.

Thanks,

Beena

Former Member
0 Kudos

Hi Beena,

What do you need to do with file once its picked up for segment Type = 1?

PI Should pick up the file from MQ . But should not send to ECC . Yes this is what exactly i need .



Former Member
0 Kudos

Hi Aziz,

Please check this link:

http://help.sap.com/saphelp_nwpi711/helpdata/en/48/d25f650d7d035be10000000a42189b/content.htm

  •   NoReceiverBehavior: Specifies what happens if no receiver can be determined at runtime. 

    Possible values:

    • Error Message: Message processing is terminated with an error.

    •   Ignore: Message processing is ended as defined by your configuration settings.
    •   Specified Receiver: The message is sent to a fixed predefined receiver.

As suggested by Udo, you may define the condition for segment type 2 or 3 and define ECC as receiver in this case.

For segment type = 1, you may choose error/ ignore as per requirement as it will not be able to determine the receiver.

Thanks,

Beena

former_member201264
Active Contributor
0 Kudos

Hi Aziz,

You can do this in mapping.

Create IDOC when source segment type = 2 or 3 and

Suppress IDOC creation when segment type = 1.

Regards,

Sreeni.