Cómo Configurar Aprobaciones y Flujos de Autorización en SAP Business One - imagen destacada

Publicaciones

Cómo Configurar Aprobaciones y Flujos de Autorización en SAP Business One

Hector Pincheira

Hector Pincheira

CIO | CTO
Estrategia Digital & Innovación Tecnológica

Artículos

El pedido de compra que nadie autorizó (y que costó el presupuesto del trimestre)

Ocurre más de lo que las empresas admiten: un comprador genera una orden de compra por un monto significativo sin que nadie la revise. Un vendedor ofrece un descuento fuera de política y la factura sale sin control. Configurar aprobaciones en SAP Business One existe precisamente para prevenir estos escenarios, pero muchas empresas desconocen esta funcionalidad o la consideran «burocracia» hasta que sufren las consecuencias.

En este tutorial vas a aprender a configurar paso a paso los flujos de aprobación en SAP Business One: desde la activación del módulo hasta la creación de plantillas con múltiples etapas, umbrales de monto y reportes de seguimiento con queries para SQL Server y SAP HANA.

¿Qué documentos puedes controlar con aprobaciones en SAP Business One?

Documentos de compra: Solicitudes de compra, órdenes de compra, entradas de mercancía y facturas de proveedores. Controlan directamente cómo sale el dinero de la empresa. En consecuencia, son los más críticos de proteger.

Documentos de venta: Ofertas, órdenes de venta, entregas y facturas de cliente. Son útiles para controlar descuentos excesivos o condiciones fuera de política comercial.

Pagos: Pagos a proveedores y cheques. Representan la última línea de defensa antes de que el dinero salga. Por lo tanto, requieren un nivel de control especialmente riguroso.

Asientos manuales: Asientos contables directos que pueden tener impacto significativo en los estados financieros. Además, son los más difíciles de auditar si no tienen aprobación previa.

Paso 1: Activar los procedimientos de aprobación en SAP Business One

Ve a Administración → Inicialización del sistema → Autorizaciones generales. Activa la casilla «Procedimiento de aprobación» a nivel general. Sin embargo, esta activación solo habilita la funcionalidad: aún necesitas crear las plantillas que definen las reglas.

Es importante entender que la activación es irreversible en entornos productivos. Una vez activada, no se puede desactivar sin intervención directa en base de datos. Por lo tanto, planifica las plantillas antes de activar el módulo.

Paso 2: Definir las etapas de aprobación

Ve a Administración → Procedimientos de aprobación → Etapas de aprobación. Cada etapa define quién puede aprobar y cuántos aprobadores se necesitan.

Aprobador único: Un solo usuario autoriza el documento. Es la configuración más simple y adecuada para montos bajos o documentos de riesgo menor.

Aprobación múltiple secuencial: El documento pasa por varios niveles en orden. Además, cada nivel ve los comentarios del anterior, lo que facilita la trazabilidad.

Aprobación múltiple paralela: Varios aprobadores pueden actuar simultáneamente. El documento se aprueba cuando todos (o un número mínimo definido) dan su visto bueno. En consecuencia, el proceso es más rápido para documentos que requieren múltiples perspectivas.

Paso 3: Crear plantillas de aprobación

Las plantillas son el corazón del sistema. Ve a Administración → Procedimientos de aprobación → Plantillas de aprobación. Cada plantilla define qué tipo de documento requiere aprobación y bajo qué condiciones.

Condiciones por monto: Define umbrales que activan la aprobación. Por ejemplo, compras menores a $1.000 no requieren aprobación, entre $1.000 y $10.000 requieren un nivel, y superiores a $10.000 requieren dos niveles.

Condiciones por usuario: Ciertos usuarios pueden requerir aprobación independientemente del monto. Es útil para empleados nuevos o áreas con historial de errores.

Condiciones por descuento: Activa la aprobación cuando el descuento otorgado supera un porcentaje definido. Por lo tanto, proteges la política de precios sin bloquear las ventas normales.

Paso 4: Gestionar aprobaciones en el día a día

Los documentos pendientes de aprobación aparecen en la bandeja del aprobador en Administración → Procedimientos de aprobación → Decisión de aprobación. El aprobador puede aprobar, rechazar o devolver el documento con comentarios.

Para que el proceso funcione correctamente, configura las alertas por email para notificar al aprobador cuando tiene documentos pendientes. Sin embargo, evita enviar demasiadas notificaciones porque generan fatiga y los aprobadores empiezan a aprobar sin revisar.

