Avalados por :

Solución para crear órdenes de compra con la BAPI_PO_CREATE1 y ME51

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 66 Vistas
0
Cargando...

Hola Seniors,

Tengo un requisito sobre la creación de órdenes de compra. En este proceso, estoy utilizando la BAPI llamada "BAPI_PO_CREATE1". He pasado todos los campos, pero al depurar y revisar las tablas internas, no pude encontrar ciertos registros. Incluso depuré "bapiret2" y vi un error que decía "Todos los campos obligatorios faltan". Incluso creé una PO en ME51 y descubrí los campos obligatorios, pero en vano. BAPIRET2 sigue diciendo que faltan algunos campos obligatorios más. Necesito saber cuáles son todos los campos obligatorios para crear una orden de compra usando TCODE - ME51.

Su respuesta es muy esperada y recompensada.

Gracias y saludos,

MARKIV

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hi ,

Prueba esto,

INFORME ZTEST_BAPI .

*- Declaraciones relacionadas con BAPI

DATA : g_pohdr TYPE bapimepoheader,

g_pohdrx TYPE bapimepoheaderx,

gt_poitem TYPE TABLE OF bapimepoitem,

gt_poitemx TYPE TABLE OF bapimepoitemx,

gt_posched TYPE TABLE OF bapimeposchedule,

gt_poschedx TYPE TABLE OF bapimeposchedulx,

gt_poacct TYPE TABLE OF bapimepoaccount,

gt_poacctx TYPE TABLE OF bapimepoaccountx,

gt_poservice TYPE TABLE OF bapiesllc,

gt_posrvacc TYPE TABLE OF bapiesklc,

gt_return TYPE TABLE OF bapiret2.

realizar prepare_header.

REALIZAR prepare_items.

REALIZAR prepare_schedule.

realizar create_po.

&----


*& Form prepare_header

&----


  • Configurar estructura de encabezado

----


FORM prepare_header.

g_pohdr-comp_code = '2000'.

g_pohdrx-comp_code = 'X'.

  • configurar tipo de documento

g_pohdr-doc_type = 'NB'.

g_pohdrx-doc_type = 'X'.

g_pohdr-vendor = '0008000330'.

g_pohdrx-vendor = 'X'.

g_pohdr-langu = sy-langu.

g_pohdrx-langu = 'X'.

g_pohdr-purch_org = 'BA01'.

g_pohdrx-purch_org = 'X'.

g_pohdr-pur_group = '800'.

g_pohdrx-pur_group = 'X'.

g_pohdr-currency = 'USD'.

g_pohdrx-currency = 'X'.

ENDFORM. " prepare_header

&----


*& Form prepare_items

&----


  • Configurar valores de ítems

----


FORM prepare_items.

DATA : ls_poitem TYPE bapimepoitem,

ls_poitemx TYPE bapimepoitemx.

ls_poitem-po_item = '00010'.

ls_poitemx-po_item = '00010'.

ls_poitemx-po_itemx = 'X'.

ls_poitem-short_text = 'ABSORBER,SHOCK:PALLETIZER'.

ls_poitemx-short_text = 'X'.

ls_poitem-material = '000000000001070062'.

ls_poitemx-material = 'X'.

ls_poitem-vend_mat = 'xyz'.

ls_poitemx-vend_mat = 'X'.

ls_poitem-quantity = '100'.

ls_poitemx-quantity = 'X'.

ls_poitem-po_unit = 'EA'.

ls_poitemx-po_unit = 'X'.

ls_poitem-po_unit_iso = 'EA'.

ls_poitemx-po_unit_iso = 'X'.

ls_poitem-net_price = '6.32'.

ls_poitemx-net_price = 'X'.

ls_poitem-price_unit = '1'.

ls_poitemx-price_unit = 'X'.

ls_poitem-item_cat = 'D'.

ls_poitemx-item_cat = 'X'.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola

SPRO => Gestión de materiales => Gestión de servicios externos => Definir diseño de pantalla => ME51 => Campos de precio y valor => Precio bruto establecido como obligatorio. Funcionará.

<b>Tendrías que añadir una subpantalla adicional a tu transacción a través de una salida de pantalla.

Primero crearías una subpantalla con todos los campos que deseas incluir, incluyendo un PAI y PBO.

Luego encontrarías la salida de pantalla apropiada para ello. Para ME51/52/53 aplican las siguientes salidas...

AMPL0001 Subpantalla de usuario para datos adicionales en AMPL

LMEDR001 Mejoras al programa de impresión

LMELA002 Adoptar número de lote de la notificación de envío al contabilizar una GR

LMELA010 Notificación de envío entrante: Transferir datos de ítems desde IDOC

LMEQR001 Salida de usuario para determinación de fuente

LMEXF001 Condiciones en documentos de compra sin recepción de factura

LWSUS001 Determinación de fuente específica del cliente en Retail

M06B0001 Determinación de rol para liberación de solicitud de compra

M06B0002 Cambios en estructura de comunicación para liberación de solicitud de compra

M06B0003 Rango de número y número de documento

M06B0004 Rango de número y número de documento

M06B0005 Cambios en estructura de comunicación para liberación general de solicitudes

M06E0004 Cambios en estructura de comunicación para documento de compra liberado

M06E0005 Determinación de rol para liberación de documentos de compra

ME590001 Agrupación de requisiciones para división de PO en ME59

MEETA001 Definir tipo de línea de programación (acumulación, req. inmediata, vista previa)

MEFLD004 Determinar fecha de entrega más temprana para verificación con GR (solo PO)

MELAB001 Programar generación de pronósticos de entrega: Implementación de programación

MEQUERY1 Mejora a vista de documento ME21N/ME51N

MEVME001 Cálculo de cantidad predeterminado de WE y tolerancia de sobre/subentrega

