Z_ylr_sf1 Mi Primer Smartforms
-
Upload
yonathanlora2547 -
Category
Documents
-
view
214 -
download
2
description
Transcript of Z_ylr_sf1 Mi Primer Smartforms
************************************************************************* BXTI ************************************************************************** Nombre del Programa: REPORT z_ylr_sf1. ** Reporte : prog. para la extraccion de datos para un Dynpro** Consultor : Yonathan Lora ** Fecha Creación : 11 de Diciembre *********************************
REPORT z_ylr_sf1.
INCLUDE:z_ylr_sf1_top, z_ylr_sf1_s01, z_ylr_sf1_f01.
START-OF-SELECTION.
PERFORM f_extraccion.
*&---------------------------------------------------------------------**& Include Z_YLR_SF1_TOP*&---------------------------------------------------------------------*
INCLUDE rvadtabl.
TABLES: vbfa. DATA: it_zremision TYPE STANDARD TABLE OF zremision, wa_zremision TYPE zremision, wa_parametros TYPE bapidlv_range_vbeln, it_parametros TYPE STANDARD TABLE OF bapidlv_range_vbeln, it_cabecera TYPE TABLE OF bapidlvhdr, it_detalles TYPE TABLE OF bapidlvitem, it_partners TYPE TABLE OF bapidlvpartners, it_flow TYPE TABLE OF bapidocflow, wa_flow TYPE bapidocflow, wa_partners TYPE bapidlvpartners, wa_detalles TYPE bapidlvitem, is_dlv_data_controly TYPE bapidlvbuffercontrol, p_buks TYPE bukrs_vf, adrnrcom TYPE t001-adrnr, "datos extra para la tabla p_centro TYPE werks_d,
p_almacen TYPE lgort_d, p_fecha TYPE erdat.
DATA: ls_control_param TYPE ssfctrlop, ls_composer_param TYPE ssfcompop, ls_recipient TYPE swotobjid, ls_sender TYPE swotobjid, ls_ssfcrescl TYPE ssfcrescl, ls_ssfcrespd TYPE ssfcrespd, lf_formname TYPE tdsfname, lf_fm_name TYPE rs38l_fnam.
*&---------------------------------------------------------------------**& Include Z_YLR_SF1_S01*&---------------------------------------------------------------------*
*PARAMETERS:
SELECTION-SCREEN BEGIN OF BLOCK p_msj WITH FRAME TITLE text-001.
PARAMETERS: norden TYPE vbfa-vbelv.
SELECTION-SCREEN END OF BLOCK p_msj.
*&---------------------------------------------------------------------**& Include Z_YLR_SF1_F01*&---------------------------------------------------------------------**&---------------------------------------------------------------------**& Form EXTRACCION*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM f_extraccion .
wa_parametros-sign = 'I'. wa_parametros-option = 'EQ'. wa_parametros-deliv_numb_low = norden. APPEND wa_parametros TO it_parametros.
is_dlv_data_controly-bypassing_buffer = 'X'. is_dlv_data_controly-doc_flow = 'X'. is_dlv_data_controly-ft_data = 'X'. is_dlv_data_controly-head_partner = 'X'. is_dlv_data_controly-head_status = 'X'. is_dlv_data_controly-hu_data = 'X'. is_dlv_data_controly-item = 'X'. is_dlv_data_controly-item_status = 'X'. is_dlv_data_controly-serno = 'X'.
CALL FUNCTION 'BAPI_DELIVERY_GETLIST' EXPORTING is_dlv_data_control = is_dlv_data_controly TABLES et_delivery_header = it_cabecera et_delivery_item = it_detalles et_delivery_partner = it_partners et_document_flow = it_flow it_vbeln = it_parametros EXCEPTIONS OTHERS = 1.
* wa_zremision-cabe = it_cabecera. IF lines( it_cabecera ) > 0 AND sy-subrc EQ 0. READ TABLE it_cabecera INDEX 1 INTO wa_zremision-cabe. wa_zremision-deta = it_detalles. PERFORM f_datoscomplementarios. PERFORM f_joinsdireccioenes. ENDIF.
ENDFORM.
*&---------------------------------------------------------------------**& Form JOINSDIRECCIOENES*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM f_joinsdireccioenes . " validacion para que la tabla no este vacia. IF lines( it_cabecera ) > 0 . LOOP AT it_partners INTO wa_partners.
IF wa_partners-parvw EQ 'SO' OR wa_partners-parvw EQ 'AG'.
SELECT SINGLE * INTO wa_zremision-soli
FROM adrc WHERE addrnumber = wa_partners-adrnr.
ELSEIF wa_partners-parvw EQ 'EM' OR wa_partners-parvw EQ 'WE'.
SELECT SINGLE * INTO wa_zremision-dest FROM adrc WHERE addrnumber = wa_partners-adrnr. ENDIF.
ENDLOOP. ENDIF.
IF sy-subrc EQ 0.
" lectura del flow para sacar la direccion READ TABLE it_flow INTO wa_flow WITH KEY vbtyp_n = 'Q'.
IF sy-subrc EQ 0.
SELECT SINGLE bukrs_vf INTO p_buks FROM vbak WHERE vbeln = wa_flow-vbeln.
SELECT SINGLE adrnr INTO adrnrcom FROM t001 WHERE bukrs = p_buks.
SELECT SINGLE * INTO wa_zremision-comp FROM adrc WHERE addrnumber = adrnrcom. ENDIF.
ENDIF.
IF sy-subrc EQ 0. lf_formname = 'ZREMISION'. PERFORM llama_dynpro. ELSE. ENDIF.ENDFORM.
*&---------------------------------------------------------------------**& Form LLAMA_DYNPRO*&---------------------------------------------------------------------** text
*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM llama_dynpro .
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lf_formname IMPORTING fm_name = lf_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc NE 0. EXIT. ENDIF.
CALL FUNCTION lf_fm_name EXPORTING archive_index = toa_dara archive_parameters = arc_params control_parameters = ls_control_param mail_recipient = ls_recipient mail_sender = ls_sender output_options = ls_composer_param user_settings = ' ' wa_oc = wa_zremision IMPORTING document_output_info = ls_ssfcrespd job_output_info = ls_ssfcrescl EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.
IF sy-subrc NE 0. EXIT. ENDIF.
ENDFORM.
*&---------------------------------------------------------------------**& Form DATOSCOMPLEMENTARIOS*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*
* --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM f_datoscomplementarios .
IF lines( it_detalles ) > 0. READ TABLE it_detalles INTO wa_detalles INDEX 1. wa_zremision-centro = wa_detalles-werks. wa_zremision-almacen = wa_detalles-lgort. wa_zremision-fecha = wa_detalles-erdat. ENDIF.
ENDFORM.