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.

DATAW_FILENAME 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.

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.
  CLEARECSINESTKOBESTZUB.
  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.