Monday, February 17, 2020

XD01 BDC Program in SAP ABAP


XD01 BDC Program in SAP ABAP.

*&---------------------------------------------------------------------*
*& Report  ZRK_BDC_MM01
*&---------------------------------------------------------------------*
*& Created By   :
*& Requested By :
*& Date         :
*& TR No.       :
*& TCode        :
*& Description  :
*&---------------------------------------------------------------------*
REPORT  zrk_bdc_xd01.
*&---------------------------------------------------------------------*
*& Data Declaration
*&---------------------------------------------------------------------*
DATA: bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& Internal Table Declaration
*&---------------------------------------------------------------------*
DATA:BEGIN OF i_tab OCCURS 0,
      kunnr TYPE    rf02d-kunnr,
      ktokd  TYPE     rf02d-ktokd,
      anred TYPE    kna1-anred,
      name1 TYPE    kna1-name1,
      sortl TYPE    kna1-sortl,
      pfach TYPE    kna1-pfach,
      ort01 TYPE    kna1-ort01,
      pstlz TYPE    kna1-pstlz,
      pstl2 TYPE    kna1-pstl2,
      land1 TYPE    kna1-land1,
      spras TYPE    kna1-spras,
      lzone TYPE    kna1-lzone,
 END OF i_tab.
*----------------------------------------------------------------------*
* Selection Screen
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) text_1_1.
PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
*----------------------------------------------------------------------*
* Initialization Event
*----------------------------------------------------------------------*
INITIALIZATION.
  text_001 = 'File path selection'.
  text_1_1 = 'File Path'.
*----------------------------------------------------------------------*
* At Selection Screen Event
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_file.
*&---------------------------------------------------------------------*
*& Start of Selection
*&---------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM data_upload.
  IF i_tab[] IS NOT INITIAL.
    PERFORM open_group.
    LOOP AT i_tab.
      REFRESH bdcdata.
      PERFORM bdcdata.
    ENDLOOP.
    PERFORM close_group.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  DATA_UPLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM data_upload.
  DATA: loc_filename TYPE string.
  loc_filename = p_file.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = loc_filename
      filetype                = 'DAT'
      has_field_separator     = 'X'
    TABLES
      data_tab                = i_tab
    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.
ENDFORM.                    " DATA_UPLOAD

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  APPEND bdcdata.
ENDFORM.                    "BDC_FIELD

*&---------------------------------------------------------------------*
*&      Form  OPEN_GROUP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM open_group .
  CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
      client = sy-mandt
      group  = 'ZRHAN_XD01' "'Session_Name'
      user   = sy-uname
      keep   = 'X'.
ENDFORM.                    " OPEN_GROUP

*&---------------------------------------------------------------------*
*&      Form  CLOSE_GROUP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM close_group .
  CALL FUNCTION 'BDC_CLOSE_GROUP'.
  CALL TRANSACTION 'SM35'.
ENDFORM.                    " CLOSE_GROUP

*&---------------------------------------------------------------------*
*&      Form  bdcdata
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM bdcdata .
*---->>> Insert Recording Here
  PERFORM bdc_dynpro      USING 'SAPMF02D'    '0100'.
  PERFORM bdc_field       USING 'BDC_CURSOR'  'RF02D-KTOKD'.
  PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
  PERFORM bdc_field       USING 'RF02D-KUNNR'   i_tab-kunnr. "  'A-5005'.
  PERFORM bdc_field       USING 'RF02D-KTOKD'   i_tab-ktokd."'0001'.
  PERFORM bdc_dynpro      USING 'SAPMF02D'    '0110'.
  PERFORM bdc_field       USING 'BDC_CURSOR'  'KNA1-PSTL2'.
  PERFORM bdc_field       USING 'BDC_OKCODE'  '/00'.
  PERFORM bdc_field       USING 'KNA1-ANRED'    i_tab-anred."'" 'mr'.
  PERFORM bdc_field       USING 'KNA1-NAME1'    i_tab-name1."'avin'.
  PERFORM bdc_field       USING 'KNA1-SORTL'    i_tab-sortl."  'AVIN'.
  PERFORM bdc_field       USING 'KNA1-PFACH'    i_tab-pfach." 'rajapur'.
  PERFORM bdc_field       USING 'KNA1-ORT01'    i_tab-ort01."'RAJAPUR'.
  PERFORM bdc_field       USING 'KNA1-PSTLZ'    i_tab-pstlz." '210207'.
  PERFORM bdc_field       USING 'KNA1-PSTL2'    i_tab-pstl2." '210207'.
  PERFORM bdc_field       USING 'KNA1-LAND1'    i_tab-land1." 'IN'.
  PERFORM bdc_field       USING 'KNA1-SPRAS'    i_tab-spras." 'EN'.
  PERFORM bdc_dynpro      USING 'SAPMF02D'    '0120'.
  PERFORM bdc_field       USING 'BDC_CURSOR'  'KNA1-LZONE'.
  PERFORM bdc_field       USING 'BDC_OKCODE'   '=UPDA'.
  PERFORM bdc_field       USING 'KNA1-LZONE'   i_tab-lzone." '0000000001'.

  PERFORM bdc_insert.
ENDFORM.                    " bdcdata

*&---------------------------------------------------------------------*
*&      Form  bdc_insert
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM bdc_insert.
  CALL FUNCTION 'BDC_INSERT'
    EXPORTING
      tcode     = 'XD01' "'TCODE'
    TABLES
      dynprotab = bdcdata.
ENDFORM.                    " bdc_insert



File Format:

A-50051 0001 Mr lokesh kumar avi raja RAJA    210207 210207 IN EN 0000000001
A-50052 0001 MS POOJA  SING avi raja RAJA 210207 210207 IN EN 0000000001

No comments:

Post a Comment