Reportes de Transportes VTTK

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 14

*&---------------------------------------------------------------------* *& Report ZRHRSD100 * *&---------------------------------------------------------------------* * TITULO: Impresin colectiva de transportes * * AUTOR: Cristian Funez - RMR Consultores * * FUNCIONAL:

Matias Rebasa * * CREADO EL: 10/10/2011 * * OBJETIVO: Impresin colectiva de transportes * *&---------------------------------------------------------------------* REPORT zrhrsd100 MESSAGE-ID zsd. TABLES: vttk. TYPE-POOLS: slis, icon, sydes. CONSTANTS: c_x TYPE c VALUE 'X'. TYPES: BEGIN OF ty_vttk. INCLUDE TYPE vttk. TYPES: * check name1 TYPE lfa1-name1, ort01 TYPE lfa1-ort01, check TYPE c LENGTH 1, END OF ty_vttk, BEGIN OF ty_vtpa, vbeln TYPE vtpa-vbeln, posnr TYPE vtpa-posnr, parvw TYPE vtpa-parvw, lifnr TYPE vtpa-lifnr, END OF ty_vtpa, BEGIN OF ty_lfa1, lifnr LIKE lfa1-lifnr, name1 LIKE lfa1-name1, ort01 TYPE lfa1-ort01, END OF ty_lfa1. DATA: t_vttk w_vttk t_lfa1 w_lfa1 TYPE LIKE TYPE LIKE STANDARD TABLE OF ty_vttk, LINE OF t_vttk, STANDARD TABLE OF ty_lfa1, LINE OF t_lfa1.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. SELECT-OPTIONS: s_tknum FOR vttk-tknum, s_route FOR vttk-route, s_shtyp FOR vttk-shtyp, s_tplst FOR vttk-tplst, s_tdlnr FOR vttk-tdlnr, s_erdat FOR vttk-erdat,

s_ernam FOR vttk-ernam. SELECTION-SCREEN END OF BLOCK b1. START-OF-SELECTION. PERFORM f_obtener_datos. END-OF-SELECTION. IF t_vttk[] IS INITIAL. MESSAGE s429(mo). ELSE. * Muestra ALV PERFORM f_mostrar_alv. ENDIF. *&---------------------------------------------------------------------* *& Form F_OBTENER_DATOS *&---------------------------------------------------------------------* * Obtengo datos *----------------------------------------------------------------------* FORM f_obtener_datos. REFRESH: t_vttk. * Recuperar cabeceras trans SELECT * FROM vttk INTO TABLE t_vttk WHERE tknum IN s_tknum AND route IN s_route AND shtyp IN s_shtyp AND tplst IN s_tplst AND tdlnr IN s_tdlnr AND erdat IN s_erdat AND ernam IN s_ernam. IF sy-subrc EQ 0. SORT t_vttk BY tknum. * Busqueda de los datos de TRANSPORTISTA SELECT lifnr name1 ort01 FROM lfa1 INTO TABLE t_lfa1 FOR ALL ENTRIES IN t_vttk WHERE lifnr EQ t_vttk-tdlnr. IF sy-subrc EQ 0. SORT t_lfa1 BY lifnr. LOOP AT t_lfa1 INTO w_lfa1. w_vttk-name1 = w_lfa1-name1. w_vttk-ort01 = w_lfa1-ort01. MODIFY t_vttk FROM w_vttk TRANSPORTING name1 ort01 WHERE tdlnr EQ w_lfa1-lifnr. ENDLOOP. ENDIF.

ENDIF. ENDFORM. " F_OBTENER_DATOS