Además, define políticas de tiempo máximo de respuesta. Un documento que lleva 48 horas sin aprobación debería escalar al nivel siguiente o al gerente del área.

Query de monitoreo: documentos pendientes de aprobación

Esta query muestra todos los documentos que están esperando aprobación, quién debe aprobarlos y hace cuánto tiempo están pendientes. Es una herramienta esencial para el seguimiento diario.

Versión SQL Server

SELECT
    T0.WddCode               AS 'ID Aprobación',
    CASE T0.ObjType
        WHEN '22' THEN 'Orden de Compra'
        WHEN '23' THEN 'Oferta de Compra'
        WHEN '18' THEN 'Factura de Compra'
        WHEN '17' THEN 'Orden de Venta'
        WHEN '13' THEN 'Factura de Venta'
        WHEN '46' THEN 'Pago Emitido'
        WHEN '204' THEN 'Solicitud Compra'
        ELSE T0.ObjType
    END                       AS 'Tipo Documento',
    T0.DocEntry              AS 'DocEntry',
    T1.USER_CODE             AS 'Solicitante',
    T0.CreateDate            AS 'Fecha Solicitud',
    DATEDIFF(DAY, T0.CreateDate, GETDATE()) AS 'Días Pendiente',
    CASE T0.Status
        WHEN 'W' THEN 'Esperando'
        WHEN 'Y' THEN 'Aprobado'
        WHEN 'N' THEN 'Rechazado'
    END                       AS 'Estado',
    T0.Remarks               AS 'Observaciones'
FROM OWDD T0
INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign
WHERE T0.Status = 'W'
ORDER BY T0.CreateDate ASC

Versión SAP HANA

SELECT
    T0."WddCode"               AS "ID Aprobación",
    CASE T0."ObjType"
        WHEN '22' THEN 'Orden de Compra'
        WHEN '23' THEN 'Oferta de Compra'
        WHEN '18' THEN 'Factura de Compra'
        WHEN '17' THEN 'Orden de Venta'
        WHEN '13' THEN 'Factura de Venta'
        WHEN '46' THEN 'Pago Emitido'
        WHEN '204' THEN 'Solicitud Compra'
        ELSE T0."ObjType"
    END                       AS "Tipo Documento",
    T0."DocEntry"              AS "DocEntry",
    T1."USER_CODE"             AS "Solicitante",
    T0."CreateDate"            AS "Fecha Solicitud",
    DAYS_BETWEEN(T0."CreateDate", CURRENT_DATE) AS "Días Pendiente",
    CASE T0."Status"
        WHEN 'W' THEN 'Esperando'
        WHEN 'Y' THEN 'Aprobado'
        WHEN 'N' THEN 'Rechazado'
    END                       AS "Estado",
    T0."Remarks"               AS "Observaciones"
FROM "OWDD" T0
INNER JOIN "OUSR" T1 ON T1."USERID" = T0."UserSign"
WHERE T0."Status" = 'W'
ORDER BY T0."CreateDate" ASC

Si la columna «Días Pendiente» muestra valores altos, tienes un cuello de botella en tu proceso de aprobación. Además, puedes filtrar por tipo de documento para identificar qué área está generando más retrasos.

Query avanzada: historial de aprobadores y tiempos de respuesta

Esta query analiza el comportamiento de los aprobadores: cuántas aprobaciones han procesado, su tiempo promedio de respuesta y su tasa de rechazo. Es fundamental para optimizar el flujo.

Versión SQL Server

SELECT
    T1.USER_CODE              AS 'Aprobador',
    COUNT(*)                  AS 'Total Decisiones',
    COUNT(CASE WHEN T0.Status = 'Y' THEN 1 END) AS 'Aprobados',
    COUNT(CASE WHEN T0.Status = 'N' THEN 1 END) AS 'Rechazados',
    CAST(COUNT(CASE WHEN T0.Status = 'N' THEN 1 END) * 100.0
        / NULLIF(COUNT(*), 0) AS DECIMAL(5,2)) AS '% Rechazo',
    CAST(AVG(DATEDIFF(HOUR, T0.CreateDate, T0.UpdateDate))
        AS DECIMAL(10,1))     AS 'Horas Promedio Respuesta',
    COUNT(CASE WHEN DATEDIFF(DAY, T0.CreateDate, T0.UpdateDate) > 2 THEN 1 END)
                              AS 'Tardías (+48h)'
