sap bdc session method


learn how to create sap bdc session method :
Program Code

report ZVK11_BDC_DEMO
       no standard page heading line-size 255.

*include bdcrecx1.

types : begin of tp_itab,
         vkorg(4),
         vtweg(2),
         matnr(18),
         amount(15),
         msg type string,
       end of tp_itab.

data : gt_itab type STANDARD TABLE OF tp_itab,
       gs_itab type tp_itab.

data : gv_file type string.

DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
*       messages of call transaction
DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.


SELECTION-SCREEN skip.
 PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN SKIP.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'
* EXPORTING
*   PROGRAM_NAME        = SYST-CPROG
*   DYNPRO_NUMBER       = SYST-DYNNR
*   FIELD_NAME          = ' '
 IMPORTING
   FILE_NAME           = P_FILE.



start-of-selection.

 clear : gv_file, gt_itab[].

  gv_file = p_file.

 CALL FUNCTION 'GUI_UPLOAD'
   EXPORTING
     FILENAME                      = GV_FILE
    FILETYPE                      = 'ASC'
    HAS_FIELD_SEPARATOR           = 'X'
*    HEADER_LENGTH                 = 0
*    READ_BY_LINE                  = 'X'
*    DAT_MODE                      = ' '
*    CODEPAGE                      = ' '
*    IGNORE_CERR                   = ABAP_TRUE
*    REPLACEMENT                   = '#'
*    CHECK_BOM                     = ' '
*    VIRUS_SCAN_PROFILE            =
*    NO_AUTH_CHECK                 = ' '
*  IMPORTING
*    FILELENGTH                    =
*    HEADER                        =
   TABLES
     DATA_TAB                      = gt_itab
*  CHANGING
*    ISSCANPERFORMED               = ' '
  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.
* Implement suitable error handling here
 ENDIF.


*perform open_group.

CALL FUNCTION 'BDC_OPEN_GROUP'
 EXPORTING
   CLIENT                    = SY-MANDT
*   DEST                      = FILLER8
   GROUP                     = 'ZVK111907'
*   HOLDDATE                  = FILLER8
   KEEP                      = 'X'
   USER                      = SY-UNAME
*   RECORD                    = FILLER1
   PROG                      = SY-CPROG
*   DCPFM                     = '%'
*   DATFM                     = '%'
* IMPORTING
*   QID                       =
 EXCEPTIONS
   CLIENT_INVALID            = 1
   DESTINATION_INVALID       = 2
   GROUP_INVALID             = 3
   GROUP_IS_LOCKED           = 4
   HOLDDATE_INVALID          = 5
   INTERNAL_ERROR            = 6
   QUEUE_ERROR               = 7
   RUNNING                   = 8
   SYSTEM_LOCK_ERROR         = 9
   USER_INVALID              = 10
   OTHERS                    = 11
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

loop at gt_itab into gs_itab.

REFRESH : MESSTAB, BDCDATA.

perform bdc_dynpro      using 'SAPMV13A' '0100'.
perform bdc_field       using 'BDC_CURSOR'
                              'RV13A-KSCHL'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ANTA'.
perform bdc_field       using 'RV13A-KSCHL'
                              'ZBAS'.

perform bdc_dynpro      using 'SAPLV14A' '0100'.
perform bdc_field       using 'BDC_CURSOR'
                              'RV130-SELKZ(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              '=WEIT'.

perform bdc_dynpro      using 'SAPMV13A' '1004'.
perform bdc_field       using 'BDC_CURSOR'
                              'KOMG-VTWEG'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'KOMG-VKORG'
                              gs_itab-vkorg.           "'1024'.
perform bdc_field       using 'KOMG-VTWEG'
                              gs_itab-vtweg.            "'24'.

perform bdc_dynpro      using 'SAPMV13A' '1004'.
perform bdc_field       using 'BDC_CURSOR'
                              'KONP-KBETR(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.

perform bdc_field       using 'KOMG-MATNR(01)'
                              gs_itab-matnr.                 "'11000004'.

CONDENSE gs_itab-AMOUNT.
perform bdc_field       using 'KONP-KBETR(01)'
                              gs_itab-amount.                   "'             150'.

perform bdc_dynpro      using 'SAPMV13A' '1004'.
perform bdc_field       using 'BDC_CURSOR'
                              'KOMG-MATNR(01)'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SICH'.

CALL FUNCTION 'BDC_INSERT'
 EXPORTING
   TCODE                  = 'VK11'
*   POST_LOCAL             = NOVBLOCAL
*   PRINTING               = NOPRINT
*   SIMUBATCH              = ' '
*   CTUPARAMS              = ' '
  TABLES
    DYNPROTAB              = BDCDATA
 EXCEPTIONS
   INTERNAL_ERROR         = 1
   NOT_OPEN               = 2
   QUEUE_ERROR            = 3
   TCODE_INVALID          = 4
   PRINTING_INVALID       = 5
   POSTING_INVALID        = 6
   OTHERS                 = 7
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

*perform bdc_transaction using 'VK11'.


clear : gs_itab.
endloop.

CALL FUNCTION 'BDC_CLOSE_GROUP'
 EXCEPTIONS
   NOT_OPEN          = 1
   QUEUE_ERROR       = 2
   OTHERS            = 3
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
  message 'Error while creating bdc session' TYPE 'E'.
ELSE.
   MESSAGE 'BDC session created' TYPE 'S'.

ENDIF.


*    cl_demo_output=>display( gt_itab ).


*perform close_group.

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF FVAL <> SPACE.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.

Post a Comment

0 Comments

Total Pageviews