*&---------------------------------------------------------------------* *& Form F_MOSTRAR_ALV *&---------------------------------------------------------------------* * Mostrar ALV *----------------------------------------------------------------------* FORM f_mostrar_alv . CONSTANTS: lc_top_of_page lc_user_command lc_pf_status_set lc_a lc_tab lc_wa lc_color DATA: lwt_layout lt_fieldcat REFRESH: lt_fieldcat. lwt_layout-cwidth_opt = c_x. * Armar catalogo de ALV PERFORM f_armar_catalogo_auto USING lc_tab lc_wa CHANGING lt_fieldcat. * Mostrar ALV CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_pf_status_set = lc_pf_status_set * i_callback_top_of_page = lc_top_of_page i_callback_user_command = lc_user_command i_callback_program = sy-repid is_layout_lvc = lwt_layout it_fieldcat_lvc = lt_fieldcat i_save = lc_a TABLES t_outtab = t_vttk EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc NE 0. RETURN. ENDIF. ENDFORM. " F_MOSTRAR_ALV *&---------------------------------------------------------------------* *& Form F_PF_STATUS_SET *&---------------------------------------------------------------------* TYPE TYPE TYPE TYPE TYPE TYPE TYPE slis_formname VALUE 'F_TOP_OF_PAGE', slis_formname VALUE 'F_USER_COMMAND', slis_formname VALUE 'F_PF_STATUS_SET', c LENGTH 1 VALUE 'A', tabname VALUE 'T_VTTK', fieldname VALUE 'W_VTTK', fieldname VALUE 'COLOR'.

TYPE lvc_s_layo, TYPE lvc_t_fcat.

FORM f_pf_status_set USING u_extab. SET PF-STATUS 'ALV' EXCLUDING u_extab. ENDFORM. "F_PF_STATUS_SET *&---------------------------------------------------------------------* *& Form f_top_of_page *&---------------------------------------------------------------------* * Header ALV *----------------------------------------------------------------------* FORM f_top_of_page. "#EC CALLED CONSTANTS: lc_h lc_s lc_sep TYPE c LENGTH 1 VALUE 'H', TYPE c LENGTH 1 VALUE 'S', TYPE c LENGTH 3 VALUE ' / '.

DATA: lt_comentarios TYPE slis_t_listheader, lwt_comentarios LIKE LINE OF lt_comentarios, lv_fecha TYPE c LENGTH 10, lv_hora TYPE c LENGTH 10. REFRESH: lt_comentarios. * * * * * * * * * * lwt_comentarios-typ = lc_h. SELECT SINGLE butxt FROM t001 INTO lwt_comentarios-info WHERE bukrs EQ p_bukrs. IF sy-subrc EQ 0. APPEND lwt_comentarios TO lt_comentarios. CLEAR lwt_comentarios. ENDIF. lwt_comentarios-typ = lc_s. lwt_comentarios-key = text-t01. lwt_comentarios-info = sy-uname. APPEND lwt_comentarios TO lt_comentarios. CLEAR lwt_comentarios. lwt_comentarios-typ = lc_s. lwt_comentarios-key = text-t02. WRITE: sy-datum TO lv_fecha, sy-uzeit TO lv_hora. CONCATENATE lv_fecha lv_hora INTO lwt_comentarios-info SEPARATED BY lc_sep. APPEND lwt_comentarios TO lt_comentarios. CLEAR lwt_comentarios.

* Mostrar titulos ALV CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING lt_list_commentary = lt_comentarios. ENDFORM. "f_top_of_page *&---------------------------------------------------------------------* *& Form f_user_command *&---------------------------------------------------------------------* * Commandos ALV *----------------------------------------------------------------------* FORM f_user_command USING u_ucomm "#EC CALLED u_selfield TYPE slis_selfield. READ TABLE t_vttk INTO w_vttk INDEX u_selfield-tabindex. CHECK sy-subrc IS INITIAL. u_selfield-refresh = c_x. u_selfield-col_stable = u_selfield-row_stable = c_x. IF u_ucomm EQ '&ALL_CHECK'. w_vttk-check = 'X'. MODIFY t_vttk FROM w_vttk TRANSPORTING check WHERE tknum NE space. ELSEIF u_ucomm EQ '&SAL_CHECK'. w_vttk-check = ''. MODIFY t_vttk FROM w_vttk TRANSPORTING check WHERE tknum NE space. ELSEIF u_ucomm(6) EQ '&PRINT'. PERFORM f_imprimir_forms. ENDIF. CHECK u_ucomm = '&IC1'. CASE u_selfield-fieldname. WHEN 'CHECK'. IF w_vttk-check IS INITIAL. w_vttk-check = 'X'. ELSE. w_vttk-check = ''. ENDIF. MODIFY t_vttk FROM w_vttk INDEX u_selfield-tabindex TRANSPORTING check. WHEN OTHERS. SET PARAMETER ID 'TNR' FIELD w_vttk-tknum. CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN. ENDCASE. ENDFORM. "USER_COMMAND

