Avalados por :

Cómo activar Stored Procedures al crear un documento preliminar antes de la autorización

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Estimados,

Tengo la siguiente situación:

Se crearon (2) SP transactions en el documento de entrada de mercancías (inventario/operaciones de stock) para validar que se complete el campo de número de referencia (OING, Ref2) y que se coloquen 2 caracteres específicos como parte de la referencia. También se ha creado un procedimiento de autorización donde el modelo está basado en una consulta que valida el número de serie del documento de entrada de mercancía.

El problema es que los SP SOLO se activan cuando el documento ha sido autorizado, es decir, se presenta la solicitud de autorización sin validar si el campo de referencia ha sido completado correctamente. El usuario autorizador puede dar su autorización y cuando el documento preliminar se va a crear como definitivo, es cuando se activan los SP, lo cual es demasiado tarde porque una vez autorizado, no se pueden realizar cambios.

No he podido identificar dónde está el error, o cómo manejar esta situación para que los SP se activen al momento de crear el preliminar antes de la solicitud de autorización...

Cualquier comentario que pueda orientarme será muy apreciado.

JAMS

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Mauricio,

Validando tu publicación y siguiendo los pasos que mencionas, te comento que tengo un caso similar: tengo un procedimiento de autorización de ofertas de compras por el total del documento y dos notificaciones de transacción que validan los artículos y el centro de costos permitido por el usuario.

Este es mi código. Si observas, sigue la línea que mencionas; sin embargo, las transacciones no se ejecutan al crear el archivo borrador.

IF @object_type = '540000006' AND @transaction_type IN ('A','U')

Begin

Declarar @userIT int

Declarar @typeIT varchar(255)

set @userIT = (select T0.UserSign from ODRF T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del)

DECLARE cItems CURSOR FOR

SELECT T1.OcrCode FROM ODRF T0 INNER JOIN DRF1 T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE T0.DocEntry = @list_of_cols_val_tab_del

OPEN cItems

FETCH cItems INTO @typeIT

WHILE (@@FETCH_STATUS=0)

BEGIN

IF ((@userIT=170) and @typeIT not in ('x', 'x1', 'x2'))

BEGIN

SET @error = -3000

SET @error_message = 'Centro de costos ' + CAST(@typeIT as nvarchar) + ' no autorizado - Utilice un centro de costos permitido'

BREAK;

END

FETCH cItems INTO @typeIT

END

CLOSE cItems

DEALLOCATE cItems

END

Espero que puedas orientarme al respecto. Gracias.

Quedo a la espera de tu respuesta.

Saludos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡¡Problema resuelto!

Gracias Mauricio.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Gracias Mauricio, problema resuelto!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Prueba el código que tienes actualmente en funcionamiento.


      if @object_type in ('112') and @transaction_type in ('A')
      BEGIN
      .
      .
      .
      .
      .
      END
  

El número 112 corresponde a los DRAFTS.

Cambia las tablas actuales por la ODRF (para drafts) y agrega lo siguiente:


      AND ODRF.ObjType = 'el número correspondiente al tipo de objeto de tu documento preliminar (por ejemplo 67 para traspasos)'
  

De esta manera, le estás indicando a la transacción que valide cuando se esté creando un DRAFT de un Traspaso.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?