Vous êtes sur la page 1sur 11

************************************************************************

*
BXTI
*
************************************************************************
* Nombre del Programa: REPORT z_ylr_sf1.
*
* Reporte
: prog. para la extraccion de datos para un Dynpro*
* Consultor
: Yonathan Lora
*
* Fecha Creacin
: 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
wa_zremision
wa_parametros
it_parametros
it_cabecera
it_detalles
it_partners
it_flow
wa_flow
wa_partners
wa_detalles
is_dlv_data_controly
p_buks
adrnrcom
"datos extra para la
p_centro
p_almacen
p_fecha
DATA:
ls_control_param

TYPE STANDARD TABLE OF zremision,


TYPE zremision,
TYPE bapidlv_range_vbeln,
TYPE STANDARD TABLE OF bapidlv_range_vbeln,
TYPE TABLE OF bapidlvhdr,
TYPE TABLE OF bapidlvitem,
TYPE TABLE OF bapidlvpartners,
TYPE TABLE OF bapidocflow,
TYPE bapidocflow,
TYPE bapidlvpartners,
TYPE bapidlvitem,
TYPE bapidlvbuffercontrol,
TYPE bukrs_vf,
TYPE t001-adrnr,
tabla
TYPE
werks_d,
TYPE
lgort_d,
TYPE
erdat.

TYPE ssfctrlop,

ls_composer_param
ls_recipient
ls_sender
ls_ssfcrescl
ls_ssfcrespd
lf_formname
lf_fm_name

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

ssfcompop,
swotobjid,
swotobjid,
ssfcrescl,
ssfcrespd,
tdsfname,
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
IMPORTING
fm_name
EXCEPTIONS
no_form
no_function_module
OTHERS
IF sy-subrc NE 0.
EXIT.
ENDIF.

= lf_formname
= lf_fm_name
= 1
= 2
= 3.

CALL FUNCTION lf_fm_name


EXPORTING
archive_index
archive_parameters
control_parameters
mail_recipient
mail_sender
output_options
user_settings
wa_oc
IMPORTING
document_output_info
job_output_info
EXCEPTIONS
formatting_error
internal_error
send_error
user_canceled
OTHERS

=
=
=
=
=
=
=
=

toa_dara
arc_params
ls_control_param
ls_recipient
ls_sender
ls_composer_param
' '
wa_zremision

= ls_ssfcrespd
= ls_ssfcrescl
=
=
=
=
=

1
2
3
4
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.

Vous aimerez peut-être aussi