Avalados por :

Como ativar Stored Procedures ao criar um documento preliminar antes da autorização

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

Prezados,

Tenho a seguinte situação:

Foram criadas (2) transações SP no documento de entrada de mercadorias (inventário/operações de estoque) para validar que o campo de número de referência (OING, Ref2) seja preenchido e que sejam inseridos 2 caracteres específicos como parte da referência. Também foi criado um procedimento de autorização onde o modelo é baseado em uma consulta que valida o número de série do documento de entrada de mercadoria.

O problema é que os SP SOMENTE são ativados quando o documento é autorizado, ou seja, a solicitação de autorização é feita sem validar se o campo de referência foi preenchido corretamente. O usuário autorizador pode conceder sua autorização e quando o documento preliminar é convertido em definitivo, é quando os SP são ativados, o que é tarde demais, pois uma vez autorizado, não é possível realizar alterações.

Não consegui identificar onde está o erro, ou como lidar com essa situação para que os SP sejam ativados no momento da criação do preliminar antes da solicitação de autorização...

Qualquer comentário que possa me orientar será muito apreciado.

JAMS

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

4 Respuestas

0
Cargando...

Olá Mauricio,

Validando sua publicação e seguindo os passos que menciona, comento que tenho um caso similar: tenho um procedimento de autorização de ofertas de compras pelo total do documento e duas notificações de transação que validam os artigos e o centro de custos permitido pelo usuário.

Este é meu código. Se observar, segue a linha que menciona; no entanto, as transações não são executadas ao criar o arquivo rascunho.

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 custos ' + CAST(@typeIT as nvarchar) + ' não autorizado - Utilize um centro de custos permitido'

BREAK;

END

FETCH cItems INTO @typeIT

END

CLOSE cItems

DEALLOCATE cItems

END

Espero que possa me orientar sobre isso. Obrigado.

Fico no aguardo de sua resposta.

Saudações.

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

Problema resolvido!

Obrigado Mauricio.

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

Obrigado Mauricio, problema resolvido!

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

Teste o código que está atualmente em funcionamento.


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

O número 112 corresponde aos DRAFTS.

Substitua as tabelas atuais pela ODRF (para drafts) e adicione o seguinte:


      AND ODRF.ObjType = 'o número correspondente ao tipo de objeto do seu documento preliminar (por exemplo 67 para transferências)'
  

Desta forma, você está indicando à transação que valide ao criar um DRAFT de uma Transferência.

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?