You are on page 1of 3

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

*PRINCIPAL*
REPORT ZBAPI2.

INCLUDE ZBAPI2_TOP.

INCLUDE ZBAPI2_S01.
INCLUDE ZBAPI2_F01.

START-OF-SELECTION.

CREATE OBJECT
LO_REPORT.
LO_REPORT->TRAER_INFO( ).

*&---------------------------------------------------------------------*
*& Include ZBAPI2_TOP
*&---------------------------------------------------------------------*
*TABLA A UTILIZAR.
TABLES VBAK.
*TABLA INTERNA
DATA: it_vbak TYPE STANDARD TABLE OF vbak,
wa_vbak TYPE vbak.
*TABLA DE SALIDA
types:
BEGIN OF ty_salida,
mandt TYPE mandt,
vbeln TYPE vbeln,
vkorg TYPE vkorg,
END OF ty_salida,
tt_salida TYPE STANDARD TABLE OF ty_salida.

data: wa_salida TYPE ty_salida,


it_salida TYPE STANDARD TABLE OF bapisdh1.

data: salesdocument TYPE bapivbeln-vbeln,


order_header_in TYPE bapisdh1,
order_header_inx TYPE bapisdh1x,
t_return TYPE STANDARD TABLE OF bapiret2,
w_return TYPE bapiret2.

CONSTANTS: c_x TYPE c VALUE 'X',


c_u TYPE c VALUE 'U'.

* DECLARAMOS TABLA DE SALIDA

DATA: lv_alvcorrida TYPE REF TO cl_salv_table,


lv_columns_tab TYPE REF TO cl_salv_columns_table,
lv_functions TYPE REF TO cl_salv_functions_list,
lv_display TYPE REF TO cl_salv_display_settings,
lv_events TYPE REF TO cl_salv_events_table,
lr_layout TYPE REF TO cl_salv_layout,
ls_key TYPE salv_s_layout_key.
*CLASE
CLASS LC_REPORT DEFINITION.
PUBLIC SECTION.
METHODS:
INFO_PEDIDO,
BAPI_SALES,
MOSTRAR_INFO.

ENDCLASS.
DATA LO_REPORT TYPE REF TO LC_REPORT.

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

*&---------------------------------------------------------------------*
*& Include ZBAPI2_S01
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: p_vbeln FOR vbak-vbeln NO-EXTENSION NO INTERVALS .
*SELECT-OPTIONS: sales FOR vbak-vkorg NO-EXTENSION NO INTERVALS .
SELECTION-SCREEN END OF BLOCK a1.

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

*&---------------------------------------------------------------------*
*& Include ZBAPI2_F01
*&---------------------------------------------------------------------*
CLASS LC_REPORT IMPLEMENTATION.
METHOD INFO_PEDIDO.
SELECT vbeln
vkorg
INTO TABLE it_vbak
FROM vbak
WHERE vbeln EQ p_vbeln.
IF SY-SUBRC eq 0.
LO_REPORT->BAPI_DETAIL( ).
ENDIF.

ENDMETHOD.
METHOD BAPI_SALES.
MOVE: c_u TO order_header_inx-updateflag.

LOOP AT it_vbak INTO wa_vbak.


if SY-SUBRC eq 0.
MOVE: wa_vbak-vbeln to salesdocument,
wa_vbak-vkorg to order_header_in.

*
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
* SIMULATION =
* BEHAVE_WHEN_ERROR = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* LOGIC_SWITCH =
* NO_STATUS_BUF_INIT = ' '
TABLES
RETURN = t_return

.
APPEND: order_header_in TO IT_SALIDA.
ENDIF.

ENDLOOP.

LO_REPORT->MOSTRAR_INFO( ).

ENDMETHOD.

METHOD MOSTRAR_INFO.
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = lv_alvcorrida
CHANGING
t_table = it_salida.

ENDTRY.
lv_columns_tab = lv_alvcorrida->get_columns( ).
lv_columns_tab->set_optimize( ).
lv_functions = lv_alvcorrida->get_functions( ).
lv_functions->set_all( ).
lv_display = lv_alvcorrida->get_display_settings( ).
lv_display->set_striped_pattern( cl_salv_display_settings=>true ).
lr_layout = lv_alvcorrida->get_layout( ).
ls_key-report = sy-repid.
lr_layout->set_key( ls_key ).
lr_layout->set_default( 'X' ).
lr_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
* lr_layout->set_default( abap_true ).
lv_alvcorrida->display( ).

ENDMETHOD.

ENDCLASS.

You might also like