*&---------------------------------------------------------------------*
*& Report ZSO_BSDC_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zso_bsdc_test.
TYPES: BEGIN OF sodata,
soparty(15) TYPE c,
shparty(15) TYPE c,
material(15) TYPE c ,
quantity(15) TYPE c,
END OF sodata,
BEGIN OF readfile,
field1(600) TYPE c,
END OF readfile.
DATA : g_repid TYPE sy-repid,
g_file_name TYPE string,
wa_sodata TYPE sodata,
it_sodata TYPE STANDARD TABLE OF sodata,
wa_readfile TYPE readfile,
it_readfile TYPE STANDARD TABLE OF readfile,
wa_bdcdata TYPE bdcdata ,
it_bdcdata TYPE STANDARD TABLE OF bdcdata,
messtab like bdcmsgcoll occurs 0 with header line..
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file TYPE ibipparms-path.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.
parameters ctumode like ctu_params-dismode default 'N'.
parameters cupdate like ctu_params-updmode default 'L'.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = g_repid
* DYNPRO_NUMBER = SYST-DYNNR
field_name = 'P_FILE'
IMPORTING
file_name = p_file
.
g_file_name = p_file.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = g_file_name
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 = it_readfile
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 it_readfile INTO wa_readfile.
SPLIT wa_readfile AT ','
INTO wa_sodata-soparty
wa_sodata-shparty
wa_sodata-material
wa_sodata-quantity.
APPEND wa_sodata TO it_sodata.
ENDLOOP.
END-OF-SELECTION.
PERFORM fill_bdcdata.
LOOP AT it_sodata INTO wa_sodata .
PERFORM call_transaction.
ENDLOOP.
WRITE /'Success'.
*&---------------------------------------------------------------------*
*& Form FILL_BDCDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_bdcdata .
perform bdc_dynpro using 'SAPMV45A' '0101'.
perform bdc_field using 'BDC_CURSOR'
'VBAK-AUART'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBAK-AUART'
'ZCG'.
perform bdc_field using 'VBAK-VKORG'
'0001'.
perform bdc_field using 'VBAK-VTWEG'
'01'.
perform bdc_field using 'VBAK-SPART'
'01'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'KUAGV-KUNNR'
'1000'.
perform bdc_field using 'KUWEV-KUNNR'
'1000'.
perform bdc_field using 'RV45A-KETDAT'
'25.11.2009'.
perform bdc_field using 'RV45A-KPRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'25.11.2009'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG(01)'.
perform bdc_field using 'RV45A-MABNR(01)'
wa_sodata-material.
perform bdc_field using 'RV45A-KWMENG(01)'
wa_sodata-quantity.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_field using 'KUAGV-KUNNR'
wa_sodata-soparty.
perform bdc_field using 'KUWEV-KUNNR'
wa_sodata-shparty.
perform bdc_field using 'RV45A-KETDAT'
'25.11.2009'.
perform bdc_field using 'RV45A-KPRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'25.11.2009'.
perform bdc_field using 'VBKD-ZTERM'
'0001'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(02)'.
perform bdc_dynpro using 'SAPLSPO2' '0101'.
perform bdc_field using 'BDC_OKCODE'
'=OPT1'.
ENDFORM. " FILL_BDCDATA
*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0238 text
* -->P_0239 text
*----------------------------------------------------------------------*
FORM bdc_dynpro USING value1
value2.
CLEAR wa_bdcdata.
wa_bdcdata-program = value1.
wa_bdcdata-dynpro = value2.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0413 text
* -->P_0414 text
*----------------------------------------------------------------------*
FORM bdc_field USING value1
value2.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = value1.
wa_bdcdata-fval = value2.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. " BDC_FIELD
*&---------------------------------------------------------------------*
*& Form CALL_TRANSACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form CALL_TRANSACTION .
call transaction 'VA01' using it_bdcdata
mode ctumode
update cupdate
messages into messtab.
endform. " CALL_TRANSACTION
*& Report ZSO_BSDC_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zso_bsdc_test.
TYPES: BEGIN OF sodata,
soparty(15) TYPE c,
shparty(15) TYPE c,
material(15) TYPE c ,
quantity(15) TYPE c,
END OF sodata,
BEGIN OF readfile,
field1(600) TYPE c,
END OF readfile.
DATA : g_repid TYPE sy-repid,
g_file_name TYPE string,
wa_sodata TYPE sodata,
it_sodata TYPE STANDARD TABLE OF sodata,
wa_readfile TYPE readfile,
it_readfile TYPE STANDARD TABLE OF readfile,
wa_bdcdata TYPE bdcdata ,
it_bdcdata TYPE STANDARD TABLE OF bdcdata,
messtab like bdcmsgcoll occurs 0 with header line..
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file TYPE ibipparms-path.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-004.
parameters ctumode like ctu_params-dismode default 'N'.
parameters cupdate like ctu_params-updmode default 'L'.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = g_repid
* DYNPRO_NUMBER = SYST-DYNNR
field_name = 'P_FILE'
IMPORTING
file_name = p_file
.
g_file_name = p_file.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = g_file_name
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 = it_readfile
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 it_readfile INTO wa_readfile.
SPLIT wa_readfile AT ','
INTO wa_sodata-soparty
wa_sodata-shparty
wa_sodata-material
wa_sodata-quantity.
APPEND wa_sodata TO it_sodata.
ENDLOOP.
END-OF-SELECTION.
PERFORM fill_bdcdata.
LOOP AT it_sodata INTO wa_sodata .
PERFORM call_transaction.
ENDLOOP.
WRITE /'Success'.
*&---------------------------------------------------------------------*
*& Form FILL_BDCDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_bdcdata .
perform bdc_dynpro using 'SAPMV45A' '0101'.
perform bdc_field using 'BDC_CURSOR'
'VBAK-AUART'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBAK-AUART'
'ZCG'.
perform bdc_field using 'VBAK-VKORG'
'0001'.
perform bdc_field using 'VBAK-VTWEG'
'01'.
perform bdc_field using 'VBAK-SPART'
'01'.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'KUAGV-KUNNR'
'1000'.
perform bdc_field using 'KUWEV-KUNNR'
'1000'.
perform bdc_field using 'RV45A-KETDAT'
'25.11.2009'.
perform bdc_field using 'RV45A-KPRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'25.11.2009'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-KWMENG(01)'.
perform bdc_field using 'RV45A-MABNR(01)'
wa_sodata-material.
perform bdc_field using 'RV45A-KWMENG(01)'
wa_sodata-quantity.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_field using 'KUAGV-KUNNR'
wa_sodata-soparty.
perform bdc_field using 'KUWEV-KUNNR'
wa_sodata-shparty.
perform bdc_field using 'RV45A-KETDAT'
'25.11.2009'.
perform bdc_field using 'RV45A-KPRGBZ'
'D'.
perform bdc_field using 'VBKD-PRSDT'
'25.11.2009'.
perform bdc_field using 'VBKD-ZTERM'
'0001'.
perform bdc_field using 'BDC_CURSOR'
'RV45A-MABNR(02)'.
perform bdc_dynpro using 'SAPLSPO2' '0101'.
perform bdc_field using 'BDC_OKCODE'
'=OPT1'.
ENDFORM. " FILL_BDCDATA
*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0238 text
* -->P_0239 text
*----------------------------------------------------------------------*
FORM bdc_dynpro USING value1
value2.
CLEAR wa_bdcdata.
wa_bdcdata-program = value1.
wa_bdcdata-dynpro = value2.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. " BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0413 text
* -->P_0414 text
*----------------------------------------------------------------------*
FORM bdc_field USING value1
value2.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = value1.
wa_bdcdata-fval = value2.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. " BDC_FIELD
*&---------------------------------------------------------------------*
*& Form CALL_TRANSACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form CALL_TRANSACTION .
call transaction 'VA01' using it_bdcdata
mode ctumode
update cupdate
messages into messtab.
endform. " CALL_TRANSACTION
Comments
Post a Comment