Control para editar lista de materiales [TN]

Buenos días estimados.

Les quería consultar acerca de un control que deseo realizar a nivel del TransactionNotification. El mismo conciste en no dejar actualizar una lista de materiales mientras un campo de usuario este con la opción ‘No’. Mi idea es ocultar ese campo para todos los usuarios excepto 1 quien va a dar el ok para las actualizaciones. Ejecuto el código del transaction sin problemas, pero a la hora de retocar una lista de materiales con el campo de autorización con la opción no el mensaje de error no sale. Cual puede ser el error que este cometiendo? Muchas gracias.

El codigo del transaction que arme es el siguiente:

-- Variables - Control para edicion de lista de materiales
EstaAutorizado nvarchar(3);

--------------------------------------------------------------------------------------
-- Control para edicion de lista de materiales
--------------------------------------------------------------------------------------
IF :object_type = ('66') THEN
	IF :transaction_type = ('U') THEN
		SELECT (SELECT "U_Autorizado" FROM ATT1 WHERE "Father"= :list_of_cols_val_tab_del) INTO EstaAutorizado FROM DUMMY;
		IF (:EstaAutorizado='No') THEN
			error := 1002;
			error_message := 'Necesita autorización para actualizar la LISTA DE MATERIALES';
			select :error, :error_message FROM dummy;
			Return;
		END IF;
	END IF;
END IF;
---------------------------------------------------------------------------------------

Buenas Tardes,tu campo en los valores predeterminados pusiste algún valor numérico o también le pusiste si y no por ahí puede estar el detalle revisa el valor que le pusiste por ejemplo yo tengo así:
image

Lo configure como alfanumerico, con valores válidos Si/No

image

Es mas, ejecutando solo el select que carga la variable me devuelve el dato del campo “Valor”

1 me gusta

No sé si sea eso pero… la consulta debería ser sobre la tabla ITT1 ya que ATT1 es la de Historial.

Igual valida y nos comentas.

Saludos.

Gente les comunico que ya pude resolver el problema.
1- La consulta se hace sobre la OITT o la ITT1, ya que en estas tablas guarda la ultima modificación hecha, en las tablas AITT y ATT1 guarda las modificaciones previas a la ultima.
2- Parece una tontera pero solo me faltaba activar la opcion de habilitar notificaciones de operaciones en las parametrizaciones generales.


3- Le hice un retoques al control ya que con la logica actual si cambio a la opción Si luego no puedo volver a la No ya me salta el mensaje siempre, por lo tanto agregue un campo mas donde detallo que usuario es el que permite autorizar el cambio.
4- Cambie el valor valido a numérico.
5- Edite dos IU, una con acceso a los campos (usuario supervisor) y otro donde no sean editables (usuarios normales).

-- Variables - Control para edicion de lista de materiales
EstaAutorizado integer;
UsuarioSupervisor nvarchar(30);
UsuarioActualiza nvarchar(30);

--------------------------------------------------------------------------------------
-- Control para edicion de lista de materiales
--------------------------------------------------------------------------------------
IF :object_type = ('66') THEN
	IF :transaction_type = ('U') THEN
		SELECT (SELECT "U_Autorizar" FROM OITT WHERE "Code"= :list_of_cols_val_tab_del) INTO EstaAutorizado FROM DUMMY;
		SELECT (SELECT "UserSign2" FROM OITT WHERE "Code"= :list_of_cols_val_tab_del) INTO UsuarioActualiza FROM DUMMY;
		SELECT (SELECT "U_Supervisor" FROM OITT WHERE "Code"= :list_of_cols_val_tab_del) INTO UsuarioSupervisor FROM DUMMY;
		IF (:EstaAutorizado=0) THEN
			IF (:UsuarioActualiza<>:UsuarioSupervisor) THEN
				error := 1002;
				error_message := 'Necesita autorización para actualizar la LISTA DE MATERIALES';
				select :error, :error_message FROM dummy;
				Return;
			END IF;
		END IF;
	END IF;
END IF;
---------------------------------------------------------------------------------------
3 Me gusta

Perfecto que bueno que ya quedo