on 09-10-2007 2:21 PM
Hi folks,
Ive a scenario file to IDoc and/or ABAP Proxy. Well, depends of the source file content, an example to clarify: if field01 is equal to 37 goes to IDoc, else if field01 is equal to 38 goes to ABAP proxy. Im trying to do it without BPM, using the Receiver Determination editor condition, but Im getting unable to do it, Im always receiving both contents (37 and 38) for both IDoc and ABAP proxy, it seams that no routing conditions was applied.
Is it possible to do this kind of content split without BPM? With Receiver Determination?
Thanks in advance,
Ricardo.
Hi Ricardo,
I guess u can do it using the conditions in the receiver determination step.
You can use context object/X-path for the conditions.
context object/X-path will point to "field01" and in the runtime if value of field01=37 ..it will go to the IDOC receiver and if field01=38 ...then R/3 will be the receiver.
yes u can do it without using BPM.
first u check with value 37 and the value 38 for "fiield01" and test it....it will work....
all the best
Regards
Biplab
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Biplab,
Before I start this interface, I thought the same. I dont know why, but it doesnt work! Field01 is a string with max length = 2. I have defined a context object type string as well, pointing to this XPath. I have tried field01 = 37, = 37, = 37 and it doesnt work like I would like. Im always getting the 37 and 38 records in both BSystems.
Do Im missing something?
Regards,
Ricardo.
Ricardo,
Its surely possible without BPM. Just to give a try follow the below steps.
Give only one receiver with value Field01 = 37 and the respective receiver(IDOC).
Below choose Continue Message processing with following receiver give receiver as ABAP Proxy.
Anyhow the above design doesn't helps you out , bcoz if you have Field01 =39 then also it will go to ABAP proxy.
I want you to test just to see whether the condition is properly working with XPATH condition.
Hi Biplab,
No, in the same file can come both records with 37 or 38 code. For the 37 records I should route them (only the records and not the whole message) to IDoc interface and for the 38 to ABAP proxy interface as well. Ive to "split" the file content according with value of field01, If 37 or 38 only.
Thanks in advance,
Ricardo.
This level of splitting cannot be done using receiver determination, receiver determination will send the entire msg to the receiver if a condition is satisfied and not parts of it.
If you are using FCC in the sender file adapter then you can look at setting the FCC parameters in such a way that you get one msg per record in yor file(using recordset and the field occurence parameters). if you are able to do that then u can use conditional receiver determination.
Message was edited by:
Dreamcatcher
personally speaking, We have implemented this kind of scenario by using adapter module to split the incoming file content into multiple individual msgs, i.e each record will be sent as new msg and by doing so we were also able to use conditional receiver determination.
We had to use a adapter module to split each record of the file into a separate msgs because file format was not such that we could use RecordSet per msg and the Occurence parameters in the sender side file content conversion to create individual msgs.
if your input file structure is such that you can use the "recordset per msg" feature of the sender file adapter to create one msg per record then you can still use conditional receiver determination with minimum development effort.
Hi all,
Thanks for the help! I already fixed the issue
Guru, the Enhanced Receiver Determination didnt work because it works only at msg level like standard Receiver Determination do. But, thanks for the tip, I tested this feature and its really useful when you want do determine your receivers at the runtime with substrings, doing arithmetic operations and so on.
Dreamcatcher, I didnt need adapter modules and BPM, my issue wasnt so complex like your example. Well, as I have two different mappings I used some standard functions like equalsS to check if my field01 is equal to 37 and the createIf function to generate an IDoc node in case of true. For the other mapping program I applied the same logic, comparing field01 with value 38 and generate a node in case of true. At the end I got 2 msgs, one with all 37 records and another one with all 38.
Once again, thank you all and points rewarded
Ricardo.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I think since you have the same receiver for the both cases you will not be able to do it using receiver determination.
but i think you can specify this condition in interface determination if u r receiver is common.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi guys,
I have two receivers (same machine) each one with your own adapter, one IDoc and one XI (ABAP Proxy). My routing rule is: if field01 is equal to 37 goes to IDoc, else if field01 is equal to 38 goes to ABAP proxy; and the problem is that I'm getting both records (37 and 38) in both destinations (IDoc and Proxy).
Dreamcatcher, the Interface Determination works when you have different mappings for the same business system. But this is not the case: I'm receiving a file and depending on the content I have to route it to IDoc or Proxy (two Business Systems).
Is it possible without BPM?
Regards,
Ricardo.
Message was edited by:
Ricardo Quintino
Yes. It is possible without BPM.
Use condition in the receiver determination step.But make sure that the second condition is a perfect "NOT" of the first condition. That means there shouldn't be any possibilities which is not handled. In that case u ll not get the desired result.
Regards,
Prateek
<< have two receivers (same machine) each one with your own adapter, one IDoc and one XI (ABAP Proxy). >>
If you have two different receivers than you should be able to route the entire msg to one of the 2 different receivers based on a particular field content of the incoming msg. I have tried it in many scenarios and it works.
Please check in SXMB_MONI whether you condition is getting executed. try giving a invalid condition for one of the receivers and check the output.
Another round about way of doing this is using enhanced receiver determination if you have that option in your XI version.
Cheer's
Hi Ricardo,
You want to choose the receiver based on the Source field Value....
You can set conditions on Source fields (In the configured receivers section in Receiver Determination)........... against the receiver..
Regards,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.