#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
Estimada.
Y a nivel Base de Datos (Tablas), se esta registrando correctamente la PO al ejecutar la BAPI?
__________________
Saludos. Juan Carlos Flores Consultor ABAP "Pensar, programar... él solo compila y ejecuta" |
#3
|
|||
|
|||
Hola jcflores , Si te refieres a si esta creado tanto en la ekko y en la EKPO, essta creado perfectamente. Un saludo |
#4
|
|||
|
|||
Creo que aqui
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'. te faltaria añadir wa_item-GR_IND = 'X'. Este es el flag de entrada de mercancias |
#5
|
|||
|
|||
Gracias Ballan,
Era lo que me faltaba. El problema que tengo ahora es que me coge todo perfectamente, me crea el pedido perfecto y todo pero el PRECIO NETO en la bapi NET_PRICE me lo graba a 0. Sabeis si es por algo problema de la BAPI ya que cuando lo devuelve es cuando lo pierde. Muchas gracias |
#6
|
|||
|
|||
Bapi_po_create1
Seguramente el precio lo esta tomando del registro info y debe estar en 0 para evitar esto usa el campo PO_PRICE de la estructura de itmes con el valor 1 0 2 dependiendo que quieras con eso toma el precio que tu le indiques en NETPR
PO_PRICE Transferencia de precio: 1 = Bruto, 2 = Neto |
Herramientas | Buscar en Tema |
Desplegado | |
|
|