Tuesday, September 23, 2014

BDC for IB01 - For One Euipment and One Component

REPORT ZIB01 NO STANDARD PAGE HEADING LINE-SIZE 255.

*TYPES DECLARATION
DATAW_FILENAME TYPE STRING.
DATALS_IDNRK TYPE STRING.
DATALS_POSTP TYPE STRING.
DATALS_MENGE TYPE STRING.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-500.
PARAMETERSP_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.
 DATALT_BOM TYPE TABLE OF ST.
 DATAWA_BOM TYPE ST.
 DATALV_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 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