Bloqueo para crear ciertos clientes

Buenas su ayuda por favor tengo esta Transaction Notification la cual no permite que se cree clientes al no ser que sean unos específicos, sin embargo no me esta funcionando en que puedo estar mal su ayuda por favor:

IF :object_type = 2 AND (:transaction_type = ‘A’)
THEN
DECLARE VAR1 INT;
(
SELECT COUNT(*) INTO VAR1
FROM OCRD T0
WHERE T0.“CardCode” =:list_of_cols_val_tab_del
AND (T0.“UserSign” IN (
20,
21,
22,
34,
38,
17,
19)
)

AND NOT(T0."GroupCode" = 100 OR 	
	 	T0."GroupCode" = 114 OR 	
		T0."GroupCode" = 113 OR 	
	 	T0."GroupCode" = 119 OR		
		T0."GroupCode" = 111 OR		
		T0."GroupCode" = 109 OR		
		T0."GroupCode" = 116 		
		)

);

IF VAR1 > 1
THEN 
	error := -1;
	error_message := 'ERROR: NO Tiene permisos para Crear Clientes de este TIPO';
END IF;

END IF;

Antes lo tenia de la siguiente forma la cual si me validaba pero esta causaba que otros módulos tengan error y la tuve que deshabilitar:
IF :object_type = 2 AND (:transaction_type = ‘A’)
THEN
IF EXISTS (SELECT 1
FROM OCRD T0
WHERE T0.“CardCode” =:list_of_cols_val_tab_del
AND (T0.“UserSign” IN (
20,
21,
22,
34,
38,
17,
19))

AND NOT(T0."GroupCode" = 100 OR 	
	 	T0."GroupCode" = 114 OR 	
		T0."GroupCode" = 113 OR 	
	 	T0."GroupCode" = 119 OR		
		T0."GroupCode" = 111 OR		
		T0."GroupCode" = 109 OR		
		T0."GroupCode" = 116 		
									
	)
)
THEN 
	error := -1;
	error_message := 'ERROR: NO Tiene permisos para Crear Clientes de este TIPO';
END IF;

END IF;

Buenos días, a que te refieres con que otros módulos tenían error?

ara el código de la Transaction Notification que has compartido y su objetivo de no permitir la creación de ciertos clientes a menos que sean específicos, es importante realizar algunas correcciones para asegurar que la lógica funcione como se espera. Aquí hay una versión ajustada del código con las correcciones necesarias:

IF :object_type = ‘2’ AND :transaction_type = ‘A’.

DECLARE VAR1 INT;

SELECT COUNT(*) INTO VAR1
FROM OCRD T0
WHERE T0.“CardCode” IN (:list_of_cols_val_tab_del)
AND T0.“UserSign” IN (20, 21, 22, 34, 38, 17, 19)
AND (NOT (T0.“GroupCode” IN (100, 114, 113, 119, 111, 109, 116)));

IF VAR1 < 1.
error := -1;
error_message := ‘ERROR: No tienes permisos para Crear Clientes de este Tipo’;
END IF.

ENDIF.
Aquí hay algunas correcciones y cambios clave realizados en el código ajustado:

  1. Se corrigió la comparación de cadenas en la condición IF, utilizando comillas simples para comparar valores de tipo cadena.
  2. Se reemplazó el operador IN para verificar si el valor está en una lista de valores permitidos.
  3. Se modificaron las condiciones para invertir la lógica y verificar si la cantidad de clientes permitidos es menor que 1 antes de mostrar el mensaje de error.

Por ejemplo me aparecía el siguiente error:

y solo se soluciono cunado deshabilite

Gracias por la ayuda, lo probé pero sigue sin validar hice una prueba y me dejo crear un cliente que no debería

que codigo tienes y tu motor es SQL o Hana?

Mi motor es HANNA y la version de SAP es la 10

Buenas tardes, te dejo el código, por favor pruébalo y me dices si te funcionó:

If :object_type = '2' AND (:transaction_type ='A')
Permitir nvarchar(100);
THEN
SELECT (
  SELECT TOP 1 T1."CardCode"
     FROM "BDATOS"."OCRD" T0 
     WHERE 
        T0."CardCode" =  list_of_cols_val_tab_del AND T0."UserSign" NOT IN (100, 114, 113, 119, 111, 109, 116) AND T0.“GroupCode” NOT IN (100, 114, 113, 119, 111, 109, 116)
       )
                INTO Permitir FROM dummy ;

IF  :Permitir IS NOT NULL THEN
  error := 225 ;
  error_message :='Error (SP): No tienes permisos para Crear Clientes de este Tipo';
end IF;
end IF;