Tuesday, September 23, 2014

BDC for IB01 - One Equipment and More Component


File Format of IB01

 



REPORT ZIB01.

DATA ECSIN  TYPE CSIN.
DATA ESTKOB TYPE STKOB .
DATA ESTZUB TYPE STZUB .
DATA ASTLNR TYPE STZUB-STLNR .
DATA T_STPOB TYPE STANDARD TABLE OF STPOB WITH HEADER LINE .

TYPES : BEGIN OF ST,

        BUZEI(3),
        EQUNR(18),
        STLAN(4),
        POSNR(4),
        POSTP(1),
        IDNRK(18),
        MENGE(13),
        MEINS(3),

END OF ST.

DATA : ITAB TYPE TABLE OF ST.
DATA : WA TYPE ST.

DATA: W_FILENAME 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.

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                     = ITAB

 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.

LOOP AT ITAB INTO WA.

IF WA-BUZEI EQ 'N'.
  "Post the Document
  CALL FUNCTION 'CSAI_BOM_CREATE'
  EXPORTING
    ECSIN                    = ECSIN
    ESTKOB                   = ESTKOB
    ESTZUB                   = ESTZUB
*FL_NO_CHANGE_DOC         = ' '
*FL_COMMIT_AND_WAIT       = ' '
*FL_NO_COMMIT_WORK        = ' '
*FL_ALE                   = ' '
IMPORTING
*FL_WARNING               =
  ASTLNR                   = ASTLNR
TABLES
  T_STPOB                  = T_STPOB
EXCEPTIONS
  ERROR                    = 1
  OTHERS                   = 2.

  IF ASTLNR IS INITIAL.
    "ERROR.
  ENDIF.

  IF SY-SUBRC <> 0.
*  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    WRITE : 'BOM Not Created for '.
    WRITE : ECSIN-EQUNR.
    NEW-LINE.
  ENDIF.
  CLEAR: ECSIN, ESTKOB, ESTZUB.
  REFRESH T_STPOB.
ENDIF.

IF WA-BUZEI EQ '1'.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      INPUT         = WA-EQUNR
    IMPORTING
      OUTPUT        = WA-EQUNR.
  ECSIN-EQUNR = WA-EQUNR.
  ECSIN-STLTY = 'E' .
  ECSIN-STLAN = '4' .
  ECSIN-WERKS = ''. "YOUR PLANT.
  ECSIN-DATUV = SY-DATUM.

  ESTKOB-BMEIN =  'NO'.
  ESTKOB-BMENG = ''."10.
  ESTKOB-STKTX = 'TEST'.

  T_STPOB-STLTY = 'M' .
  T_STPOB-POSTP = 'L' .
ENDIF.

IF WA-BUZEI NE 'N'.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      INPUT         = WA-IDNRK
    IMPORTING
      OUTPUT        = WA-IDNRK.
  T_STPOB-IDNRK = WA-IDNRK."'000000000300000396'. "YOUR COMPONENT.
  T_STPOB-MEINS = ''."WA-MEINS."'NO' .
  T_STPOB-MENGE = WA-MENGE."10 .
  T_STPOB-RVREL = 'X' .

APPEND T_STPOB .
ENDIF.
ENDLOOP.

No comments:

Post a Comment