MM06E001 Salidas de usuario para documentos de compra entrantes y salientes de EDI

MM06E003 Rango de número y número de documento

MM06E004 Controlar pantallas de datos de importación en orden de compra

MM06E005 Campos de cliente en documento de compra

MM06E007 Cambiar documento para solicitudes al convertirse en PO

MM06E008 Monitoreo de valor objetivo de contr. en caso de órdenes de liberación

MM06E009 Textos relevantes para indicador de "Existen textos"

MM06E010 Selección de campo para dirección de proveedor

MM06E011 Activar bloqueo de PReq

MMAL0001 Distribución de lista de origen ALE: Procesamiento saliente

MMAL0002 Distribución de lista de origen ALE: Procesamiento entrante

MMAL0003 Distribución de registro de info de compra ALE: Procesamiento saliente

MMAL0004 Distribución de registro de info de compra ALE: Procesamiento entrante

MMDA0001 Direcciones de entrega predeterminadas

MMFAB001 Salida de usuario para generación de orden de liberación

MRFLB001 Control de ítems para orden de liberación de contrato

Tendrías que verificar cuál aplica a tu requerimiento y luego codificar en consecuencia.

</b>

Recompensar todas las respuestas útiles

Saludos

Pavan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

hi ,

Funcionalidad

El módulo de función BAPI_PO_CREATE1 te permite crear órdenes de compra. El BAPI utiliza la tecnología detrás de la transacción de orden de compra Enjoy (ME21N).

Alternativamente, está disponible el tipo de IDoc PORDCR1. Los datos de este IDoc automáticamente completan los parámetros de interfaz del módulo de función BAPI_PO_CREATE1.

Detalles de la funcionalidad

Autorización

Los siguientes objetos de autorización se verifican al crear una orden de compra Enjoy (actividad 01):

M_BEST_BSA (tipo de documento en la PO)

M_BEST_EKG (grupo de compras en la PO)

M_BEST_EKO (organización de compras en la PO)

M_BEST_WRK (planta en la PO)

Adopción de control de valores de campo a través de X bar

Para la mayoría de las tablas, puedes determinar a través de tus propios parámetros en la X bar asociada en cada caso (por ejemplo, PoItemX) si los campos deben establecerse como iniciales, insertar valores a través de la interfaz o adoptar valores predeterminados (por ejemplo, desde la parametrización o registros maestros) (por ejemplo, no es obligatorio adoptar el grupo de material de una solicitud de compra subyacente, puedes cambiarlo con el BAPI).

Transferencia

Datos de cabecera

Los datos de cabecera de la orden de compra Enjoy se transfieren en la tabla PoHeader.

Datos de ítems

Los datos de ítems de la orden de compra Enjoy se almacenan en la tabla PoItem (datos generales de ítems). Las líneas de programación de entrega se almacenan en la tabla PoSchedule.

Utiliza la tabla PoAccount para especificar la información de asignación de cuentas. Si se han especificado asignaciones de cuentas para servicios y límites, muestra la línea de asignación de cuentas relevante en PoAccount en la tabla PoSrvAccessValues a través del número de paquete del servicio o el límite.

Servicios y límites

Se pueden especificar servicios, límites gratuitos y límites con referencia a contrato en las tablas PoServices, PoLimits y PoContractLimits.

Condiciones

Las condiciones se transfieren en la tabla PoCond; las condiciones de cabecera en la tabla PoCondHeader. La determinación del precio se reinicia a través del parámetro CALCTYPE en la tabla PoItem.

Proveedor y dirección de entrega

La dirección del proveedor se puede especificar individualmente en la tabla PoAddrVendor; la dirección de entrega en la tabla PoAddrDelivery. Si no haces ninguna especificación individual, los campos se completarán a través de la facilidad de gestión de direcciones central.

Nota

En este método, se aplican las siguientes restricciones con respecto a las direcciones:

Las direcciones solo se pueden crear con este método, no se pueden cambiar. Solo puedes cambiar los datos de dirección con el método BAPI_ADDRESSORG_CHANGE.

Al crear direcciones, no se verifican por el método. Por lo tanto, una orden de compra Enjoy puede contener datos de dirección incorrectos.

Roles de socios

Los socios se pueden mantener individualmente a través de la tabla PoPartner (con la excepción del rol de socio "proveedor").

Datos de importación/exportación

Los datos de importación/exportación se pueden especificar por ítem en la tabla PoExpImpItem. Los datos de comercio exterior solo se pueden transferir como datos predeterminados para nuevos ítems.

Textos

Los textos de cabecera e ítems se pueden transferir en las tablas PoTextHeader y PoTextItem. Los textos para servicios se importan en la tabla PoServicesText.

Gestión de versiones

Puedes hacer uso de la facilidad de Gestión de versiones a través de la tabla AllVersions.

Devolución

El número de PO se devuelve en el parámetro ExpPurchaseOrder. Además, toda la información excepto las tablas de servicios y de importación/exportación se coloca en las estructuras de salida.

Mensajes de devolución

Los mensajes se devuelven en el parámetro Return. Esto también contiene información sobre si los datos de la interfaz se han completado incorrectamente o probablemente incorrectamente (verificación de interfaz heurística). Si se ha creado exitosamente una PO, el número de PO también se coloca en la tabla de devolución con el mensaje correspondiente.

Ejemplo

Ejemplo de población de la interfaz BAPI en el Constructor de funciones

Parámetro: POHEADER

COMP_CODE = 1000

DOC_TYPE = NB

ITEM_INTVL = 00001

VENDOR = 0000001000

PMNT

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

por favor, revisa el siguiente enlace, podría ayudarte

********** por favor, otorga puntos si la información te resulta útil ***********

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?