*&---------------------------------------------------------------------* *& Form F_ARMAR_CATALOGO_AUTO *&---------------------------------------------------------------------* * Armar catalogo dinamicamente *----------------------------------------------------------------------* FORM f_armar_catalogo_auto USING u_lt_name TYPE tabname u_wa_name TYPE fieldname

CHANGING ch_fieldcat TYPE lvc_t_fcat. CONSTANTS: lc_sep lc_index lc_p lc_r lc_l lc_curr lc_waers DATA: lo_stru_ref lo_type_ref lt_comp_tab lwt_comp_tab lwt_ddic lwt_field lwt_fieldcat lwt_dfies lv_one_name TYPE TYPE TYPE TYPE TYPE TYPE TYPE c LENGTH 1 VALUE '-', sy-index VALUE 3, c LENGTH 1 VALUE 'P', c LENGTH 1 VALUE 'R', c LENGTH 1 VALUE 'L', fieldname VALUE 'CURR', fieldname VALUE 'WAERS'.

TYPE REF TO cl_abap_structdescr, TYPE REF TO cl_abap_elemdescr, TYPE abap_compdescr_tab, TYPE abap_compdescr, TYPE abap_bool, TYPE sydes_desc, TYPE lvc_s_fcat, TYPE dfies, TYPE string.

FIELD-SYMBOLS: <lfs_type> TYPE ANY, <lfs_line> TYPE ANY, <lfs_info> TYPE sydes_nameinfo. REFRESH: ch_fieldcat. ASSIGN (u_wa_name) TO <lfs_line>. IF sy-subrc NE 0. RETURN. ENDIF. lo_stru_ref ?= cl_abap_structdescr=>describe_by_data( <lfs_line> ). lt_comp_tab = lo_stru_ref->components. LOOP AT lt_comp_tab INTO lwt_comp_tab. CLEAR: lwt_fieldcat. lwt_fieldcat-tabname = u_lt_name. lwt_fieldcat-fieldname = lwt_comp_tab-name. lwt_fieldcat-inttype = lwt_comp_tab-type_kind. CONCATENATE u_wa_name lwt_comp_tab-name INTO lv_one_name SEPARATED BY lc_sep. ASSIGN (lv_one_name) TO <lfs_type>. CHECK sy-subrc EQ 0.

lo_type_ref ?= cl_abap_elemdescr=>describe_by_data( <lfs_type> ). lwt_ddic = lo_type_ref->is_ddic_type( ). IF lwt_ddic = abap_true. lwt_dfies = lo_type_ref->get_ddic_field( sy-langu ). lwt_fieldcat-scrtext_s lwt_fieldcat-scrtext_m lwt_fieldcat-scrtext_l lwt_fieldcat-datatype = = = = lwt_dfies-scrtext_s. lwt_dfies-scrtext_m. lwt_dfies-scrtext_l. lwt_dfies-datatype.

DESCRIBE FIELD <lfs_type> INTO lwt_field. READ TABLE lwt_field-names INDEX lc_index ASSIGNING <lfs_info>. IF sy-subrc IS INITIAL. SPLIT <lfs_info>-name AT lc_sep INTO lwt_fieldcat-ref_table lwt_fieldcat-ref_field. ENDIF. ENDIF. IF lwt_fieldcat-inttype EQ lc_p. lwt_fieldcat-just = lc_r. ELSE. lwt_fieldcat-just = lc_l. ENDIF. IF lwt_fieldcat-datatype EQ lc_curr. lwt_fieldcat-cfieldname = lc_waers. ENDIF. IF lwt_fieldcat-fieldname EQ 'CHECK'. lwt_fieldcat-checkbox = c_x. lwt_fieldcat-hotspot = c_x. INSERT lwt_fieldcat INTO ch_fieldcat INDEX 1. CONTINUE. ENDIF. IF lwt_fieldcat-fieldname EQ 'MANDT'. lwt_fieldcat-tech = c_x. ENDIF. IF lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-fieldname NE lwt_fieldcat-no_out = c_x. ENDIF. 'MARCA' AND 'TKNUM' AND 'ERNAM' AND 'ERZET' AND 'ROUTE' AND 'TDLNR' AND 'NAME1' AND 'ORT01'.

