cancel
Showing results for 
Search instead for 
Did you mean: 

IDoc to RFC Mapping.

Former Member
0 Kudos

Hi Everyone,

I have a problem with mapping. My Scneario is Idoc to RFC.

Eg. Sender: GSVERF03

->IDOC

E1EDP01 (Occ. 0 to n)

...Field_A

...Field_B

...E1EDP02 (Occ 0 to 25)

...... Field_C

...... Field_D

...... Field_E

Receiver: ZRFC

->T_DELVRY

... ->item

........ Field_1

........ Field_2

........ Field_3

Conditions:

If Field_A = 001, then Field_B = Field_3.

If Field_A = 001,

then

If Field_C = 001, then Field_D = Field_1.

If Field_C = 001, then Field_E = Field_2.

As per my business requirement, i wont get more than one E1EDP02 segment.

How to do this mapping using Graphical mapping.

Rgds,

¬Nav

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Field_3

+If Field_A = 001, then Field_B = Field_3

-


>

This can be achieved by IfWithoutElse

Check your condition using If and give Field_B as second parameter

Field_1

If Field_A = 001,

then

If Field_C = 001, then Field_D = Field_1.

If Field_C = 001, then Field_E = Field_2.

-


>

here check Field_A condition , 2nd input of this IfWithoutElse check for conditions on FIeld_C

Similar would be for Field_2

You will have to check with context. try by setting context of Field_C,Field_D,Field_E to

E1EDP01

nisarkhan_n
Active Contributor
0 Kudos

make sure the context is set right, you can achieve this using the graphical mapping itself......

Former Member
0 Kudos

Hi,

U can do it with graphical mapping using equals,and,ifwithout else functions also with UDf.

This condition is not correct:

If Field_C = 001, then Field_E = Field_2.

Use the common UDF for All the target elements.

Give all inputs to UDF.

Now write the code.

if(A[0].equals("001")) mapping for Field_3

{

result.addValue(B[0]);

}

if((A[0].equals("001")) && (C[0].equals("001")) mapping for Field_1

{

result.addValue(D[0]);

}

Thnx

Chirag