on 04-16-2015 10:01 AM
Tengo que crear un procedimiento de autorización que compruebe que en un documento "Entrada de mercancía (Pedido)" no introducen más unidades en los artículos que las que había original en el "Pedido de compra", la consulta de usuario sería algo así.
select distinct 'TRUE' from opdn t0
left join pdn1 t1 on
t0.docentry = t1.docentry
left join por1 t2 on
t1.baseentry = t2.docentry and
t1.baseline = t2.linenum
where t0.docnum=$[$8.0.0] and t1.quantity>isnull(t2.openqty,0)
El problema es que la consulta se ejecuta sobre el mismo documento, que no existe en estas tablas en el momento de lanzarse el procedimiento de autorización, por eso nunca devuelve valores.
¿Alguna idea de cómo puedo hacer esto?. He pensado meterlo en el transaction notification, pero de esa manera sólo devolvería un error, y no una solicitud de autorización, que es lo que realmente necesito.
Saludos y gracias de antemano.
Hola
yo probaría con SDK.
1. Al crear el documento ejecutaría la consulta de aprobación.
2. Si el documento debe grabarse como tal, dejo el flujo normal de SBO.
3. Si el documento debe aprobarse, lo guardo como borrador y lo añado al procedimiento de aprobación (si se puede desde SDK).
Descarto los procedimientos almacenados porque el documento ya estaría creado y no puedes cambiar los datos en su ejecución.
Revisa el SDK a ver si se puede acceder a un proceso de aprobación y añadir documentos.
Un saludo
Agustín Marcos Cividanes
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Revisa esta consulta,
SELECT DISTINCT 'TRUE'
FROM OQUT T0
WHERE
$[$38.43.0] = 23 and
T0.DocEntry = $[$38.45.0] and
T0.DocTotal != $[ORDR.DocTotal]
Esta esta desde un pedido de cliente, comparando con una oferta de clientes.
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Esto serviría para comparar los totales de los documentos, pero no para hacer una comparativa línea a línea. La premisa es que el usuario de almacén debe poder dar entrada a un número de unidades igual o menor a las que había originalmente en el pedido, si el número es superior, debe solicitar autorización.
Gracias por tu ayuda.
Buenas tardes
Es imposible por procedimiento de autorizacion o por busqueda formateada recorrer las lineas de los documentos, no puedes hacer un, sum por ejemplo.
Para este tipo de validaciones, la manera mas facil es colocar un campo a nivel de usuario, llamalo "Autorizacion" y colocas 2 valores "si" y "no".
Acto seguido, si el campo = "si", ejecuta tu proceso de autorizacion.
Para obligar al usuario a colocar el campo = si, usa el transaction notification, valida las cantidades por ahi y si supera las cantidades que deseas debe colocar el campo = si y con eso pasará por la autorizacion,
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.