lwt_fieldcat-no_zero = c_x. APPEND lwt_fieldcat TO ch_fieldcat. CLEAR lwt_fieldcat. ENDLOOP. ENDFORM. " F_ARMAR_CATALOGO_AUTO

*&---------------------------------------------------------------------* *& Form F_IMPRIMIR_FORMS *&---------------------------------------------------------------------* FORM f_imprimir_forms . TYPES: BEGIN OF ty_likp. INCLUDE TYPE likp. TYPES: procesado, END OF ty_likp, BEGIN OF ty_kna1, kunnr LIKE kna1-kunnr, name1 LIKE kna1-name1, stras LIKE kna1-stras, ort01 LIKE kna1-ort01, END OF ty_kna1, BEGIN OF ty_lfa1, lifnr LIKE lfa1-lifnr, name1 LIKE lfa1-name1, END OF ty_lfa1, BEGIN OF ty_tvtkt, shtyp LIKE tvtkt-shtyp, bezei LIKE tvtkt-bezei, END OF ty_tvtkt, BEGIN OF ty_lips, vbeln LIKE lips-vbeln, posnr LIKE lips-posnr, wavwr LIKE lips-wavwr, END OF ty_lips, BEGIN OF ty_vekp, vbeln LIKE vepo-vbeln, venum LIKE vekp-venum, exidv LIKE vekp-exidv, brgew LIKE vekp-brgew, END OF ty_vekp. DATA: lv_nombre_forms TYPE tdsfname VALUE 'ZRHFRMSD27', lv_funcion TYPE tdsfname, lw_document_output_info TYPE ssfcrespd, lw_job_output_info TYPE ssfcrescl, lw_job_output_options TYPE ssfcresop, lw_control_parameters TYPE ssfctrlop,

lw_output_options TYPE ssfcompop, * Datos lt_vttk TYPE STANDARD TABLE OF vttk, lt_vttp TYPE STANDARD TABLE OF vttp, lw_vttp LIKE LINE OF lt_vttp, lt_vttk_rel TYPE STANDARD TABLE OF vttk, lw_vttk_rel LIKE LINE OF lt_vttk_rel, lt_vttp_rel TYPE STANDARD TABLE OF vttp, lw_vttp_rel LIKE LINE OF lt_vttp_rel, lt_likp TYPE STANDARD TABLE OF ty_likp, lt_lips TYPE STANDARD TABLE OF ty_lips, lw_lips LIKE LINE OF lt_lips, lt_kna1 TYPE STANDARD TABLE OF ty_kna1, lw_kna1 LIKE LINE OF lt_kna1, lt_lfa1 TYPE STANDARD TABLE OF ty_lfa1, lw_lfa1 LIKE LINE OF lt_lfa1, lt_tvtkt TYPE STANDARD TABLE OF ty_tvtkt, lw_tvtkt LIKE LINE OF lt_tvtkt, lt_vekp TYPE STANDARD TABLE OF ty_vekp, lw_vekp LIKE LINE OF lt_vekp, lt_position TYPE STANDARD TABLE OF zrhestsd100, lw_position LIKE LINE OF lt_position, lv_tabix TYPE sy-tabix. FIELD-SYMBOLS: <lw_likp> LIKE LINE OF lt_likp. READ TABLE t_vttk TRANSPORTING NO FIELDS WITH KEY check = c_x. IF sy-subrc IS NOT INITIAL. MESSAGE i609(00). EXIT. ENDIF. LOOP AT t_vttk INTO w_vttk WHERE check EQ c_x. * Cabeceras de transportes marcados APPEND w_vttk TO lt_vttk. ENDLOOP. * Recuperar posiciones trans SELECT * FROM vttp INTO TABLE lt_vttp FOR ALL ENTRIES IN lt_vttk WHERE tknum EQ lt_vttk-tknum. CHECK sy-subrc EQ 0. SORT lt_vttp BY tknum tpnum. * Busqueda de los datos de TRANSPORTISTA SELECT lifnr name1 FROM lfa1 INTO TABLE lt_lfa1 FOR ALL ENTRIES IN lt_vttk WHERE lifnr EQ lt_vttk-tdlnr. IF sy-subrc EQ 0.

