on 09-22-2016 1:34 PM
Okay, here's the problem:
I need to fill the append field ZZDMBTR in the extractstructure of 2LIS_06_INV.
This is my coding so far.
TYPES:
BEGIN OF TY_BSEG_NEU.
TYPES:
EBELN TYPE BSEG-EBELN,
EBELP TYPE BSEG-EBELP,
BELNR TYPE BSEG-BELNR,
BUKRS TYPE BSEG-BUKRS,
DMBTR TYPE BSEG-DMBTR,
GJAHR TYPE BSEG-GJAHR,
END OF TY_BSEG_NEU.
DATA: LT_MC06M_0ITM TYPE TABLE OF MC06M_0ITM,
ls_BSEG_NEU TYPE TY_BSEG_NEU,
lt_BSEG_NEU TYPE TABLE OF TY_BSEG_NEU.
FIELD-SYMBOLS: <FS_DATA> TYPE MC06M_0ITM.
LT_MC06M_0ITM[] = C_T_DATA[].
SELECT EBELN GJAHR EBELP DMBTR BUKRS BELNR FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE LT_BSEG_NEU
FOR ALL ENTRIES IN LT_MC06M_0ITM
WHERE
BUKRS = LT_MC06M_0ITM-BUKRS AND
GJAHR = LT_MC06M_0ITM-GJAHR AND
EBELN = LT_MC06M_0ITM-EBELN AND
EBELP = LT_MC06M_0ITM-EBELP AND
BELNR = LT_MC06M_0ITM-BELNR AND
EBELN <> ''.
SORT LT_BSEG_NEU BY BUKRS GJAHR EBELN EBELP BELNR.
LOOP AT LT_MC06M_0ITM ASSIGNING <FS_DATA>.
clear lS_BSEG_NEU.
READ TABLE LT_BSEG_NEU INTO LS_BSEG_NEU
WITH KEY
BUKRS = <FS_DATA>-BUKRS
GJAHR = <FS_DATA>-GJAHR
EBELN = <FS_DATA>-EBELN
EBELP = <FS_DATA>-EBELP
BELNR = <FS_DATA>-BELNR
BINARY SEARCH.
<FS_DATA>-ZZDMBTR = LS_BSEG_NEU-DMBTR.
ENDLOOP.
CLEAR C_T_DATA.
C_T_DATA[] = LT_MC06M_0ITM[].
Problem here: I know READ can only pull the first value from LT_BSEG_NEU for the given keys but there are often more than one values in the LT_BSEG_NEU for the same key combination (EBELN GJAHR EBELP DMBTR BUKRS BELNR)
I suppose I somehow have to add up the multiple values into a local variable nested in another loop but me being a beginner I have problems wrapping my head around the logic behind.
Can anyone help me out?
Hi Anja!
Is not a better solution, but you can try.
Regards.
TYPES:
BEGIN OF TY_BSEG_NEU.
TYPES:
EBELN TYPE BSEG-EBELN,
GJAHR TYPE BSEG-GJAHR,
EBELP TYPE BSEG-EBELP,
BUKRS TYPE BSEG-BUKRS,
BELNR TYPE BSEG-BELNR,
DMBTR TYPE BSEG-DMBTR,
END OF TY_BSEG_NEU.
DATA: LT_MC06M_0ITM TYPE TABLE OF MC06M_0ITM,
ls_BSEG_NEU TYPE TY_BSEG_NEU,
lt_BSEG_NEU TYPE TABLE OF TY_BSEG_NEU.
FIELD-SYMBOLS: <FS_DATA> TYPE MC06M_0ITM.
LT_MC06M_0ITM[] = C_T_DATA[].
SELECT EBELN
GJAHR
EBELP
BUKRS
BELNR
DMBTR
FROM BSEG
INTO TABLE LT_BSEG_NEU
FOR ALL ENTRIES IN LT_MC06M_0ITM
WHERE
BUKRS = LT_MC06M_0ITM-BUKRS AND
GJAHR = LT_MC06M_0ITM-GJAHR AND
EBELN = LT_MC06M_0ITM-EBELN AND
EBELP = LT_MC06M_0ITM-EBELP AND
BELNR = LT_MC06M_0ITM-BELNR AND
EBELN <> ''.
SORT LT_BSEG_NEU BY BUKRS GJAHR EBELN EBELP BELNR.
LOOP AT LT_MC06M_0ITM ASSIGNING <FS_DATA>.
clear lS_BSEG_NEU.
READ TABLE LT_BSEG_NEU INTO LS_BSEG_NEU
WITH KEY
BUKRS = <FS_DATA>-BUKRS
GJAHR = <FS_DATA>-GJAHR
EBELN = <FS_DATA>-EBELN
EBELP = <FS_DATA>-EBELP
BELNR = <FS_DATA>-BELNR
BINARY SEARCH transporting no fields.
IF SY-SUBRC EQ 0.
LOOP LT_BSEG_NEU INTO LS_BSEG_NEU WHERE BUKRS = <FS_DATA>-BUKRS
GJAHR = <FS_DATA>-GJAHR
EBELN = <FS_DATA>-EBELN
EBELP = <FS_DATA>-EBELP
BELNR = <FS_DATA>-BELNR.
<FS_DATA>-ZZDMBTR = <FS_DATA>-ZZDMBTR + LS_BSEG_NEU-DMBTR.
ENDLOOP.
ENDIF.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
76 | |
9 | |
8 | |
6 | |
6 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.