MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #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
  #2  
Viejo 17/06/09, 15:21:16
jcflores jcflores is offline
Member
 
Fecha de Ingreso: mar 2006
Localización: Santiago de Chile
Mensajes: 55
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"
Responder Con Cita
  #3  
Viejo 17/06/09, 15:29:23
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62

Hola jcflores ,

Si te refieres a si esta creado tanto en la ekko y en la EKPO, essta creado perfectamente.

Un saludo
Responder Con Cita
  #4  
Viejo 17/06/09, 17:06:54
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
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
Responder Con Cita
  #5  
Viejo 18/06/09, 07:42:18
Paola79 Paola79 is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 62
Exclamation

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
Responder Con Cita
  #6  
Viejo 18/06/09, 18:28:53
rboswaldo rboswaldo is offline
Junior Member
 
Fecha de Ingreso: may 2007
Mensajes: 9
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 16:19:16.


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