Zovp Upload Send Document
Zovp Upload Send Document
START-OF-SELECTION.
PERFORM get_data.
PERFORM process_data.
PERFORM get_remaining_credit.
END-OF-SELECTION.
PERFORM initialization.
PERFORM show_alv.
*&---------------------------------------------------------------------*
*& Form get_Data
*&---------------------------------------------------------------------*
FORM get_data.
CLEAR : gt_itab,gt_itab[],gt_user_fld[],
gt_master[],gt_tables[].
ENDFORM.
*&---------------------------------------------------------------------*
*& Form show_alv
*&---------------------------------------------------------------------*
FORM show_alv.
DATA : lv_n2 TYPE numc2,
lv_field(40).
LOOP AT gt_user_fld.
lv_n2 = sy-tabix.
CONCATENATE 'USERFLD' lv_n2 INTO lv_field.
LOOP AT alv_fieldcat WHERE fieldname = lv_field.
alv_fieldcat-seltext_s =
alv_fieldcat-seltext_m =
alv_fieldcat-reptext_ddic =
alv_fieldcat-seltext_l = gt_user_fld-fieldname.
MODIFY alv_fieldcat.
ENDLOOP.
ENDLOOP.
DO 20 TIMES.
ADD 1 TO lv_n2.
CONCATENATE 'USERFLD' lv_n2 INTO lv_field.
DELETE alv_fieldcat WHERE fieldname = lv_field.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDDO.
WHEN '&IC1'.
* READ TABLE gt_itab INDEX ls_selfield-tabindex.
* CASE ls_selfield-fieldname.
* WHEN 'EBELN' OR 'EBELP'.
* SET PARAMETER ID 'BES' FIELD gt_itab-ebeln.
* SET PARAMETER ID 'BSP' FIELD gt_itab-ebelp.
* CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
* WHEN 'BANFN' OR 'BNFPO'.
* SET PARAMETER ID 'BAN' FIELD gt_itab-banfn.
* SET PARAMETER ID 'BAP' FIELD gt_itab-bnfpo.
* CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
* WHEN 'GIRMK'.
* PERFORM show_goods_receipts.
* WHEN OTHERS.
* ENDCASE.
ENDCASE.
ls_selfield-refresh = 'X'.
ls_selfield-col_stable = 'X'.
ls_selfield-row_stable = 'X'.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form UPLOAD
*&---------------------------------------------------------------------*
FORM upload.
DATA : lv_filename TYPE string,
lv_filesize TYPE i,
lv_rc TYPE i,
lv_error TYPE string,
cl_gui_frontend_services=>file_open_dialog(
EXPORTING window_title = 'Upload Document'
CHANGING file_table = lt_filetab[]
rc = lv_rc ).
ENDIF.
IF lv_error IS INITIAL.
CLEAR : gt_itab.
MOVE-CORRESPONDING go_ov_tools->gs_system_info_data TO gt_itab.
gt_itab-statu = icon_led_green.
gt_itab-data_xstring = lv_xstring.
gt_itab-data_object = go_ov_tools.
PERFORM get_remaining_credit.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
FORM process_data.
IF go_ov_tools IS INITIAL.
TRY.
CREATE OBJECT go_ov_tools.
CATCH zcx_onvision_check_any_error INTO go_exception.
gv_error = go_exception->get_text( ).
MESSAGE gv_error TYPE 'E'.
ENDTRY.
ENDIF.
LOOP AT gt_itab.
gt_itab-data_object = go_ov_tools.
MODIFY gt_itab.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_REMAINING_CREDIT
*&---------------------------------------------------------------------*
FORM get_remaining_credit.
gv_credit = go_ov_tools->ov_get_credit( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PROCESS_LINE
*&---------------------------------------------------------------------*
FORM process_line USING ps_itab TYPE zovs_upload_itab_str.
CASE ps_itab-result.
WHEN gc_result_success.
ps_itab-statu = icon_led_green.
WHEN OTHERS.
ps_itab-statu = icon_led_red.
ENDCASE.
LOOP AT gt_user_fld.
lv_n2 = sy-tabix.
CONCATENATE 'PS_ITAB-USERFLD' lv_n2 INTO lv_field.
ASSIGN (lv_field) TO <f>.
CHECK sy-subrc EQ 0.
CHECK ps_itab-documenttype = gt_user_fld-documenttype.
READ TABLE gt_master WITH KEY uuid = ps_itab-uuid
fieldname = gt_user_fld-fieldname
BINARY SEARCH.
CHECK sy-subrc EQ 0.
<f> = gt_master-value.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_DOC_DATA
*&---------------------------------------------------------------------*
FORM get_doc_data.
IF lv_error IS INITIAL.
MOVE-CORRESPONDING gt_itab-data_object->gs_system_info_data
TO gt_itab.
gt_itab-statu = icon_led_green.
DELETE gt_master WHERE uuid = gt_itab-uuid.
DELETE gt_tables WHERE uuid = gt_itab-uuid.
APPEND LINES OF gt_itab-data_object->gt_data_master_tab
TO gt_master.
APPEND LINES OF gt_itab-data_object->gt_data_table_tab
TO gt_tables.
SORT gt_master BY uuid fieldname.
SORT gt_tables BY uuid.
PERFORM process_line USING gt_itab.
ELSE.
gt_itab-statu = icon_led_red.
gt_itab-message = lv_error.
ENDIF.
MODIFY gt_itab.
ENDLOOP.
ENDFORM.