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