Autorización para Emisión de Producción según Alm

Estimados, buenas tardes.
Espero que se encuentren muy bien.

Estoy trabajando en la creación de un modelo de autorización en SAP Business One (HANA) para evitar que nuestros colaboradores realicen emisiones de producción desde ciertos almacenes.

La diferencia que puedo utilizar entre una Salida de mercancía y una Emisión para producción, a nivel de base de datos, es que en el campo OIGE."JrnlMemo" aparece el texto ‘Emisión para producción’.

Mi objetivo es que, cuando el documento sea una emisión para producción, el sistema valide el almacén de las líneas y solicite autorización si no corresponde a los permitidos.

Hasta ahora, lo funcional que tengo es la siguiente lógica para validar el almacén en la línea activa:

SELECT CASE
         WHEN $[$13.15.1] = 'BOD1' OR $[$13.15.1] = 'BOD2'
         THEN 'True'
         ELSE 'False'
             END
FROM DUMMY;

Usamos SAP B1 BD HANA.
¿Alguien ha implementado algo similar que combine la condición del memo (OIGE."JrnlMemo") con la validación del almacén?
La idea es que solo se permitan, por ejemplo, BOD3 y BOD5 para emisiones de producción, y que en cualquier otro caso se dispare la autorización.

¡Agradezco cualquier orientación o ejemplo que puedan compartir!

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot AI de Consultoria-SAP denominado “CSAPBOT” usando tecnología de IA -inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales y usuarios del sistema podrían verificar la información. ¿Te animas a hacerlo? ¿Aceptas el reto? Puedes responder este debate si sigue abierto!

Si quieres aprender más sobre nuestros sistemas con AI, te esperamos en este artículo.


Gracias por compartir tu escenario con tanto detalle, es muy claro lo que buscas lograr en SAP Business One sobre HANA: implementar un modelo de autorización condicionado para evitar emisiones de producción desde almacenes no autorizados.

ADVERTENCIA

Modificar o intervenir con lógica de validación directamente sobre documentos de inventario puede provocar bloqueos o errores si no se maneja correctamente. Es fundamental probar en un ambiente de desarrollo antes de aplicar cualquier validación en productivo, ya que un error podría impedir operaciones críticas del sistema.


Objetivo técnico

Validar que:

  • Si se trata de un documento de tipo “Emisión para producción” (detectado por OIGE."JrnlMemo")

  • Y si el almacén de la línea activa NO es uno de los permitidos (por ejemplo, BOD3 y BOD5)

  • Entonces se dispare una solicitud de autorización

Solución propuesta

En SAP Business One, para realizar validaciones de este tipo dentro del sistema de autorizaciones, puedes usar una Consulta de Autorización (Query Approval) con lógica SQL que devuelva 'True' o 'False'.

El punto clave es cómo capturar el valor del JrnlMemo en el momento de creación del documento, ya que ese campo se rellena por el sistema en algunos escenarios, y no necesariamente es visible desde los formularios de usuario en tiempo real.

Dado que estás validando en tiempo de entrada de datos, puedes utilizar el valor del formulario ($[$......]) en conjunto con el almacén.

Consulta sugerida

SELECT 
  CASE 
    WHEN $[$13.15.1] IN ('BOD3', 'BOD5') 
         AND $[$38.1.0] = '59'  -- Código de transacción "Emisión para producción"
    THEN 'False' -- No requiere autorización
    ELSE 'True'  -- Solicita autorización
  END
FROM DUMMY;

Explicación:

  • $[$13.15.1] es el código del almacén desde la línea del documento.

  • $[$38.1.0] representa el tipo de documento. El valor '59' representa “Emisión para producción” en la tabla OIGE. Puedes confirmar esto revisando los valores en tu sistema.

  • Si la transacción es una emisión para producción y el almacén NO es BOD3 o BOD5, entonces se requiere autorización.

Si tu sistema no permite capturar el código de documento directamente con $[$38.1.0], puedes considerar una combinación con validación del título del formulario o mediante un campo UDF si fuese necesario.


Alternativas y buenas prácticas (Consultoria-SAP)

  • También podrías considerar usar validaciones en Transaction Notification para escenarios más complejos. Pero cuidado: esto actúa a nivel de base de datos y no dispara autorizaciones, solo puede bloquear.

  • Para mayor control y trazabilidad, podrías crear un UDF en el documento que indique el tipo de operación (por ejemplo: “Es emisión para producción”) y condicionar la autorización a ese campo, con actualización automática vía SP_TransactionNotification o script B1IF si usas integraciones.


Resumen Consultoria-SAP — En SAP Business One (HANA), puedes usar una consulta de autorización que combine validación de almacén por línea y tipo de operación, utilizando variables del formulario. Esto permite controlar emisiones de producción según el almacén de origen, apoyando los procesos de control logístico en módulos de INV y PROD.

¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!

Hola @Benru, considera lo siguiente:

En la tabla IGE1 (líneas de la salida):

  • BaseType = 202Salida por Orden de Producción

  • BaseType = -1Salida manual (sin base)

Saludos.

Buen día estimado, muchas gracias por esta información tan útil.

Cordialmente,