cancel
Showing results for 
Search instead for 
Did you mean: 

Want to Use Extended Receiver Determination

abhay_aggarwal
Participant
0 Kudos

Dear All,

As my last post I came to know that i was using invaild data in input payload so i now have tested with proper data.

i am getting lot of invaild things in my input like space ,# and all from ECC side in first step of pipeline(Receiver Determination). so thinking to use extended reciver determination so that there i can validate the input paylaod there only..........is this possible

Plz suggset.....

Regards

Abhay Agarwal

Accepted Solutions (0)

Answers (3)

Answers (3)

abhay_aggarwal
Participant
0 Kudos

I have used the trim and repalceString fn for this req in mapping and it was not working . then i have used the Extended Receiver Determination in that I have used trim Fn with Fix Value Fn (Because I have to validate the payload in Receiver Determination Step which is the 1st Step in Pipeline).that ' s why i think it won't work in mappiing... and it is working fine Now for My scenario.

Former Member
0 Kudos
i am getting lot of invaild things in my input like space ,# and all from ECC side in first step of pipeline(Receiver Determination). so thinking to use extended reciver determination so that there i can validate the input paylaod there only..........is this possible

No need of extended receiver determination here. Message mappings can do it for you. If you know the fields that come with these data you can handle them at message mapping level only.

abhay_aggarwal
Participant
0 Kudos

HI Somen,

Let say i am having input xml like this

<row><Index>0 </Index>

<Date>20100210</Date>

<MANDT>100</MANDT>

<Flag>0 </Flag>

<Identifier>UST04</Identifier>

<BNAME>............</BNAME>

<PROFILE>............</PROFILE>

</row>

now i want to remove this space frm Index tag then which fn i have to use......

<row><Index>0 </Index>(mapping)<row><Index>0</Index>

Regards

Abhay

Former Member
0 Kudos
now i want to remove this space frm Index tag then which fn i have to use......

use standard function TRIM

Former Member
0 Kudos

Hi,

You can also use replaceString function.

Thanks

Amit

abhay_aggarwal
Participant
0 Kudos

Hi Amit,

how can we use replaceByString?

Regards

Abhay

Former Member
0 Kudos

Abhay

You are getting this space in source payload right?

In mapping did you try this?

Index>TRIM>target field.

abhay_aggarwal
Participant
0 Kudos

HI Somen,

trim is not working for this .

i getting the error in receiver determination step only..........this paypload is from receiver determination only....

<row>

<Index>0 </Index>

<Date>20100210</Date>

<MANDT>100</MANDT>

<Flag>0 </Flag>

<Identifier>UST04</Identifier><

BNAME>............</BNAME>

<PROFILE>............</PROFILE>

</row>

and I think i am using Trim fn in mapping which is not the first step of pipeline,.........

Regards

Abhay

Former Member
0 Kudos

Yeah you are right. This is to be used in mapping and it comes after receiver determination step.

Please post the error that you are getting. I doubt its due to the payload data atall. Might be some other reason.

Former Member
0 Kudos

Hi,

Use like this:

Index( 1 argument) -


Constant( [ ]) (2 arumnet)----


replaceString(having 3 arguments) --> Targetfield

Constant([]) (3 argument)----


This function will replace all the space occurences.

Thanks

Amit

Edited by: AmitSri on Feb 10, 2010 10:37 AM

abhay_aggarwal
Participant
0 Kudos

Hi Somen Hi Amit,

I have used both fn replaceString and Trim and both are not working beacuse I am getting the error in first pipeline step

<?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 using condition to determine the receiver on basis of Index Value

<row>

<Index>0 </Index>

<Date>20100210</Date>

<MANDT>100</MANDT>

<Flag>0 </Flag>

<Identifier>UST04</Identifier><

BNAME>............</BNAME>

<PROFILE>............</PROFILE>

</row>

if index value=0 then it use Service1

and if index value=1 then it use Service2

so in testing when i am removing this space from Index tag it's working fine.

so that is why i want to remove this space from here . for this i think we need first check input payload in first pipeline step only...........plz correct me if i wrong........:)

Regards

Abhay

abhay_aggarwal
Participant
0 Kudos

HI Experts,

Plz help.........

Regards

Abhay

Former Member
0 Kudos

Hi Abhay,

