TRANSACCION MIRO
BAPI A UTILIZAR
BAPI_INCOMINGINVOICE_CREATE
CAMPOS:
Para el numero de factura BELNR en la tabla RBKP
TABLA: RBKP
Fecha de documento: BLDAT
Fe.contabilización BUDAT
Referencia: XBLNR
Sociedad: BUKRS
Emisor de factura: LIFNR
Moneda: WAERS
Tipo de cambio KURSF
Impte.bruto factura RMWWR
Cst.ind.adq.no pl. BEZNK
Importe de IVA WMWST1
Indicador de impuestos MWSKZ1
Condiciones de pago ZTERM
Días 1: ZBD1T
% dto.pronto pago 1 ZBD1P
Días 2 ZBD2T
Porcentaje DPP 2: ZBD2P
Días neto: ZBD3T
Impte.descuento: WSKTO
Factura: XRECH
Texto cab.documento: BKTXT
Release SAP: SAPRL
Calcular impuesto: XMWST
Anulado con: STBLG
Status doc.factura: RBSTAT
T/C para impuestos: TXKRS
Tp.bco.interl.: BVTYP
Asignación: ZUONR ESTE ES EL CAMPO QUE SE REALACIONA AL PEDIDO
Base p. plazo pago: ZFBDT
TABLA: Posición de documento factura recibida
Documento compras: EBELN ESTE ES EL CAMPO QUE SE REALACIONA AL PEDIDO
Posición: EBELP
Imputación actual: ZEKKN
Sociedad: BUKRS:
Centro: WERKS:
Importe: WRBTR
Indicador Debe/Haber: SHKZG
Para la pestaña impuestos: MWSKZ
Cantidad: MENGE
Unidad medida pedido: BSTME
Cantidad en UMPP: BPMNG
UnMedidaPrecioPedido: BPRME
Tipo de posición: PSTYP
Tipo de imputación: KNTTP
SALTO DE NUMEROS FI
TRANSACCION snro
OBJETO RF_BELEG
proyecto ecuador
BAPI
Los BAPIs son herramientas poderosas para la integración y carga de datos en SAP. Asegúrate de revisar la documentación oficial para entender todos los parámetros que necesitas al invocar estos BAPIs y adaptar tus datos correctamente.
En SAP, para cargar pedidos de compras, proveedores y clientes, se utilizan diferentes BAPIs (Business Application Programming Interfaces) que facilitan la transferencia de datos de manera estructurada y eficiente. A continuación, te comparto los BAPIs más relevantes que puedes utilizar para tu propósito:
Cargar Pedidos de Compras
BAPI_PO_CREATE1: Este BAPI se utiliza para crear pedidos de compra. Permite ingresar detalles como el proveedor, los materiales, cantidades, y otros datos relevantes para el pedido.
Cargar Proveedores
BAPI_VENDOR_CREATE: Este BAPI permite la creación de datos maestros de proveedores. Se pueden proporcionar detalles como el nombre del proveedor, dirección, datos bancarios y otros atributos necesarios.
Cargar Clientes
BAPI_CUSTOMER_CREATE: Utiliza este BAPI para crear datos maestros de clientes. Permite ingresar información como el nombre del cliente, información de contacto, y detalles de la cuenta.
Actualizar Información
BAPI_PO_CHANGE: Si necesitas modificar un pedido de compra existente.
BAPI_VENDOR_EDIT: Para actualizar la información de un proveedor existente.
BAPI_CUSTOMER_CHANGE: Para actualizar la información de un cliente existente.
Otros BAPIs Útiles
BAPI_INVOICEDOCUMENT_CREATE: Para crear documentos de factura relacionados con proveedores y compras.
BAPI_SALESORDER_CREATEFROMDAT2: Para crear órdenes de venta si estás trabajando con el módulo de ventas.
¿Cómo Utilizar un BAPI?
1. Definir Estructuras de Datos: Antes de invocar un BAPI, asegúrate de que los datos que necesitas cargar estén en las estructuras adecuadas requeridas por el BAPI.
2. Llamada al BAPI: Utiliza el código ABAP o un entorno de integración (como SAP PI/PO o SAP Cloud Platform Integration) para invocar el BAPI.
3. Manejo de Errores: Controla los mensajes de retorno para verificar si la carga fue exitosa o si hubo errores que debas resolver.
BAPIS
Especificación BAPI MIGO movimientos de mercancía
BAPI Z_BAPI_GOODS_MOVEMENT – Movimientos de Mercancía en SAP MM
Se requiere desarrollar una BAPI personalizada Z_BAPI_GOODS_MOVEMENT que permita ejecutar movimientos de mercancía desde sistemas externos. Esta funcionalidad replicará la lógica de la transacción MIGO, usando internamente la BAPI estándar BAPI_GOODSMVT_CREATE.
La BAPI personalizada debe:
- Recibir la información de cabecera y posiciones del movimiento.
- Validar los datos recibidos (material, centro, almacén, tipo de movimiento, etc.).
- Realizar el movimiento de mercancía en SAP.
- Retornar el documento de material generado y los mensajes de error/suceso.
Parámetros de Entrada:
Parámetro | Tipo | Descripción
---------|------|-------------
IT_HEADER | ZGOODS_HEADER | Cabecera del movimiento de mercancía
IT_ITEMS | ZGOODS_ITEMS_TT | Posiciones del movimiento
IV_TESTRUN | FLAG | Simulación del movimiento (‘X’ = test)
Validaciones Funcionales Juan Aljuri:
- Verificar que el material existe (MARA).
- Validar el tipo de movimiento (BWART).
- Confirmar que el centro (WERKS) y almacén (LGORT) son válidos.
- Validar que las cantidades y unidades sean consistentes.
- Validar si se requiere referencia a documento (pedido, orden, etc.).
Lógica de Negocio:
- El movimiento se procesará en tiempo real o en modo simulación.
- Se utilizará la BAPI estándar BAPI_GOODSMVT_CREATE.
- Los datos deben mapearse en estructuras internas GOODSMVT_HEADER, GOODSMVT_ITEM, y GOODSMVT_CODE.
Parametros de salida
Parámetro | Tipo | Descripción
---------|------|-------------
EV_MBLNR | MBLNR | Número del documento de material creado
ET_RETURN | BAPIRET2_TT | Tabla de mensajes de éxito o error
Tablas
MKPF | Cabecera de documento de material
MSEG | Posiciones del documento de material
MARA | Datos generales del material
T156 | Tipos de movimientos
T001W | Centros
T001L | Almacenes
Transacciones
MIGO – Movimiento de mercancías
- MB1A/MB1B/MB1C – Movimientos específicos
- SE37 – Pruebas de funciones
- SE11 – Diccionario de datos
Validaciones
- Uso de la BAPI estándar BAPI_GOODSMVT_CREATE.
- Ejecutar BAPI_TRANSACTION_COMMIT tras un movimiento exitoso.
- Incluir estructuras Z: ZGOODS_HEADER, ZGOODS_ITEMS.
- Permitir extensión futura para seriales o lotes. OJO en este caso se debe evaluar las series que se suban tal como esta en el archivo de carga
Roles y perfiles:
Debemos tener acceso para realizar movimientos de mercancía (objeto M_MSEG_BWA, M_MSEG_WMB, entre otros).
________________________________________________________________________
Especificación Materiales
Objetivo:
El objetivo es desarrollar un programa en ABAP que permita la creación de materiales en SAP de forma masiva o individual utilizando la BAPI BAPI_MATERIAL_SAVEDATA, a partir de un archivo de entrada (por ejemplo, Excel o archivo plano).
El programa recibirá como entrada un archivo que contiene la información necesaria para crear el material.
Campo
|
Descripción
|
Obligatorio
|
MATERIAL
|
Código del material (opcional)
|
No
|
MATL_TYPE
|
Tipo de material
|
Sí
|
IND_SECTOR
|
Sector industrial
|
Sí
|
DESCRIPTION
|
Descripción breve
|
Sí
|
BASE_UOM
|
Unidad de medida base
|
Sí
|
PLANT
|
Centro
|
Sí
|
STORAGE_LOCATION
|
Almacén
|
No
|
SALES_ORG
|
Organización de ventas
|
No
|
DIST_CHANNEL
|
Canal de distribución
|
No
|
1. Leer el archivo de entrada.
2. Validar que los campos obligatorios estén presentes.
3. Armar las estructuras requeridas por la BAPI: HEADDATA, CLIENTDATA, CLIENTDATAX, PLANTDATA, PLANTDATAX, SALESVIEW, SALESVIEWX.
4. Llamar a BAPI_MATERIAL_SAVEDATA.
5. Evaluar el retorno (tabla RETURN).
6. Confirmar con BAPI_TRANSACTION_COMMIT si no hay errores.
BAPI
Nombre: BAPI_MATERIAL_SAVEDATA
Parámetros clave:
· HEADDATA: Datos generales
· CLIENTDATA: Datos de nivel cliente
· CLIENTDATAX: Indicador de actualización para CLIENTDATA
· PLANTDATA, PLANTDATAX: Datos por centro
· SALESVIEW, SALESVIEWX: Datos de ventas
· RETURN: Mensajes de éxito/error
Validación
· Validar formato y existencia de la unidad de medida.
· Validar que el tipo de material sea válido.
· Validar centro y organización de ventas.
Salidas
El programa generará un log de resultados:
MATERIAL
|
STATUS
|
MENSAJE SAP
|
MAT001
|
Éxito
|
Material creado con éxito
|
MAT002
|
Error
|
Tipo de material inválido
|
Transacción Z
Se puede crear una transacción Z para ejecutar el programa
Código ABAP
DATA: ls_headdata TYPE bapimathead,
ls_clientdata TYPE bapi_mara,
ls_clientdatax TYPE bapi_marax,
ls_plantdata TYPE bapi_marc,
ls_plantdatax TYPE bapi_marcx,
lt_return TYPE TABLE OF bapiret2,
lv_material TYPE matnr.
ls_headdata-material = ''. " Dejar en blanco si se genera automáticamente
ls_headdata-matl_type = 'FERT'.
ls_headdata-ind_sector = 'M'.
ls_clientdata-base_uom = 'PC'.
ls_clientdata-matl_group = '001'.
ls_clientdatax-base_uom = 'X'.
ls_clientdatax-matl_group = 'X'.
ls_plantdata-plant = '1000'.
ls_plantdatax-plant = '1000'.
ls_plantdatax-pur_group = 'X'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = ls_headdata
clientdata = ls_clientdata
clientdatax = ls_clientdatax
plantdata = ls_plantdata
plantdatax = ls_plantdatax
IMPORTING
returnmessages = lt_return
materialnumber = lv_material.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
____________________________________________________________________
Especificación para BAPI
BAPI Z_BAPI_CREATE_PO – Creación de Pedidos de Compras
Objetivos:
Esta BAPI debe:
- Recibir datos del pedido en formato estructurado.
- Validar los datos recibidos.
- Mapear las estructuras necesarias para llamar internamente a BAPI_PO_CREATE1.
- Registrar el pedido de compras si los datos son correctos.
- Retornar el número del pedido creado o los errores encontrados.
Entrada de Datos (Parametros Import):
- IT_HEADER: Estructura con datos de cabecera del pedido.
- IT_ITEMS: Tabla interna con las posiciones del pedido.
- IT_PARTNERS: Información de participantes (proveedor, solicitante, etc.).
- IV_TESTRUN: Indicador para ejecución en modo test o real ('X' para test).
Configuración consultoría MM: desactivar estrategias de liberación en compras
Configuración consultoría SD:
Nota: para los traslados por medio de ventas se debe tener en cuenta en otra bapi de la VL02N desactivar el campo SRI para que no impacte el envío de este dato
Validaciones Funcionales de Juan Eljuri
- Verificar existencia del proveedor (LFA1).
- Validar que los materiales existan (MARA).
- Validar centro y almacén (T001W y T001L).
- Validar combinación de clase de documento, tipo de posición y organización de compras.
- Verificar datos de precio y cantidad por posición.
Verificar que no se duplique un pedido (por ejemplo, a través de un campo externo de referencia).
Respuesta de la BAPI
- La BAPI deberá permitir crear pedidos con múltiples posiciones.
- En caso de error, debe retornar todos los errores detectados sin crear el pedido.
Salida de datos:
- EV_EBELN: Número del pedido creado en SAP (EBELN).
- ET_RETURN: Tabla con mensajes de error o éxito (tipo BAPIRET2).
Tablas:
EKKO | Cabecera del pedido
EKPO | Posiciones del pedido
LFA1 | Datos generales del proveedor
MARA | Datos del material
T001W | Datos del centro
T001L | Datos del almacén
Consideraciones técnicas
- La BAPI utilizará internamente la BAPI_PO_CREATE1 con BAPI_TRANSACTION_COMMIT.
- Incluir lógica de rollback en caso de errores.
- Crear estructuras personalizadas ZBAPIPOHEADER, ZBAPIPOITEM, ZBAPIPOPARTNER según necesidad del negocio.
Validación
- Se debe poder crear un pedido con múltiples posiciones correctamente.
- En modo test, no se debe grabar ningún dato.
- En caso de error, los mensajes deben estar claros y alineados con los errores estándar de SAP.
- Validación contra duplicidad de pedidos.
- Ejecución en QAS validada por el usuario funcional.
___________________________________________________________________
Especificación
Objetivos:
- Crear proveedores con datos generales, de empresa y de compras.
- Modificar proveedores existentes, controlando los campos permitidos para cambios.
- Validación de datos antes del envío a la BAPI.
- Registro de logs de éxito o error.
BAPI a Utilizar
Se utilizarán las siguientes BAPIs estándar de SAP:
- BAPI_VENDOR_CREATE
- BAPI_VENDOR_CREATE_FROM_DATA
- BAPI_VENDOR_EDIT
- BAPI_TRANSACTION_COMMIT
- BAPI_TRANSACTION_ROLLBACK
- BAPI_VENDOR_CREATEFROMDATA1
- BAPI_VENDOR_CHANGE
Entrada Esperada
Datos Generales del Proveedor
Campo
|
Descripción
|
Obligatorio
|
NAME
|
Nombre del proveedor
|
Sí
|
COUNTRY
|
País
|
Sí
|
CITY
|
Ciudad
|
Sí
|
STREET
|
Calle
|
Sí
|
POSTAL_CODE
|
Código postal
|
Sí
|
TELEPHONE
|
Teléfono
|
No
|
EMAIL
|
Correo electrónico
|
No
|
5.2 Datos de la Sociedad
Campo
|
Descripción
|
Obligatorio
|
COMPANY_CODE
|
Código de sociedad
|
Sí
|
RECON_ACCOUNT
|
Cuenta de conciliación
|
Sí
|
PAYMENT_TERMS
|
Condiciones de pago
|
No
|
5.3 Datos de Compras
Campo
|
Descripción
|
Obligatorio
|
PURCH_ORG
|
Org. de compras
|
Sí
|
ORDER_CURRENCY
|
Moneda de pedidos
|
No
|
GR_IND
|
Indicador de verificación de recepción
|
No
|
Salida Esperada
- Proveedor creado exitosamente con número asignado.
- Proveedor modificado exitosamente con confirmación.
- Lista de errores en caso de datos inválidos, duplicados u otros problemas.
Estructura Técnica
Estructura de Datos de Entrada
ZESTR_VENDOR_INPUT
MANDT TYPE MANDT
LIFNR TYPE LIFNR
NAME TYPE NAME1_GP
COUNTRY TYPE LAND1
CITY TYPE ORT01
STREET TYPE STRAS
POSTAL_CODE TYPE PSTLZ
EMAIL TYPE AD_SMTPADR
COMPANY_CODE TYPE BUKRS
RECON_ACCOUNT TYPE AKONT
PURCH_ORG TYPE EKORG
Módulo de Función Custom (opcional)
ZBAPI_VENDOR_CREATE_OR_UPDATE
BAPI ENTREGAS Y REALACION CON REFERENCIA A PEDIDOS
BAPI_GOODSMVT_CREATE: Para registrar entrada de mercancías (GR).
PARA ABAP
Manejo de Errores
- Utilizar estructura RETURN de la BAPI.
- En caso de error, ejecutar BAPI_TRANSACTION_ROLLBACK.
- Registrar errores en tabla Z de log: ZLOG_VENDOR.
__________________________________________________________