*&---------------------------------------------------------------------*
*& Report ZBAPI_PO_CREATE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zbapi_po_create.
DATA: s_po_header LIKE bapiekkoc.
DATA : ti_po_items LIKE bapiekpoc OCCURS 0 WITH HEADER LINE,
ti_po_item_schedules LIKE bapieket OCCURS 0 WITH HEADER LINE,
ti_return LIKE bapireturn OCCURS 0 WITH HEADER LINE,
ti_afs_po_items LIKE /afs/bapiekpo2 OCCURS 0 WITH HEADER LINE,
ti_afs_po_item_schedules LIKE /afs/bapieket2 OCCURS 0 WITH HEADER LINE.
DATA : v_purchaseorder LIKE bapiekkoc-po_number.
CLEAR s_po_header.
**Cabecera EKKO.
s_po_header-doc_type = 'ZTCD'. "Clase de documento de compras
s_po_header-suppl_plnt = 'Z000'. " Centro suministrador en el pedido de transporte
s_po_header-doc_date = sy-datum. "Fecha del documento de compras
s_po_header-co_code = 'CDPT'. "Sociedad
s_po_header-pur_group = 'G03'. "Grupo de compras
s_po_header-purch_org = 'CDPT'. "Organización de compras
s_po_header-langu = sy-langu.
**Fin Cabecera
***Posiciones EKPO.
CLEAR ti_po_items.
ti_po_items-po_item = 1. "Número de posición del documento de compras
ti_po_items-material = 'OB-TS5104-4441'. "Número de material
ti_po_items-pur_mat = 'OB-TS5104-4441'. "Número de material
ti_po_items-store_loc = 'A001'. "Almacén
ti_po_items-plant = 'A001'. "Centro
ti_po_items-item_cat = 'V'. "Tipo de posición del documento de compras.
*ti_po_items-unit = 'PAA'. "Unidad de medida de pedido
APPEND ti_po_items.
CLEAR ti_afs_po_items.
ti_afs_po_items-po_item = 1. "Número de posición del documento de compras
ti_afs_po_items-grid_number = 'OB-TS5104-4441'. "Número de material
APPEND ti_afs_po_items.
***Fin Posiciones EKPO.
*
*Reparto EKET.
CLEAR ti_po_item_schedules.
ti_po_item_schedules-po_item = '1'. "Número de posición del documento de compras.
ti_po_item_schedules-serial_no = '1'. "Contador de repartos.
ti_po_item_schedules-quantity = '1'. "Cantidad de reparto.
ti_po_item_schedules-deliv_date = sy-datum. "Fecha de Entrega.
APPEND ti_po_item_schedules.
CLEAR ti_afs_po_item_schedules.
ti_afs_po_item_schedules-item_number = 1. "Número de posición del documento de compras.
ti_afs_po_item_schedules-del_sche_number = 1. "Contador de repartos.
ti_afs_po_item_schedules-sche_line_no = 1.
ti_afs_po_item_schedules-sch_size = 'M'. "Valor matriz
ti_afs_po_item_schedules-quantity1 = 1. "Cantidad
ti_afs_po_item_schedules-ordered_qty = 1. "Cantidad pedida.
ti_afs_po_item_schedules-deadline_date = sy-datum. "Fecha de Entrega.
APPEND ti_afs_po_item_schedules.
***Fin Reparto EKET.
CALL FUNCTION 'BAPI_PO_CREATE'
EXPORTING
po_header = s_po_header
* PO_HEADER_ADD_DATA =
* HEADER_ADD_DATA_RELEVANT =
* PO_ADDRESS =
* SKIP_ITEMS_WITH_ERROR = 'X'
* ITEM_ADD_DATA_RELEVANT =
* HEADER_TECH_FIELDS =
IMPORTING
purchaseorder = v_purchaseorder
TABLES
po_items = ti_po_items
* PO_ITEM_ADD_DATA =
po_item_schedules = ti_po_item_schedules
* PO_ITEM_ACCOUNT_ASSIGNMENT =
* PO_ITEM_TEXT =
return = ti_return
* PO_LIMITS =
* PO_CONTRACT_LIMITS =
* PO_SERVICES =
* PO_SRV_ACCASS_VALUES =
* PO_SERVICES_TEXT =
* PO_BUSINESS_PARTNER =
* EXTENSIONIN =
* POADDRDELIVERY =
afs_po_items = ti_afs_po_items
afs_po_item_schedules = ti_afs_po_item_schedules.
IF NOT v_purchaseorder IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
* IMPORTING
* RETURN =
.
WRITE : / v_purchaseorder.
LOOP AT ti_return.
WRITE: / ti_return-message.
ENDLOOP.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
LOOP AT ti_return.
WRITE: / ti_return-message.
ENDLOOP.
ENDIF.