TransactionNotification sobre tablas de detalle?

Hola

Tengo que hacer un control sobre Solicitudes de Pedido pero con el Transaction (SAP B1 HANA) solo veo que pueda acceder al tipo 540000006 (tabla OPQT) pero esto me valida el documento a la hora de grabarlo cuando lo ideal sería poder validar las líneas (PQT1) una por una y que no me deje grabarla si no cumple con unos requisitos, ¿es esto posible? Si no lo fuera, ¿sois partidarios de usar triggers para ese control?

El problema es que puede que metas 20 líneas y al final al grabar el documento se produce el error, tienes que localizar la línea del error, etc, sería mucho más ágil que te avisara en el momento de validar la línea.

Gracias

Hola @tbote,

Hasta donde yo se, en el transaction solo te hace la validacion al momento que le das en crear o actualizar al documento, mas no al momento de agregar el valor de la linea.

Pero podrias agregar un campo a nivel linea con una busqueda Formateada que haga la validacion y te cargue un Error o Exito en el campo UDF, al momento de que agregues los valores que necesitas, de esta manera por lo menos le estarias mostrando al usuario en pantalla que hay un error en la linea.

Saludos.

1 me gusta

Solo es falta de imaginación, el objeto no es la tabla encabezado (OPQT), en este caso son todas la tablas PQT (OPQT,PQT1,PQT2,PQT3,etc). La forma mas fácil es que generes un Query que devuelva un numero o un Verdadero Falso después de evaluarse, es obligatorio que regreso solo un valor o lo mas posible es que marque error
es código SQL pero no es difícil convertir a HANA, el siguiente ejemplo valida que todas las líneas tengan un precio diferente de cero

IF @object_type = '540000006' AND @transaction_type IN ('A','U')
BEGIN 
	IF (SELECT COUNT(*) QTY FROM OPQT T0 INNER JOIN PQT1 T1 ON T0.DocEntry = T1.DocEntry WHERE T1.Price = 0 AND T0.DocEntry = @list_of_cols_val_tab_del) > 0 
	BEGIN 
		SET @error = 1
		SET @error_message = 'TN: Todas las lineas deben tener precio'

		SELECT @error, @error_message;
	END 
END 
1 me gusta

@tbote … ¿leíste las respuestas que te han dado? ¿Se solucionó? Por favor, brindar feedback sobre tu problema, si tienes respuestas, debes por lo menos, agradecer :heart: en cada mensaje, o responder sobre qué ocurrió si intentaste lo que los colegas proponen