SORT lt_lfa1 BY lifnr. ENDIF. * Recuperar entregas de transportes SELECT * FROM likp INTO TABLE lt_likp FOR ALL ENTRIES IN lt_vttp WHERE vbeln EQ lt_vttp-vbeln. IF sy-subrc EQ 0. SORT lt_likp BY vbeln. * Busqueda del precio en la tabla LIPS SELECT vbeln posnr wavwr FROM lips INTO TABLE lt_lips FOR ALL ENTRIES IN lt_likp WHERE vbeln EQ lt_likp-vbeln. IF sy-subrc EQ 0. SORT lt_lips BY vbeln posnr. ENDIF. * Busqueda del peso total para cada posicin del transporte. SELECT b~vbeln a~venum a~exidv a~brgew FROM vekp AS a INNER JOIN vepo AS b ON a~venum = b~venum INTO TABLE lt_vekp FOR ALL ENTRIES IN lt_likp WHERE b~vbeln EQ lt_likp-vbeln. IF sy-subrc EQ 0. SORT lt_vekp BY vbeln venum. ENDIF. Busqueda de los datos de cada Destinatario SELECT kunnr name1 stras ort01 FROM kna1 INTO TABLE lt_kna1 FOR ALL ENTRIES IN lt_likp WHERE kunnr EQ lt_likp-kunnr. IF sy-subrc EQ 0. SORT lt_kna1 BY kunnr. ENDIF. ENDIF.

* Busqueda de posiciones de documentos relacionados SELECT * FROM vttp INTO TABLE lt_vttp_rel FOR ALL ENTRIES IN lt_vttp WHERE tknum NE lt_vttp-tknum AND vbeln EQ lt_vttp-vbeln. IF sy-subrc EQ 0. SORT lt_vttp_rel

BY tknum tpnum. * Busqueda de cabeceras de documentos relacionados SELECT * FROM vttk INTO TABLE lt_vttk_rel FOR ALL ENTRIES IN lt_vttp_rel WHERE tknum EQ lt_vttp_rel-tknum AND shtyp NE '0004'. IF sy-subrc EQ 0. SORT lt_vttk BY tknum. ENDIF. ENDIF.

* Busqueda de la descripcin de la Forma de Pago SELECT shtyp bezei FROM tvtkt INTO TABLE lt_tvtkt WHERE spras EQ sy-langu. * Armar tabla de posiciones LOOP AT lt_vttp INTO lw_vttp. * Cabecera de transporte READ TABLE lt_vttk INTO w_vttk WITH KEY tknum = lw_vttp-tknum. CHECK sy-subrc EQ 0. LOOP AT lt_likp ASSIGNING <lw_likp> WHERE vbeln EQ lw_vttp-vbeln AND procesado EQ space. CLEAR: lw_vttp_rel, lw_vttk_rel, lw_lfa1, lw_kna1, lw_tvtkt. * * * * * * Marcar entrega como procesada <lw_likp>-procesado = c_x. READ TABLE lt_vttp_rel INTO lw_vttp_rel WITH KEY vbeln = <lw_likp>-vbeln. READ TABLE lt_vttk_rel INTO lw_vttk_rel WITH KEY tknum = lw_vttp_rel-tknum. READ TABLE lt_lfa1 INTO lw_lfa1 WITH KEY lifnr = w_vttk-tdlnr. READ TABLE lt_kna1 INTO lw_kna1 WITH KEY kunnr = <lw_likp>-kunnr. READ TABLE lt_tvtkt INTO lw_tvtkt WITH KEY shtyp = w_vttk-shtyp. "lw_vttk_rel-shtyp

* * *

