REPORT ZIB01 NO STANDARD PAGE HEADING LINE-SIZE 255.
*TYPES DECLARATION
DATA: W_FILENAME TYPE STRING.
DATA: LS_IDNRK TYPE STRING.
DATA: LS_POSTP TYPE STRING.
DATA: LS_MENGE TYPE STRING.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-500.
PARAMETERS: P_FILENM LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK B1.
TYPES : BEGIN OF ST,
EQUNR(18),
STLAN(4),
POSNR(4),
POSTP(1),
IDNRK(18),
MENGE(13),
END OF ST.
*INTERNAL TABLE AND WORKAREA DECLARATION
DATA : IT TYPE TABLE OF ST.
DATA : WA TYPE ST.
DATA: LT_BOM TYPE TABLE OF ST.
DATA: WA_BOM TYPE ST.
DATA: LV_N TYPE STRING." AJAY
INCLUDE BDCRECX1.
START-OF-SELECTION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILENM.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
MASK = ',*.*,*.*.'
MODE = '0'
TITLE = 'GET FILE NAME'
IMPORTING
FILENAME = P_FILENM
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
** END OF CHANGE DCS05052003
** START OF CHANGE DCS05052003
START-OF-SELECTION.
W_FILENAME = P_FILENM.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
** FILENAME = 'C:\BDC_XLS_ASSIGN.TXT'
FILENAME = W_FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO.
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LT_BOM = IT.
LV_N = 1.
PERFORM OPEN_GROUP.
LOOP AT IT INTO WA.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29N-STLAN'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC29N-EQUNR'
WA-EQUNR."'10000006'.
PERFORM BDC_FIELD USING 'RC29N-WERKS'
''.
PERFORM BDC_FIELD USING 'RC29N-STLAN'
WA-STLAN."'4'.
PERFORM BDC_FIELD USING 'RC29N-DATUV'
'18.09.2014'.
*LOOP.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0110'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC29K-BMENG'
'1'.
PERFORM BDC_FIELD USING 'RC29K-STLST'
'1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29K-EXSTL'.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0111'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29K-LABOR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0140'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29P-MENGE(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=FCBU'.
LOOP AT LT_BOM INTO WA_BOM WHERE EQUNR = WA-EQUNR .
CONCATENATE 'RC29P-IDNRK' '(' LV_N ')' INTO LS_IDNRK.
PERFORM BDC_FIELD USING LS_IDNRK
WA_BOM-IDNRK."'300000396'.
CONCATENATE 'RC29P-MENGE' '(' LV_N ')' INTO LS_MENGE.
PERFORM BDC_FIELD USING LS_MENGE
WA_BOM-MENGE."'10'.
CONCATENATE 'RC29P-POSTP' '(' LV_N ')' INTO LS_POSTP.
PERFORM BDC_FIELD USING LS_POSTP
WA_BOM-POSTP."'L'.
*PERFORM BDC_FIELD USING 'RC29P-IDNRK(01)'
* WA-IDNRK."'300000396'.
*PERFORM BDC_FIELD USING 'RC29P-MENGE(01)'
* WA-MENGE."'10'.
*PERFORM BDC_FIELD USING 'RC29P-POSTP(01)'
* WA-POSTP."'L'.
ADD 1 TO LV_N.
ENDLOOP.
LV_N = LV_N - 1.
DO LV_N TIMES.
CLEAR WA_BOM.
LOOP AT LT_BOM INTO WA_BOM WHERE EQUNR = WA-EQUNR .
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0130'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29P-POSNR'.
PERFORM BDC_FIELD USING 'RC29P-POSNR'
WA_BOM-POSNR."'0010'.
PERFORM BDC_FIELD USING 'RC29P-IDNRK'
WA_BOM-IDNRK."'300000396'.
PERFORM BDC_FIELD USING 'RC29P-MENGE'
WA_BOM-MENGE."'10'.
PERFORM BDC_FIELD USING 'RC29P-MEINS'
'NO'.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0131'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29P-POTX1'.
PERFORM BDC_FIELD USING 'RC29P-SANKA'
'X'.
ENDLOOP.
ENDDO.
PERFORM BDC_TRANSACTION USING 'IB01' .
ENDLOOP.
PERFORM CLOSE_GROUP.
*TYPES DECLARATION
DATA: W_FILENAME TYPE STRING.
DATA: LS_IDNRK TYPE STRING.
DATA: LS_POSTP TYPE STRING.
DATA: LS_MENGE TYPE STRING.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-500.
PARAMETERS: P_FILENM LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK B1.
TYPES : BEGIN OF ST,
EQUNR(18),
STLAN(4),
POSNR(4),
POSTP(1),
IDNRK(18),
MENGE(13),
END OF ST.
*INTERNAL TABLE AND WORKAREA DECLARATION
DATA : IT TYPE TABLE OF ST.
DATA : WA TYPE ST.
DATA: LT_BOM TYPE TABLE OF ST.
DATA: WA_BOM TYPE ST.
DATA: LV_N TYPE STRING." AJAY
INCLUDE BDCRECX1.
START-OF-SELECTION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILENM.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
MASK = ',*.*,*.*.'
MODE = '0'
TITLE = 'GET FILE NAME'
IMPORTING
FILENAME = P_FILENM
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
** END OF CHANGE DCS05052003
** START OF CHANGE DCS05052003
START-OF-SELECTION.
W_FILENAME = P_FILENM.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
** FILENAME = 'C:\BDC_XLS_ASSIGN.TXT'
FILENAME = W_FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO.
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LT_BOM = IT.
LV_N = 1.
PERFORM OPEN_GROUP.
LOOP AT IT INTO WA.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0200'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29N-STLAN'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC29N-EQUNR'
WA-EQUNR."'10000006'.
PERFORM BDC_FIELD USING 'RC29N-WERKS'
''.
PERFORM BDC_FIELD USING 'RC29N-STLAN'
WA-STLAN."'4'.
PERFORM BDC_FIELD USING 'RC29N-DATUV'
'18.09.2014'.
*LOOP.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0110'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC29K-BMENG'
'1'.
PERFORM BDC_FIELD USING 'RC29K-STLST'
'1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29K-EXSTL'.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0111'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29K-LABOR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0140'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29P-MENGE(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=FCBU'.
LOOP AT LT_BOM INTO WA_BOM WHERE EQUNR = WA-EQUNR .
CONCATENATE 'RC29P-IDNRK' '(' LV_N ')' INTO LS_IDNRK.
PERFORM BDC_FIELD USING LS_IDNRK
WA_BOM-IDNRK."'300000396'.
CONCATENATE 'RC29P-MENGE' '(' LV_N ')' INTO LS_MENGE.
PERFORM BDC_FIELD USING LS_MENGE
WA_BOM-MENGE."'10'.
CONCATENATE 'RC29P-POSTP' '(' LV_N ')' INTO LS_POSTP.
PERFORM BDC_FIELD USING LS_POSTP
WA_BOM-POSTP."'L'.
*PERFORM BDC_FIELD USING 'RC29P-IDNRK(01)'
* WA-IDNRK."'300000396'.
*PERFORM BDC_FIELD USING 'RC29P-MENGE(01)'
* WA-MENGE."'10'.
*PERFORM BDC_FIELD USING 'RC29P-POSTP(01)'
* WA-POSTP."'L'.
ADD 1 TO LV_N.
ENDLOOP.
LV_N = LV_N - 1.
DO LV_N TIMES.
CLEAR WA_BOM.
LOOP AT LT_BOM INTO WA_BOM WHERE EQUNR = WA-EQUNR .
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0130'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29P-POSNR'.
PERFORM BDC_FIELD USING 'RC29P-POSNR'
WA_BOM-POSNR."'0010'.
PERFORM BDC_FIELD USING 'RC29P-IDNRK'
WA_BOM-IDNRK."'300000396'.
PERFORM BDC_FIELD USING 'RC29P-MENGE'
WA_BOM-MENGE."'10'.
PERFORM BDC_FIELD USING 'RC29P-MEINS'
'NO'.
PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0131'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC29P-POTX1'.
PERFORM BDC_FIELD USING 'RC29P-SANKA'
'X'.
ENDLOOP.
ENDDO.
PERFORM BDC_TRANSACTION USING 'IB01' .
ENDLOOP.
PERFORM CLOSE_GROUP.
No comments:
Post a Comment