FROM OWDD T0
INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign
WHERE T0.Status IN ('Y', 'N')
  AND T0.CreateDate >= DATEADD(MONTH, -3, GETDATE())
GROUP BY T1.USER_CODE
ORDER BY COUNT(*) DESC

Versión SAP HANA

SELECT
    T1."USER_CODE"              AS "Aprobador",
    COUNT(*)                    AS "Total Decisiones",
    COUNT(CASE WHEN T0."Status" = 'Y' THEN 1 END) AS "Aprobados",
    COUNT(CASE WHEN T0."Status" = 'N' THEN 1 END) AS "Rechazados",
    CAST(COUNT(CASE WHEN T0."Status" = 'N' THEN 1 END) * 100.0
        / NULLIF(COUNT(*), 0) AS DECIMAL(5,2)) AS "% Rechazo",
    CAST(AVG(SECONDS_BETWEEN(T0."CreateDate", T0."UpdateDate") / 3600.0)
        AS DECIMAL(10,1))     AS "Horas Promedio Respuesta",
    COUNT(CASE WHEN DAYS_BETWEEN(T0."CreateDate", T0."UpdateDate") > 2 THEN 1 END)
                              AS "Tardías (+48h)"
FROM "OWDD" T0
INNER JOIN "OUSR" T1 ON T1."USERID" = T0."UserSign"
WHERE T0."Status" IN ('Y', 'N')
  AND T0."CreateDate" >= ADD_MONTHS(CURRENT_DATE, -3)
GROUP BY T1."USER_CODE"
ORDER BY COUNT(*) DESC

Nota que en SAP HANA se usa SECONDS_BETWEEN dividido por 3600 para obtener horas, ya que no existe un equivalente directo de DATEDIFF(HOUR, ...). Además, ADD_MONTHS reemplaza a DATEADD. En consecuencia, ambas versiones entregan exactamente la misma información.

Buenas prácticas para configurar aprobaciones en SAP Business One

No sobre-controles: Si todo requiere aprobación, nada se aprueba a tiempo. Define umbrales razonables que protejan sin paralizar la operación. Por lo tanto, comienza con los documentos de mayor impacto financiero.

Define sustitutos: Cada aprobador debe tener un suplente configurado para cubrir vacaciones y ausencias. Sin embargo, el suplente debe tener el mismo nivel de autoridad y conocimiento para aprobar.

Documenta las políticas: Las reglas de aprobación deben estar documentadas en una política escrita, no solo en el sistema. Además, el equipo debe entender por qué existen las aprobaciones, no solo cómo usarlas.

Revisa los umbrales periódicamente: Los montos que eran significativos hace dos años pueden no serlo hoy. Actualiza los umbrales al menos anualmente o cuando cambien las condiciones del negocio.

Conclusión: el control que protege sin paralizar

Configurar aprobaciones en SAP Business One correctamente es encontrar el equilibrio entre control y agilidad. Un sistema de aprobaciones bien diseñado protege los recursos de la empresa sin convertirse en un obstáculo para la operación diaria.

Las queries de monitoreo presentadas, disponibles tanto para SQL Server como para SAP HANA, te dan visibilidad sobre los cuellos de botella y el comportamiento de los aprobadores. En consecuencia, puedes ajustar el proceso continuamente basándote en datos reales en lugar de percepciones.

¿Tu empresa tiene procedimientos de aprobación activos o sigue operando en modo «confianza total»? Si es lo segundo, estos pasos son tu punto de partida para construir un sistema de control que funcione.

Mas Leídos

Pasajero mira un tablero de salidas en un aeropuerto, metafora de la dependencia de proveedores de IA
El Calendario Ajeno: la Dependencia de Proveedores de IA que Nadie Negocia
SAP Business One Procedimientos Almacenados: Reportes Reutilizables - imagen destacada del tutorial
SAP Business One Procedimientos Almacenados: Reportes Reutilizables
SAP Business One Pedidos Pendientes - imagen destacada del tutorial
SAP Business One Pedidos Pendientes: Query SQL para Controlar tu Backlog
QlikSense análisis de rendimiento: descomposición de la merma
QlikSense Análisis de Rendimiento: la Merma que Nadie Está Mirando
QlikSense dashboard móvil: las tres pantallas
QlikSense Dashboard Móvil: las Tres Pantallas que Sí se Miran
SAP Business One Depósitos Bancarios - imagen destacada del tutorial
SAP Business One Depósitos Bancarios: Gestiona Cheques y Cobros Paso a Paso

ARTICULOS RELACIONADOS