MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Ejemplo De La Bapi_po_create1 (foro/showthread.php?t=36065)

acha3318 08/04/10 22:32:07

Ejemplo De La Bapi_po_create1
 
Saludos a todos,

De pronto alguien me podría regalar el código ejemplo de la BAPI_PO_CREATE1, para tomarla como modelo, necesito crear Ordenes de Compra a partir de la SOLPED que genera los Pedidos de Venta.

Les agradeceria que fuera lo mas completo posibles,


Gracias de ante mano, por la ayudita.

temaljose 09/04/10 03:54:36

Hola, amigo, mira este link:


saludos

caralbgro 09/04/10 12:47:48

a ver si te sirve!!!
 
Con esta BAPI vamos a crearnos un pedido de Compras...


Primero rellenamos la Cabecera de la BAPI.
Código:
FORM rellenar_bapi_cab.

CLEAR l_poheader.
CLEAR l_poheaderx.

l_poheader-comp_code = ekko-bukrs.
l_poheader-doc_type = 'NB'.
l_poheader-creat_date = sy-datlo.
l_poheader-created_by = sy-uname.
l_poheader-vendor = ekko-lifnr.
l_poheader-purch_org = ekko-ekorg.
l_poheader-pur_group = ekko-ekgrp.
l_poheader-doc_date = sy-datum.


l_poheaderx-comp_code = 'X'.
l_poheaderx-doc_type = 'X'.
l_poheaderx-creat_date = 'X'.
l_poheaderx-created_by = 'X'.
l_poheaderx-vendor = 'X'.
l_poheaderx-purch_org = 'X'.
l_poheaderx-pur_group = 'X'.
l_poheaderx-doc_date = 'X'.

ENDFORM. " rellenar_bapi_cab


Ahora rellenamos las posiciones
Código:
FORM rellenar_bapi_pos.

DATA: pos_rep LIKE ekpo-ebelp.

* Coger nombre material.
SELECT SINGLE * FROM makt WHERE matnr = i_pedido-matnr
AND spras = sy-langu.
SELECT SINGLE * FROM mara WHERE matnr = i_pedido-matnr.


CLEAR pos_rep.
LOOP AT i_pedido.
CLEAR: l_t_poitem, l_t_poitemx, l_t_poschedule, l_t_poschedulex.
ADD 10 TO pos_rep.

l_t_poitem-po_item = pos_rep.
l_t_poitem-short_text = makt-maktx.
l_t_poitem-material = i_pedido-matnr.
l_t_poitem-plant = ekpo-werks.
l_t_poitem-stge_loc = ekpo-lgort.
l_t_poitem-quantity = i_pedido-menge.
l_t_poitem-po_unit = mara-meins.
l_t_poitem-item_cat = '2'.
l_t_poitem-agreement = i_pedido-konnr.
l_t_poitem-agmt_item = i_pedido-ktpnr.
APPEND l_t_poitem.

l_t_poitemx-po_item = pos_rep.
l_t_poitemx-po_itemx = 'X'.
l_t_poitemx-short_text = 'X'.
l_t_poitemx-material = 'X'.
l_t_poitemx-plant = 'X'.
l_t_poitemx-stge_loc = 'X'.
l_t_poitemx-quantity = 'X'.
l_t_poitemx-po_unit = 'X'.
l_t_poitemx-item_cat = 'X'.
IF NOT i_pedido-konnr IS INITIAL.
l_t_poitemx-agreement = 'X'.
l_t_poitemx-agmt_item = 'X'.
ENDIF.
APPEND l_t_poitemx.

l_t_poschedule-po_item = pos_rep.
l_t_poschedule-delivery_date = i_pedido-eeind.
l_t_poschedule-quantity = i_pedido-menge.
l_t_poschedule-deliv_time = sy-uzeit.
APPEND l_t_poschedule.

l_t_poschedulex-po_item = pos_rep.
l_t_poschedulex-po_itemx = 'X'.
l_t_poschedulex-delivery_date = 'X'.
l_t_poschedulex-quantity = 'X'.
l_t_poschedulex-deliv_time = 'X'.
APPEND l_t_poschedulex.

ENDFORM. " rellenar_bapi_pos


Ejecutamos la BAPI.
Código:
FORM crear_pedido_compra .

CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = l_poheader
poheaderx = l_poheaderx
IMPORTING
exppurchaseorder = d_ebeln
TABLES
return = l_t_return
poitem = l_t_poitem
poitemx = l_t_poitemx
poschedule = l_t_poschedule
poschedulex = l_t_poschedulex.


CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDFORM. " crear_pedido_compra


Husos Horarios son GMT. La hora en este momento es 12:24:18.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web