cancel
Showing results for 
Search instead for 
Did you mean: 

Message Mapping

Former Member
0 Kudos

Hi Experts,

we have a scenario IDoc(ORDERS05) -


BPM------cXML.

I need to change the IDoc-cXML message map, for the below requirements

to send SAP PO ‘Item text’ field E1EDPT2-TDLINE at the item level when E1EDPT1-TDID = 'ZVBO' or 'ZCVB'

Please suggest how to achieve this.

Thanks in advance.

MK

Accepted Solutions (0)

Answers (3)

Answers (3)

sunil_singh13
Active Contributor
0 Kudos

HI mk ,

The Reason is you are not repeating the parent node of item as may time you are repeating item .For example let's say as per your mapping there will be two values populated for your field E1EDPT1 but the parent node under which this field is comming is repeated only once so though you have two values for E1EDPT1 you can see only one .to see the other you can apply same logic at root level .

If not Cleare please revert back .

Reward point If Helpful

Thanks

Sunil Singh

Former Member
0 Kudos

Thanks Sunil,

I have simplified the mapping as below

[http://www.flickr.com/photos/25429360@N07/2451350280/]

please see the Display queue of the and function in the above link.

Please suggest the context of which value has to be changed and to what level.

Presently i have the below context:

E1EDPT1---context is IDoc

TDID--Context is E1EDPT1

TDLINE-Context is E1EDPT1

Edited by: mk.xi on Apr 29, 2008 2:45 PM

Former Member
0 Kudos

Hi,

Put context for TDID and TDLINE on upper node may be in your case IDOC.

Regards,

Rohit.

Rewards points if helpful.

Former Member
0 Kudos

Rohit,

I have changed the TDID and TDLINE context to IDoc, for which it only passes the last E1EDPT1 value.

Please suggest further to resolve the issue.

Thank you.

Former Member
0 Kudos

Hi,

1) You can use Equals function from text category.

2) 1st input is E1EDPT1-TDID and 2nd is CONSTANT with value 'ZVBO'

3) Take another Equals function 1st input is E1EDPT1-TDID and 2nd is CONSTANT with value 'ZCVB'

3) Use OR function after that.

4) Use IfWithOutElse function for select particular data.

Regards,

Rohit

Reward points if helpful.

Former Member
0 Kudos

Thanks Rohit,

I have done the mapping as you mentione, shown below

http://www.flickr.com/photos/25429360@N07/2451350280/

please see the Display queue of the and function in the above link.

But it passes only the first E1EDPT1 segment value.

Please suggest the context of which value has to be changed and to what level.

Presently i have the below context:

E1EDPT1---context is IDoc

TDID--Context is E1EDPT1

TDLINE-Context is E1EDPT1

Former Member
0 Kudos

Hi,

1) Put all the input parameter context at upper node.

2) But it passes only the first E1EDPT1 segment value.

--For this, check context of parent node of E1EDPT1 field.

use RemoveContext before map the parent target node.

--if you have only one parent node and you want E1EDPT1 segment value in that only then replace SplitByValue with RemoveContext.

Try this.

Regards,

Rohit.

Reward points if helpful

Former Member
0 Kudos

Rohit,

I have changed all the input parameter context to the IDoc and also used the removeContext function after i checked the existence of the E1EDPT1 segment.

But it only passes the last E1EDPT1 segment value to the target cXML message.

So please help to make it work.

Thank you.

Former Member
0 Kudos

Hi,

Can you put screen shot of your source and target structures.

only for your required parent and child node, with occurances.

Regards,

Rohit

Former Member
0 Kudos

Rohit,

Please the source and target structure with the occurence in the link below:

[http://www.flickr.com/photos/25429360@N07/2450724421/]

please suggest further to make it work.

Thank you,

MK

Former Member
0 Kudos

Hi,

In following link i checked , 2nd column context has ContextChange i.e. Gray line . You have to remove it by changing context of input. Otherwise after each input apply RemoveContext.

Make sure no more ContextChange for each step by using display Queue property . except last two i.e spiltByValue and Target field

http://www.flickr.com/photos/25429360@N07/2451350280/

Regards,

Rohit

Reward points if helpful.

Former Member
0 Kudos

Hi,

Since you are using the ifWithoutElse function hence for False values you will get suppressed queque, So do one thing... Put RemoveContext just after ifWithoutElse. Keep other things as it is and try..

Reason: RemoveContext will create the empty context where you got the suppressed values and then you will get the correct number of contexts and then values will go into their respective fields...

Regards,

Sarvesh

prateek
Active Contributor
0 Kudos

Use standard functions.

For condition checking use "If" To equate use "Equals"

Regards,

Prateek

Former Member
0 Kudos

Thanks prateek,

Please see the link below for the mapping I did

[http://www.flickr.com/photos/25429360@N07/2451272238/]

I used strnCmp function to compare the TDID value .

and with the below context

E1EDPT1---context is IDoc

TDID--Context is E1EDPT1

TDLINE-Context is E1EDPT1

then when i tested the mapping only the value of the first E1EDPT1 is passed to the cXML. and rest of the E!EDPT1 segment values are ignored.

Please suggest, to make ot work.