As per your post,I feel you are having problem in determining reciever due to the payload data ie a space.I believe you are using a udf for determining the receiver as you have mentioned:

If index value = 0 then Service1 else service2

So,problem is space is not read by the function and its giving error.So,kindly use trim function in the udf itself as:

index.trim value = 0 or 1.Please frame the code something like this.Then it will work.

Otherwise, do by grapical mapping by using

index>trim>if then else function--->

if 0--->service1

else--->service2

Please do this and let me know.It will resolve the issue.

Regards,

Nutan

abhay_aggarwal
Participant
0 Kudos

Hi Nutan,

NO I am not using any udf wht i am trying to to say

My req is to use

2 service

BS1

BS2

for this I have added one field in structure

<Index>

my logic in Conditional Editor

if<Index>=0 then BS1

If <Index>=1then BS2

so when data is coming from ECC side in Payload

<Index= 0> like this and it getting failed IN first step Receiver Identification Not in Mapping step

Any ways as per the suggestion from Amit and Somen I have used both Trim And ReplaceString IN My mapping

And that one is Not working.........

and when ussing that same payload by removing that space and sending from RWB it is proceesing successfully...........

plz suggest

Regards

Abhay

abhay_aggarwal
Participant
0 Kudos

Dear All,

Can Any One sugget me on this?

Regards

Abhay

Former Member
0 Kudos
<SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>

Abahy, try to follow the below steps...

1. DO NOT use any extended receiver determination in your configuration and first try to test the scenario using Test Configuration giving simple input(with no spaces in the index value).If all the pipeline steps executes successfully then move to step 2 given below. If again you see the same error mentionedabove, then try deleting the receiver determination and creating again.

2.In the message mapping, write a small udf to replace the unwanted characters in the input with blank.The udf is as below.

strInput1,strInput2 and strInput3 are the three arguments should be passed to the udf. strInput1 should the input value(ex: index) strInput2 should be the character to be replaced(" space" in this case) and strInput3 should be the character to be replaced with.("blank" in this case).

String temp = strInput1.replaceAll(strInput2,strInput3);
return temp;

use the above udf, o trim the unwanted characters.

This should solve your issue.Let us know if you still face any more errors.

Regards,

Swetha.

abhay_aggarwal
Participant
0 Kudos

HI Shewta,

I have used the trim and repalceString fn for this req in mapping and it was not working . then i have used the Extended Receiver Determination in that I have used trim Fn with Fix Value Fn (Because I have to validate the payload in Receiver Determination Step which is the 1st Step in Pipeline).that ' s why i think it won't work in mappiing... and it is working fine Now for My scenario. thanks for Your Alll Help.

Any new Ideas are most welcome.

Regards

Abhay Agarwal

Former Member
0 Kudos

Hi Abhay,

As i read the all the posts in this thread.. and ur error status is..

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

This problem is not from the mapping which will be in interface determination... also,

the mapping(interface determination) comes only after the receiver determination...

So the problem lies in the receiver determination configuration....

please delete the receiver determination once and recreate it once more(some times due to cache problem's)

For ur requirement dont create the extended receiver determination...(it's required only when u want to determine the receivers in run time)

To delete the spaces and special chars...

u can solve these in mapping,using the stringReplace and trim functions....

Also i doubt if at all the incoming source XML is proper structure or not... please check once in the SXMB_MONI.. the incoming payload.

Still some problem... please post the problem in detail .. so that others can also understand..

Babu

abhay_aggarwal
Participant
0 Kudos

Hi Babu,

That is wat I am saying , If I will use the trim and RepalceByValue Fn in mapping it won't work.Beacuse I have to validate the payload in Receiver determination on basis of paylaod in Receiver Determination I have to define the receivers.

Regards

Abhay Kumar

Edited by: Abahy Aggarwal on Feb 11, 2010 6:13 AM

Edited by: Abahy Aggarwal on Feb 11, 2010 6:15 AM

Former Member
0 Kudos

Hi Abahy,

i am getting lot of invaild things in my input like space ,# and all from ECC side in first step of pipeline(Receiver Determination). so thinking to use extended reciver determination so that there i can validate the input paylaod there only..........is this possible

Why do you want to go for extended receiver determination, you can validate the input payload in your message mapping itself(either by simple graphical or java mapping depending on your requirement).

Regards,

Swetha.