cancel
Showing results for 
Search instead for 
Did you mean: 

Target field not getting created

former_member457420
Participant
0 Kudos

Hi Friends,

Iam trying to map a ordersp basic idoc type to orders05.

As in the link shown below:

[http://i44.tinypic.com/28i6m20.jpg]

Have a problem where Iam trying to map the source "TDLINE" field to target "TDLINE".

The TDID(Top and bottom in the data editor),posex and TDLine is set to the context "E1EDP01".

In the Target "TDLINE", I want to map the concateneted text (Posex + TDLINE from source).

AS said, In the source structure "POSEX" and "E1EDPT1" are child elements of "E1EDP01".

I have to take into account or concatenete only those "posex" and "tdline" fields' from source where TDID is "Y005" as shown in the constant.

The problem here is the target "TDLINE" is not created on testing.

The queue of the target "TDLINE" lookas as follows

NULL

SUPRESS

SUPRESS

SUPRESS

SUPRESS

SUPRESS

Test1

ChangeContext

Test2

FinalContext

I expected 2 "TDline" targetfields under "E1EDkT2" with values "Test1" and "Test2". The fields are not created all......

Have any idea,Why....

Thanks

P

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

if ( tdid equals const(Y005) ) then ( concat ( posex , tdline ) )

former_member457420
Participant
0 Kudos

Hi stefan,

Thats what Iam doing right (As shown in the attached link).....But the target field is not getting created.

Am I doing anything wrong there

stefan_grube
Active Contributor
0 Kudos

No, you are doing it different. read it carefully.

former_member457420
Participant
0 Kudos

Stefan,Iam new to message mapping.

I have changed my mapping as follows.

http://i44.tinypic.com/1z5sx1s.jpg

context is "E1EDPO1" for all.

Thanks

stefan_grube
Active Contributor
0 Kudos

almost

posex    \
          concat - then
tdline   /

former_member457420
Participant
0 Kudos

Yes I changed it as u said .But the target field is still not getting created.

stefan_grube
Active Contributor
0 Kudos

what is in queue of if ?

former_member457420
Participant
0 Kudos

The queue is as follows:

[http://i43.tinypic.com/szvprn.jpg]

stefan_grube
Active Contributor
0 Kudos

what about the other nodes: E1EDKT2, SEGMENT, TDFORMAT,

are those created?

former_member457420
Participant
0 Kudos

Havent tried the TDFORMAT,

BUT the fields E1EDKT1, E1EDKT2 and SEGMENT are there

Edited by: pazzuzu on May 3, 2010 3:27 PM

stefan_grube
Active Contributor
0 Kudos

Only once?

The point is, in the first three position lines (...P01) there are no text data, so that is way "suppress" is here for those contexts.

So you can have no data in target also.

The 4th and 5th postion contain data, so the corresponding occurances of KT2 should have that data.

So check the queue of KT2 also, that should contain as many contexts as the queue of TDLINE

former_member457420
Participant
0 Kudos

For Every occurance of "E1EDPT1",I want to create only one "E1EDKT1".

The "E1EDKT1" is created only once.

The queue of target "E1EDKT1" and mapping is as follows:

context of "TDID" in the figure is IDOC.

[http://i43.tinypic.com/15yf790.jpg]

For Every occurance of "E1EDPT2",I want to create a "E1EDKT2" node under the "E1EDKT1" node created above.

The queue of target "E1EDKT2" and mapping is as follows:

context of "TDID" in the figure is IDOC.

[http://i41.tinypic.com/e99eo2.jpg]

P

stefan_grube
Active Contributor
0 Kudos

> For Every occurance of "E1EDPT1",I want to create only one "E1EDKT1".

Assign an empty constant to E1EDKT1.

> The "E1EDKT1" is created only once.

This node has to appear as often as E1EDPT1.

> context of "TDID" in the figure is IDOC.

>

> [http://i41.tinypic.com/e99eo2.jpg]

This is totally different to what you had before.

It seems no TDID carries the value Y005

former_member457420
Participant
0 Kudos

Stefan,

1 correction.sorry .Wrote so fast. missed it....

E1EDKT1 and E1EDKT2 are also created with the condition that TDID should be Y005 as u could see in the data editor.

TDID with "Y005" is there in the test data

stefan_grube
Active Contributor
0 Kudos

> E1EDKT1 and E1EDKT2 are also created with the condition that TDID should be Y005 as u could see in the data editor.

In that case, your UDF "istrue" does not work correctly, as it should provide a queue something like

suppress | space | space | suppress

> TDID with "Y005" is there in the test data

Why the target queue contains only suppress?

You have to make sure that the parent nodes have the same contexts as the child nodes.

See examples for suppressing nodes here:

/people/stefan.grube/blog/2006/01/09/the-use-of-suppress-in-the-xi-30-graphical-mapping-tool

former_member457420
Participant
0 Kudos

I came back home from the office.Dont have a running system right now.

You mean the "SUPPRESS" IN THE "E1EDKT2".

For the "E1EDPT1" fields IN "E1EDP01" ,the first 3 has TDid not equal to Y005.

Then comes the next "E1EDP01" segment,which also has the same structure.

The "E1EDKT1" was getting created for every instance of ""E1EDPT1 where TDID is Y005 which I dont wanted.

The queue for "E1EDKT1" is suppress | space | space | suppress before istrue.Iam using istrue so that there exists only 1 space in the queue and with that only 1 target node is created.

Edited by: pazzuzu on May 3, 2010 6:48 PM

former_member457420
Participant
0 Kudos

Hi Stefan,

You said that

>>You have to make sure that the parent nodes have the same contexts as the child nodes.

That means My Target "E1EDKT2" queue is as shown in the image.

http://i41.tinypic.com/e99eo2.jpg

My question is to understand how the target queue works with the target context.

Now in this target queue, there are no context changes and the context is "E1EDKT1".There are only "Suppress" and 2 empty values.

so 2 "E1EDKT2" nodes are created under "E1EDKT1".

So My question is if I have a target queue , I have to take care of only things with respect to the current target context.Right?

As my "E1EDKT2" Node has already filtered the contents

The following mapping should work.right?

posex

- concat - Tdline

tdline

Thanks

P

stefan_grube
Active Contributor
0 Kudos

> The following mapping should work.right?

>

> posex

> - concat - Tdline

> tdline

Yes, this should work.

Check the amount of values.

The difficulty here. the parent node does not have context changes, but the child node needs context changes for each entry (you can use splitByValue).

The only link between the parent node and the child node is the context: each line in parent is a seperate context in child.

i think it should be like this:

> posex

> - concat - splitByValue(each Value) - Tdline

> tdline (align context with posex)

former_member457420
Participant
0 Kudos

Hi Stefan,

Thanks a lot.......:) for all the help....

It works Now......

Answers (0)