EXPORT IT_DEL TO MEMORY ID 'TD'.
SUBMIT ZMB1B_311 and RETURN.
report ZMB1B_311.
TABLES : ZTAG_DELIVERY.
TYPES : BEGIN OF TY_ERROR ,
TEXT(250),
END OF TY_ERROR.
DATA: LT_ERROR TYPE STANDARD TABLE OF TY_ERROR,
LS_ERROR TYPE TY_ERROR,
LV_MESSAGE(100) TYPE C,
DATE TYPE SY-DATUM.
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
LT_MESSTAB TYPE TABLE OF BDCMSGCOLL,
LS_MESSTAB TYPE BDCMSGCOLL,
LV_PARAMS
TYPE CTU_PARAMS,
L_MSTRING(480),
L_SUBRC LIKE SY-SUBRC,
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : POST_DATE TYPE SY-DATUM,
DOC_DATE TYPE SY-DATUM,
MTYPE(3) TYPE N ,
PLANT(4) TYPE N,
ST_LOC(4) TYPE N,
TR_LOC(4) TYPE N,
UNIT(2) TYPE C.
DATA : IT_DEL TYPE STANDARD TABLE OF ZTAG_DELIVERY,
WA_DEL TYPE ZTAG_DELIVERY.
DATA : QTY TYPE p,
p_qty type char3.
*&----------------------------------------------------------------------------*
*& BDC RECORDING
*&----------------------------------------------------------------------------*
IMPORT IT_DEL FROM MEMORY ID 'TD' .
CLEAR
: BDCDATA , LS_MESSTAB.
REFRESH : BDCDATA , LT_MESSTAB.
WRITE SY-DATUM TO POST_DATE DDMMYY.
WRITE SY-DATUM TO DOC_DATE DDMMYY.
MTYPE = '311'.
PLANT = '6010'.
ST_LOC = '6130'.
loop at it_del INTO WA_DEL.
perform bdc_dynpro
using 'SAPMM07M' '0400'.
perform bdc_field
using 'BDC_CURSOR'
PLANT.
"'RM07M-WERKS'.
perform bdc_field
using 'BDC_OKCODE'
'/00'.
perform bdc_field
using 'MKPF-BLDAT'
POST_DATE.
" '02.08.2016'.
perform bdc_field
using 'MKPF-BUDAT'
DOC_DATE.
" '02.08.2016'.
perform bdc_field
using 'RM07M-BWARTWA'
MTYPE.
" '311'.
perform bdc_field
using 'RM07M-WERKS'
PLANT.
" '6010'.
perform bdc_field
using 'RM07M-LGORT'
ST_LOC.
"'6121'.
perform bdc_field
using 'XFULL'
'X'.
perform bdc_field
using 'RM07M-WVERS2'
'X'.
TR_LOC = '6131'.
UNIT
= 'EA'.
MOVE WA_DEL-DEL_BINQTY TO QTY.
move qty to p_qty.
CONDENSE p_qty.
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
.'6131'.
perform bdc_field
using 'SAPMM07M' '0421'.
using 'BDC_CURSOR'
'MSEG-CHARG(01)'.
using 'BDC_OKCODE'
'/00'.
using 'MSEGK-UMLGO'
TR_LOC .
" storage location '6105'
using 'MSEG-MATNR(01)'
WA_DEL-CUS_PARTNO.
" PART NO '1T0741-
13'.'112101HC3C'.
perform bdc_field
QTY '50'.'27'.
perform bdc_field
perform bdc_field
521'.
*perform bdc_field
*
perform bdc_dynpro
perform bdc_field
*perform bdc_field
*
using 'MSEG-ERFMG(01)'
P_QTY.
using 'MSEG-ERFME(01)'
UNIT.
using 'MSEG-CHARG(01)'
WA_DEL-DEL_TCARDNO.
'EA'.'EA'.
" BATCH 'c180515'.'CA21C1
using 'SAPLKACB' '0002'.
using 'BDC_OKCODE'
'=ENTE'.
using 'DKACB-FMORE'
'X'.
using 'SAPLKACB' '0002'.
using 'BDC_OKCODE'
'=ENTE'.
perform bdc_dynpro
perform bdc_field
using 'SAPMM07M' '0421'.
using 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
using 'BDC_OKCODE'
'=BU'.
*perform bdc_field
*
"
"
using 'DKACB-FMORE'
'X'.
perform bdc_dynpro
perform bdc_field
perform bdc_field
"WA_DEL-DEL_BINQTY.
using 'DKACB-FMORE'
'X'.
perform bdc_dynpro
perform bdc_field
using 'SAPLKACB' '0002'.
using 'BDC_OKCODE'
'=ENTE'.
*
'/00'.
CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'A' UPDATE 'A' MESSAGES INTO LT_MES
STAB.
ENDLOOP.
*CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'E' UPDATE 'S MESSAGES INTO LT_M
ESSTAB.
LOOP AT LT_MESSTAB INTO LS_MESSTAB.
CLEAR LV_MESSAGE.
IF LS_MESSTAB-MSGTYP = 'E' OR LS_MESSTAB-MSGTYP = 'S' .
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID
= LS_MESSTAB-MSGID
LANG
= 'IN'
NO
= LS_MESSTAB-MSGNR
V1
= LS_MESSTAB-MSGV1
V2
= LS_MESSTAB-MSGV2
V3
= LS_MESSTAB-MSGV3
V4
= LS_MESSTAB-MSGV4
IMPORTING
MSG
= LV_MESSAGE
EXCEPTIONS
NOT_FOUND = 1
OTHERS
= 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
CONCATENATE 'Condition record saved for' '-' W_RECORD-AGKON LV_MESSA
GE INTO LS_ERROR-TEXT.
*
APPEND LS_ERROR TO LT_ERROR.
ENDIF.
ENDLOOP.
*&-----------------------------------------------------------------------------------------------*
*& ERROR DISPLAY
*-------------------------------------------------------------------------------------------------*
LOOP AT LT_ERROR INTO LS_ERROR.
WRITE : / LS_ERROR-TEXT.
ENDLOOP.
*--------------------------------------------------* START NEW SCREEN
*--------------------------------------------------FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO
= DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "bdc_dynpro
*--------------------------------------------------* INSERT FIELD
*--------------------------------------------------FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> NODATA.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
* ENDIF.
ENDFORM. "bdc_field