Se lee la tabla con esta clave para no repetir Guas de despacho en el mismo expreso. En caso de haber 2 Guas iguales, se suman los valores correspondientes. READ TABLE lt_position INTO lw_position WITH KEY tknum = lw_vttp-tknum name1 = lw_kna1-name1 stras = lw_kna1-stras ort01 = lw_kna1-ort01. IF sy-subrc NE 0. CLEAR lw_position. lw_position-tdlnr = w_vttk-tdlnr. lw_position-tdlnr_name1 = lw_lfa1-name1. lw_position-name1 = lw_kna1-name1. lw_position-stras = lw_kna1-stras. lw_position-ort01 = lw_kna1-ort01. lw_position-tknum = lw_vttp-tknum. lw_position-bezei = lw_tvtkt-bezei. lw_position-anzpk = <lw_likp>-anzpk. lw_position-volum = <lw_likp>-volum. LOOP AT lt_lips INTO lw_lips WHERE vbeln EQ <lw_likp>-vbeln. lw_position-wavwr = lw_position-wavwr + lw_lips-wavwr. ENDLOOP. LOOP AT lt_vekp INTO lw_vekp WHERE vbeln EQ <lw_likp>-vbeln. lw_position-btgew = lw_position-btgew + lw_vekp-brgew. ENDLOOP. CASE <lw_likp>-gewei. WHEN 'G'. lw_position-btgew = <lw_likp>-btgew / 1000. WHEN 'T'. lw_position-btgew = <lw_likp>-btgew * 1000. ENDCASE. CASE <lw_likp>-voleh. WHEN 'M3'. lw_position-volum = <lw_likp>-volum * 1000. WHEN 'CM3'. lw_position-volum = <lw_likp>-volum / 1000. ENDCASE. APPEND lw_position TO lt_position. ELSE. lv_tabix = sy-tabix. lw_position-anzpk = lw_position-anzpk + <lw_likp>-anzpk. lw_position-volum = lw_position-volum + <lw_likp>-volum. LOOP AT lt_lips INTO lw_lips WHERE vbeln EQ <lw_likp>-vbeln. lw_position-wavwr = lw_position-wavwr + lw_lips-wavwr. ENDLOOP. LOOP AT lt_vekp INTO lw_vekp WHERE vbeln EQ <lw_likp>-vbeln.

lw_position-btgew = lw_position-btgew + lw_vekp-brgew. ENDLOOP. CASE <lw_likp>-gewei. WHEN 'G'. lw_position-btgew = lw_position-btgew + ( <lw_likp>-btgew / 1000 ). WHEN 'T'. lw_position-btgew = lw_position-btgew + ( <lw_likp>-btgew * 1000 ). ENDCASE. CASE <lw_likp>-voleh. WHEN 'M3'. lw_position-volum = lw_position-volum + ( <lw_likp>-volum * 1000 ). WHEN 'CM3'. lw_position-volum = lw_position-volum + ( <lw_likp>-volum / 1000 ). ENDCASE. MODIFY lt_position FROM lw_position INDEX lv_tabix. ENDIF. ENDLOOP. ENDLOOP. SORT lt_position BY tknum tdlnr bezei. CHECK lt_position[] IS NOT INITIAL. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lv_nombre_forms IMPORTING fm_name = lv_funcion EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. CHECK sy-subrc EQ 0. lw_output_options-tdtitle = 'Invoice'. lw_output_options-tddest = 'LOCL'. lw_output_options-tdimmed = c_x. lw_output_options-tddelete = c_x. lw_output_options-tdnewid = c_x. lw_control_parameters-no_open = c_x. lw_control_parameters-no_close = c_x. CALL FUNCTION 'SSF_OPEN' EXPORTING user_settings = output_options = control_parameters = EXCEPTIONS formatting_error = internal_error = send_error = user_canceled = OTHERS = CHECK sy-subrc EQ 0.

' ' lw_output_options lw_control_parameters 1 2 3 4 5.

CALL FUNCTION lv_funcion EXPORTING control_parameters = lw_control_parameters output_options = lw_output_options user_settings = ' ' TABLES t_vttk = lt_vttk t_vttp = lt_vttp t_position = lt_position EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 orden_inexistente = 5 OTHERS = 6. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CALL FUNCTION 'SSF_CLOSE' IMPORTING job_output_info = lw_job_output_info EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 OTHERS = 4. 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. " F_IMPRIMIR_FORMS

También podría gustarte