cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping help required

Former Member
0 Kudos

Dear All,

we are working on IDOC-PI-File interface. In source we are having DELVRY05 Idoc. I haved mapped E1EDL24 (Line Item) segment with the line item segment of the target file.

Now, the requirement is, if in source for any line item if Batch does not exists then the complete line item details should not be passed to target i.e. at target for that particular line, complete line-item segment should not occurs.

I have tried used createif function but for example there are 2 line-items in the source and 1st one is not having Batch details in it and 2nd is having all details then at target I am getting only one item segment but it is having details of the first line-item. I have tried setting through Context in the Queues but it is not giving me the required results.

Please help me on this.

Warm Regards,

NJ

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Nishu,

Check the dispay queue option for target field in mapping.

Check whether the first element is getting suppressed or it is still getting generated.

-Supriya.

Former Member
0 Kudos

Hi Supriya,

For the line-item details, I have checked the queues and also tried to change the context but still I am getting the first element.

Reg,

NJ

Former Member
0 Kudos

Hi Can you please provide your source and target structures

Cheer,

Jayan

Former Member
0 Kudos

>

> Hi Supriya,

>

> For the line-item details, I have checked the queues and also tried to change the context but still I am getting the first element.

>

> Reg,

> NJ

Do your mapping as shown here and your problem will be solved...

In below mapping screen shots first mapping is for parent segment and second is for it's child.

http://www.flickr.com/photos/23639237@N02/4910068140/sizes/l/in/photostream/

Former Member
0 Kudos

Hi,

Source Structure is as follows:

E1EDL24 (0..unbounded)

MATNR

MAKTX

CHARG

Target Structure is as follows

LineItem (0..unbounded)

Material No.

Material Desc

Batch

I have mapped E1EDL24 segment with LineItem segment and their subsequent fields.

Requirement now is if in source for any record if CHARG does not exist then that complete record segment should not be created at target.

For Ex: If source structure is

E1EDL24

MATNR1

MAKTX1

E1EDL24

MATNR2

MAKTX2

CHARG2

now the target structure should be like

LineItem

Material No.2

Material Desc2

Batch 2

Reg,

NJ

Former Member
0 Kudos

Hi,

Use CreateIf Function with Exist ans IfElse.

ChergeExistif

Segment -then--Target

FalseCreateIf-Else---Target

Try this

Cheers

Jayan

Former Member
0 Kudos

Hi,

Use CreateIf Function with Exist ans IfElse.

ChergeExistif

Segment -then--Target

FalseCreateIf-Else---Target

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Nishu,

Yes, the condition needs to be put for every target field.

-Supriya.

Former Member
0 Kudos

Hi Supriya,

I have put condition for every target field but still I am facing the same problem i.e. I am getting the details for 1st item for which Batch is not existing.

Reg,

NJ

Former Member
0 Kudos

Hi,

So instead of line, check on the basis of Batch.

Batch--> Exists --> ifWithoutElse --> SpitByValue(Each Value) ---> Target

Source -->

-Supriya.

Former Member
0 Kudos

Hi Supriya,

Thanks for your reply.

In the target I am getting only 1 node now but it is having all the values of the 1st source segment which is not having Batch details in it. Do we need to put conditions at each target field also?

Reg,

NJ

Former Member
0 Kudos

Hi Nishu,

Pls try the below mapping:

Source--> Exists --> ifWithoutElse --> SpitByValue(Each Value) ---> Target

Source -->

-Supriya.

Former Member
0 Kudos

Hi try this

Source ---Exist ---Ifwithoutelse

Source----


Target.

Former Member
0 Kudos

Hi,

I have tried this way but this is not working. What is happening in this case is suppose there are two line items in source i.e. segment E1EDL24 is getting repeated twice, 1st segment is havin values as Mat1 & MatDesc1 & 2nd segment is having values as Mat2, MatDesc2 & Batch2 then using the mapping as said in the target I am getting only one Line-Item segment but it is having values of Mat1 & MatDesc1 which is not required.

Please guide.

Regards,

NJ

Former Member
0 Kudos

Hi,

Line -


exist----


if with else

Line -


then----


Line(target)

Detail----else--


Line(target)

Try this

Former Member
0 Kudos

hi,

in both the cases Line will be existing in source whether Batch is there or not so I didn't understand this logic, can you explain in som detail.

Reg,

NJ