Ver Mensaje Individual
  #1  
Viejo 17/06/09, 14:57:02
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Exclamation Bapi_po_create1

Buenas tardes,

Estoy creando pedidos en la ME21N con la BAPI_PO_CREATE1, me crea el pedido correctamente, aunque cuando voy a visulaizarlo el importe neto lo pone a 0 (eso es un mal menor), el problema que tengo es que tengo que realizar la entrada de mercancias en la MIGO, y cuando la voy a hacer la entrada con el pedido que me ha creado la BAPI me dice que el pedido no tiene ninguna posición creada, no se si en la BAPI le faltará algo para la entrada de mercancias, el codigo es el siguiente:


REPORT z_prueba.
*---Para la creación del Pedido Tablas internas

DATA: header TYPE bapimepoheader.
DATA: headerx TYPE bapimepoheaderx.

DATA: account TYPE TABLE OF bapimepoaccount,
wa_account LIKE LINE OF account.

DATA: accountx TYPE TABLE OF bapimepoaccountx,
wa_accountx LIKE LINE OF accountx.

*Internal Tables to hold PO ITEM DATA
DATA: item TYPE TABLE OF bapimepoitem,
wa_item LIKE LINE OF item.

DATA: itemx TYPE TABLE OF bapimepoitemx,
wa_itemx LIKE LINE OF itemx.

*Internal table to hold messages from BAPI call
DATA: return TYPE TABLE OF bapiret2,
wa_return LIKE LINE OF return.

DATA: return2 TYPE TABLE OF bapiret2,
wa_return2 LIKE LINE OF return.


DATA: item_num TYPE bapimepoitem-po_item.

DATA: purchaseorder TYPE bapimepoheader-po_number.
DATA: precio_net TYPE bapimepoitem-net_price.
PARAMETER: vendor TYPE bapimepoheader-vendor DEFAULT '0002000046'.
*--- Seleccionamos el proveedor SAP correspondiente al proveedor amasis


header-comp_code = 'BC10' .
header-doc_type = 'CONS' .
header-vendor = '0002000046' .
header-purch_org = 'BC10' .
header-creat_date = sy-datum .
header-created_by = sy-uname .
header-pur_group = '109' .
header-langu = 'S'.
header-currency = 'EUR' .


headerx-comp_code = 'X'.
headerx-doc_type = 'X'.
headerx-vendor = 'X'.
headerx-creat_date = 'X'.
headerx-created_by = 'X'.
headerx-purch_org = 'X'.
headerx-pur_group ='X'.
headerx-langu = 'X'.
headerx-sales_pers = 'X'.
headerx-currency = 'X'.
break pfernandez.
ADD 10 TO item_num.
precio_net = '1.20'.
wa_item-po_item = item_num.
wa_item-quantity = '1'.
wa_item-short_text = 'prueba bapi_po_create1'.
wa_item-acctasscat = 'K' .
wa_item-matl_group = 'G_AM_LUBR' .
wa_item-plant = 'BC10' .
wa_item-quantity = '1' .
wa_item-po_unit = 'EA'.
wa_item-net_price = precio_net.
wa_item-price_unit = '1'.
wa_item-gr_pr_time = '0'.

APPEND wa_item TO item.

**&---------------------------------------------------------------------*
**POPULATE ITEM FLAG TABLE
**&---------------------------------------------------------------------*
wa_itemx-po_item = item_num.
wa_itemx-po_itemx = 'X'.
wa_itemx-short_text = 'X'.
wa_itemx-quantity = 'X'.
wa_itemx-tax_code = 'X'.
wa_itemx-acctasscat = 'X'.
wa_itemx-item_cat ='X'.
wa_itemx-matl_group = 'X'.
wa_itemx-plant = 'X'.
wa_itemx-trackingno = 'X'.
wa_itemx-agreement = 'X'.
wa_itemx-agmt_item = 'X'.
wa_itemx-stge_loc = 'X'.
wa_itemx-quantity = 'X'.
wa_itemx-po_unit = 'X'.
wa_itemx-conv_num1 = 'X'.
wa_itemx-conv_den1 = 'X'.
wa_itemx-net_price = 'X'.
wa_itemx-price_unit = 'X'.
wa_itemx-gr_pr_time = 'X'.
wa_itemx-prnt_price = 'X'.
wa_itemx-unlimited_dlv = 'X'.
wa_itemx-gr_ind = 'X'.
wa_itemx-ir_ind = 'X'.
wa_itemx-gr_basediv = 'X'.
wa_itemx-pckg_no = 'X'.

APPEND wa_itemx TO itemx.

**&---------------------------------------------------------------------*
**POPULATE ACCOUNT DATA.
**&---------------------------------------------------------------------*
wa_account-po_item = '10' .
wa_account-creat_date = sy-datum .
wa_account-costcenter = 'BC10'."'BC10T0200' .

APPEND wa_account TO account.
*
**&---------------------------------------------------------------------*
**POPULATE ACCOUNT FLAG TABLE.
**&---------------------------------------------------------------------*
wa_accountx-po_item = '10' .
wa_accountx-po_itemx = 'X'.
wa_accountx-serial_nox = 'X'.
wa_accountx-creat_date = 'X'.
wa_accountx-costcenter = 'X'.
wa_accountx-gl_account = 'X'.
wa_accountx-co_area = 'X'.
wa_accountx-tax_code ='X'.

APPEND wa_accountx TO accountx.

CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = header
poheaderx = headerx
IMPORTING
exppurchaseorder = purchaseorder
TABLES
return = return
poitem = item
poitemx = itemx
poaccount = account
poaccountx = accountx.
break pfernandez.
IF purchaseorder IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
RETURN = wa_return2 .

BREAK pfernandez.
WAIT UP TO 2 SECONDS.
LOOP AT return INTO wa_return.
WRITE: / wa_return-message.
ENDLOOP.
ENDIF.
Responder Con Cita