cancel
Showing results for 
Search instead for 
Did you mean: 

Condition in Interface Determination giving problem - URGENT!

Former Member
0 Kudos

Hello experts,

In my scenario I have one idoc posted from the SAP R/3 and I need to write max of 3 files in the same receiver file system based on some condition i.e. based on the value of some field in the incoming idoc.

What I have done is in my interface determination, I have given that condition for all the 3 inbound interface. that is in the condition field in interface determination, for each inbound interface I chose that perticular field in idoc and gave the condition for which that interface should run.

Now when I am pusing an idoc, if that idoc contains only one condition than my interface is working fine by creating only that file. I have checked this for all 3 files by sending 3 different conditions in 3 idocs. It creates 3 different files for 3 idocs.

But if I send all 3 conditions in one idoc (since idocs can have multiple segments - in few segments i am giving one condition and in few others the 2nd conditon and in the rest the 3rd condition), I expect all 3 files to be created in my file system with data fulfilluing only that perticular condition. but this is not happening. In interface determination only one of the 3 is getting executed. Rest 2 is ignored and i cannot trace it anywhere (RWB, SXI_MONITOR etc)

I have tried all possible combinations but this is not working if i send in 1 single idoc?

Please help me in solveing this as this is a production issue and they cannot send 3 diffent idoc for 3 conditions. Where am i going wrong?

Waiting for your responses.

Thanks,

Yash

Accepted Solutions (1)

Accepted Solutions (1)

turmoll
Active Contributor
0 Kudos

Hi,

You might use multi-mapping to solve your issue.

Please ref this blog: [Multi-Mapping without BPM - Yes, it’s possible!|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3115] [original link is broken] [original link is broken] [original link is broken];

In ID you need just one receiver system, one receiver determination, one enhanced interface determination.

In IR you need to change occurrence of your target messages from one to outbound and map your condition segment to a top node of the target message. This should produce as many target messages as your condition segments. Next, message will be split on file adapter engine. The only challenge may be the mapping but this depends on the target file structure.

Regards,

Jakub

Former Member
0 Kudos

Hi Jakub,

Thanks for your response. This will indeed help me but I cant apply it immediately as it will require some effort. but presently i want it to work immediately. I dont understnad why my way of doing it is not working? I guess that is also a valid way.

Please give me some idea as to how to solve the issue from my way or is uit completely wrong way of doing it?

Regards,

Yash

turmoll
Active Contributor
0 Kudos

Hi,

My understanding is that you have one receiver, and three interface determinations ... so actually you only change the interface based on your criterion.

Further more you always have just one target messsage. ;-( So you will never generate three different messages ...

You can either implement multi-mapping or ...

A rough solution that might work can be that you define three receivers (three business services which actually point the same receiver system) and then you create three receiver determinations, interface determinations etc . The only challenge left is to implement correct conditions for configured receivers.

Regards,

Jakub

Former Member
0 Kudos

Hi Jakub,

My scenario is one idoc say IDOC 1 and 3 files says FILE1, FILE2 and FILE3. Now the target message type for these three files are MT_FILE1, MT_FILE2 and MT_FILE3 (3 different message types).

The only catch point here is i have 2 different interface for creating FILE3 (same message type but different mapping, interface etc). Each interface is based on a condition.

Now when I send one doc which includes condition for only FILE1 and FILE2, it creates 2 file.

If I have condition of only FILE3 (one condition of FILE 3 as FILE3 has 2 conditions) and FILE2, it creates both files.

If I have both condition for FILE3 and FILE2, it creates FILE3 with only one condition and FILE2.

If i have condition for FILE1, FILE2 and both conditions for FILE3, it creates FILE1 and FILE2 both no FILE3 at all.

I guess the problem might be that I have same message type for both conditions for FILE3 but I m not sure. Let me try by creating seperate message type for both and see. But is there any other problem?

Yash

Former Member
0 Kudos

There should be different msg types and hence 3 different mappings.

Former Member
0 Kudos

Hi Sarvesh,

Now I have created different message types (only name as data type will be same) for both conditions for FILE3 and ahve also changed it in message interface and interface mapping in IR. But I am still not able to create the file?

The only thing is I have not changed the message type in message mapping. Both amppings for FILE3 still uses the same message type because i fear if i change the message type all my mappings will be lost.

Can this be the problem. If so then I will change in mapping too or is there any other problem.. may be in ID.

Help.

Yash

Former Member
0 Kudos

> The only thing is I have not changed the message type in message mapping. Both amppings for FILE3 still uses the same message type because i fear if i change the message type all my mappings will be lost.

Hi,

If you see my above reply, i have said that you should use different Message Type. Change the Message Type too in your mapping.

Regards,

Sarvesh

Former Member
0 Kudos

Hi Servesh,

I have even changed message type in my 2 mappings for FILE3 but it is still giving the same problem. And the worst part is there is no error anywhere. When I see the moni, it shows only one receiver interface for FILE3 not boht whereas in the idoc i have sent, it has 5 segements out of which 3 fulfills condition 1 and 2 condition 2. Hence in FILE3 there has to be 5 records, 3 with condition 1 and 2 with condition 2 but only one mapping is executed.

In interface determination itself other other interface is not called where as if i split the same idoc above into 2 - i contains 3 segements for cond 1 and the other 2 segments of cond 2, the file created is fine.

Where can be the problem?

Yash

Former Member
0 Kudos

Now it seems that there is a problem in you conditions. Check & think the condition once again.

Former Member
0 Kudos

But the same conditions are working if i have sending them in different idocs. that means the conditions are correct.

Its not picking differnet condiotns from the same idoc. Is there any othe setting where it runs thru all the sengemts of the idoc and then decide on the interface.

I guess I am missing a very minute detail but not able to find it!!

Is there any setting for prefernece anywhere that if the condition for this interface is fulfilled, it should not check for others?

Yash

Edited by: Yash Agarwal on Mar 9, 2008 1:49 PM

justin_santhanam
Active Contributor
0 Kudos

Yash,

While choosing the condition can u see any Multiline checkbox? If it's there can u check that( I mean select that) and give a try.

raj.

Former Member
0 Kudos

Hi Raj,

Initially I also thought the same. but even after checking the checkbox "Miltilinr" in the XPATH expression, it doesnt seem to solve the issue. It seems all the configurations are correct but some how its not working. the concerns are:

Firstly I guess if I restart my XI server, it can make a difference. Waht do you say? Might be some cache problem. May not be logicla but many a times it do work!

Secondly is there any preference setting somewhere where it checks if one perticular inbund interface is found, dont process the others?

Thirdly, is there any restriction in Interface detrmination that I cant give condition to more than 1 inbound interface and if no than evn if i give condition to more than 1 interface, it will only process 1?

Thease are just wild guesses because i am totally unable to find the reason. PLeaseeeeeeeeee help!!

Yash

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi all,

This issue is resolved for me.i have used 1:n mapping without BPM (multi mapping) and have used enhanced interface determination.

Thnaks,

Yash

Former Member
0 Kudos

Yash:

Can you try checking "Maitain Runtime Order" when you have mutiple inbound interfaces ?

Liang