Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

HELP ON IDOC

Former Member
0 Kudos

i am using basic idoc DELFOR02 and message type DELINS. i created a custom segment ZE1EDP16 under standard segment E2EDP16..i added a field called DNO in that custom segment.

value of this DNO is populated by EDI people. I need to pass that DNO value from ZE1EDP16 segment to field LIFEX in LIKP and to KANBAN TEXTS IN DELIVERY.

can anyone suggest how can i pass the value from this segment to likp-lifex.

idoc is inbound idoc.

3 REPLIES 3

Former Member
0 Kudos

While posting idoc, it uses the function modules. And there is a provision to write user exits to populate data. Check your function module, you will see while data is extracted, you have a provision for user exit. Use the same for your requirement.

ashish

Former Member
0 Kudos

hi ashish ..thanks for the reply i am new in abap..i found this exit EXIT_SAPLVED4_002

following is the code i found in the include

could you to tell me in coding..how pass value of field DNO in segement ZE1EDP16 to LIKP-LIFEX and delivery kanban texts.

CONSTANTS: C_E1EDP16(7) TYPE C VALUE 'E1EDP16',

C_ZE1EDP16(8) TYPE C VALUE 'ZE1EDP16',

C_EXTENSION(14) TYPE C VALUE 'ZEXTN_DELFOR02',

C_ETDAT(11) TYPE C VALUE 'RV45A-ETDAT',

C_LIFSP(10) TYPE C VALUE 'VBEP-LIFSP',

C_4003(4) TYPE C VALUE '4003',

C_YES TYPE C VALUE 'X'.

DATA: X_BDCDATA TYPE BDCDATA,

X_IDOCDATA TYPE EDIDD,

X_E1EDP16 TYPE E1EDP16,

X_ZE1EDP16 TYPE ZE1EDP16,

L_DATFM TYPE USR01-DATFM,

L_INDEX LIKE SY-TABIX,

L_EDATUB LIKE E1EDP16-EDATUB.

*To read the Control record to determine the extension

READ TABLE T_IDOC_CONTRL_1.

IF SY-SUBRC EQ 0.

*If it being executed for Extension ZEXTN_DELFOR02

IF T_IDOC_CONTRL_1-CIMTYP = C_EXTENSION.

*To execute the code only when Screen 4003 starts

READ TABLE T_BDCDATA WITH KEY DYNPRO = C_4003

DYNBEGIN = C_YES.

IF SY-SUBRC EQ 0.

*Loop at all the E1EDP16 segments and read their respective child

*segment ZE1EDP16

LOOP AT T_IDOC_DATA_1 WHERE SEGNAM = C_E1EDP16.

X_E1EDP16 = T_IDOC_DATA_1-SDATA.

READ TABLE T_IDOC_DATA_1 INTO X_IDOCDATA

WITH KEY SEGNAM = C_ZE1EDP16

PSGNUM = T_IDOC_DATA_1-SEGNUM.

IF SY-SUBRC EQ 0.

*The Date format is changed to adapt to the date format in the BDCDATA

*The Date format in the IDoc segment is YYYYMMDD

X_ZE1EDP16 = X_IDOCDATA-SDATA.

CLEAR: L_EDATUB,

L_DATFM.

*To get the BDCDATA date format check the User Settings

SELECT SINGLE DATFM

INTO L_DATFM

FROM USR01

WHERE BNAME EQ SY-UNAME.

IF SY-SUBRC EQ 0.

CASE L_DATFM.

WHEN 1. "DDMMYYYY

MOVE: X_E1EDP16-EDATUB0(4) TO L_EDATUB4(4),

X_E1EDP16-EDATUB4(2) TO L_EDATUB2(2),

X_E1EDP16-EDATUB6(2) TO L_EDATUB0(2).

WHEN 2. "MMDDYYYY

MOVE: X_E1EDP16-EDATUB0(4) TO L_EDATUB4(4),

X_E1EDP16-EDATUB4(2) TO L_EDATUB0(2),

X_E1EDP16-EDATUB6(2) TO L_EDATUB2(2).

WHEN 3. "MMDDYYYY

MOVE: X_E1EDP16-EDATUB0(4) TO L_EDATUB4(4),

X_E1EDP16-EDATUB4(2) TO L_EDATUB0(2),

X_E1EDP16-EDATUB6(2) TO L_EDATUB2(2).

WHEN 4. "YYYYMMDD

MOVE: X_E1EDP16-EDATUB TO L_EDATUB.

WHEN 5. "YYYYMMDD

MOVE: X_E1EDP16-EDATUB TO L_EDATUB.

WHEN 6. "YYYYMMDD

MOVE: X_E1EDP16-EDATUB TO L_EDATUB.

WHEN OTHERS.

ENDCASE.

ENDIF.

*To Read the record in BDCDATA having the same Date

READ TABLE T_BDCDATA INTO X_BDCDATA

WITH KEY FNAM+0(11) = C_ETDAT

FVAL = L_EDATUB.

IF SY-SUBRC EQ 0.

*Insert an entry in BDCDATA for populating the value for LIFSP

CLEAR L_INDEX.

L_INDEX = SY-TABIX + 1.

X_BDCDATA-FNAM+0(11) = C_LIFSP.

CONDENSE X_BDCDATA-FNAM NO-GAPS.

X_BDCDATA-FVAL = X_ZE1EDP16-LIFSP.

INSERT X_BDCDATA INTO T_BDCDATA INDEX L_INDEX.

ENDIF.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDIF.

DATA : L_TABIX LIKE SY-TABIX,

L_E1EDKA1 TYPE E1EDKA1.

CONSTANTS: C_4002(4) TYPE C VALUE '4002',

C_IHREZ(10) TYPE C VALUE 'VBKD-IHREZ',

C_E1EDKA1(7) TYPE C VALUE 'E1EDKA1',

C_AG(2) TYPE C VALUE 'AG'.

READ TABLE T_BDCDATA WITH KEY DYNPRO = C_4002.

IF SY-SUBRC EQ 0.

L_TABIX = SY-TABIX + 1 .

READ TABLE T_BDCDATA WITH KEY FNAM = C_IHREZ.

IF SY-SUBRC NE 0.

  • READ TABLE T_IDOC_DATA_1 WITH KEY SEGNUM = C_000004.

LOOP AT T_IDOC_DATA_1 WHERE SEGNAM = C_E1EDKA1.

IF T_IDOC_DATA_1-SDATA(2) EQ C_AG.

L_E1EDKA1 = T_IDOC_DATA_1-SDATA.

CLEAR X_BDCDATA .

X_BDCDATA-FNAM = C_IHREZ.

X_BDCDATA-FVAL = L_E1EDKA1-IHREZ.

INSERT X_BDCDATA INTO T_BDCDATA INDEX L_TABIX.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

0 Kudos

Can you tell me what is the standard fm you are using for idoc posting. Also can you check which segment contains LIKP-LIFEX?