cancel
Showing results for 
Search instead for 
Did you mean: 

Procedimiento de autorización con consulta de usuario

Former Member
0 Kudos

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.

Accepted Solutions (1)

Accepted Solutions (1)

agustin_marcoscividanes
Active Contributor
0 Kudos

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

Answers (2)

Answers (2)

0 Kudos

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

Former Member
0 Kudos

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.

felipe_loyolarodriguez
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Por transaction notification puedo informar Error o No Error, pero hasta donde yo sé no podré disparar el proceso de autorizaciones. Creo que no va a quedar otra que hacer por SDK.

Gracias por tu ayuda.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Estimado, no es disparar el procedimiento con el TN, mas bien obligar al usuario a marcar un campo y que ese campo dispare la aprobacion cuando se cumplan ciertas reglas.

Atte.