Wednesday, February 4, 2015

BDC for Transaction F-04

Make the file in txt format having the fields that are defined in the Structure below -
 
REPORT ZF04 NO STANDARD PAGE HEADING LINE-SIZE 255.

*TYPES DECLARATION............................................*
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.

 TYPES : BEGIN OF ST,

   BLDAT(10),
   BLART(2),
   BURKS(4),
   BUDAT(10),
   MONAT(2),
   WAERS(5),
   NEWBS(2),
   NEWKO(17),
   WRBTR(13),
   GSBER(4),
   PRCTR(10),
   VALUT(10),
   ZUONR(18),
   SGTXT(50),

   NEWBS2(2),
   NEWKO2(17),
   WRBTR2(13),
   GSBER2(4),
   PRCTR2(10),
   ZUONR2(18),
   SGTXT2(50),

END OF ST.

*INTERNAL TABLE AND WORKAREA DECLARATION*

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

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.

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

PERFORM OPEN_GROUP.

LOOP AT IT INTO WA.

PERFORM BDC_DYNPRO      USING 'SAPMF05A' '0122'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'RF05A-NEWKO'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'BKPF-BLDAT'
                               WA-BLDAT. "'24.06.2013'.
PERFORM BDC_FIELD       USING 'BKPF-BLART'
                               WA-BLART. "'KA'.
PERFORM BDC_FIELD       USING 'BKPF-BUKRS'
                               WA-BURKS.
PERFORM BDC_FIELD       USING 'BKPF-BUDAT'
                               WA-BUDAT. "'24.06.2013'.
PERFORM BDC_FIELD       USING 'BKPF-MONAT'
                               WA-MONAT. "'3'.
PERFORM BDC_FIELD       USING 'BKPF-WAERS'
                               WA-WAERS. "'INR'.
PERFORM BDC_FIELD       USING 'FS006-DOCID'
                               '*'.
PERFORM BDC_FIELD       USING 'RF05A-NEWBS'
                               WA-NEWBS. "'39'.
PERFORM BDC_FIELD       USING 'RF05A-NEWKO'
                               WA-NEWKO. "''.
PERFORM BDC_DYNPRO      USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'RF05A-NEWKO'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'BSEG-WRBTR'
                               WA-WRBTR."'100'.
PERFORM BDC_FIELD       USING 'BSEG-VALUT'
                               WA-VALUT."'24.06.2013'.
PERFORM BDC_FIELD       USING 'BSEG-ZUONR'
                               WA-ZUONR."'TESTING FOR PF'.
PERFORM BDC_FIELD       USING 'BSEG-SGTXT'
                               WA-SGTXT."'TESTING FOR PF'.
PERFORM BDC_FIELD       USING 'RF05A-NEWBS'
                               WA-NEWBS2. "'40'.
PERFORM BDC_FIELD       USING 'RF05A-NEWKO'
                               WA-NEWKO2. "'860101'.
PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'COBL-PRCTR'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '=ENTE'.
PERFORM BDC_FIELD       USING 'COBL-GSBER'
                              WA-GSBER."'4'.
PERFORM BDC_FIELD       USING 'COBL-PRCTR'
                              WA-PRCTR."'400'.
PERFORM BDC_DYNPRO      USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'BSEG-SGTXT'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '=AB'.
PERFORM BDC_FIELD       USING 'BSEG-WRBTR'
                               WA-WRBTR2."'100'.
PERFORM BDC_FIELD       USING 'BSEG-VALUT'
                               WA-VALUT."'03.02.2015'.
PERFORM BDC_FIELD       USING 'BSEG-ZUONR'
                               WA-ZUONR2."'TESTING FOR PF'.
PERFORM BDC_FIELD       USING 'BSEG-SGTXT'
                               WA-SGTXT2."'TESTING FOR PF'.
PERFORM BDC_DYNPRO      USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'COBL-PRCTR'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '=ENTE'.
PERFORM BDC_FIELD       USING 'COBL-GSBER'
                               WA-GSBER2."'1'.
PERFORM BDC_FIELD       USING 'COBL-PRCTR'
                               WA-PRCTR."'100'.
PERFORM BDC_DYNPRO      USING 'SAPMF05A' '0700'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'RF05A-NEWBS'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '=BU'.
PERFORM BDC_TRANSACTION USING 'F-04'.

REFRESH BDCDATA.
ENDLOOP.

PERFORM CLOSE_GROUP.

No comments:

Post a Comment