Hola muy buenas tardes.
Por favor su ayuda con lo siguiente.
Para entrar en contexto, tenemos una base productiva y una base de pruebas (Copia).
Por alguna razón todos los TRANSACTION NOTIFICATION que se han elaborado, funcionan en la base productiva, pero dejaron de funcionar en la base de pruebas (que es una copia de la Productiva).
Queremos añadir un TRANSACTION NOTIFICATION, y lo queríamos hacer primero en la de PRUEBAS, antes de colocarlo en la PRODUCTIVA.
Cuál sería podría ser tal vez uno de los motivos por los que los TRANSACTION NOTIFICATION en la base PRUEBAS no se estén ejecutando. ?
Coloco el el código que tenemos en el Store Procedure
CREATE PROCEDURE SBO_SP_TransactionNotification
(
in object_type nvarchar(30), -- SBO Object Type
in transaction_type nchar(1), -- [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose
in num_of_cols_in_key int,
in list_of_key_cols_tab_del nvarchar(255),
in list_of_cols_val_tab_del nvarchar(255)
)
LANGUAGE SQLSCRIPT
AS
-- Return values
error int; -- Result (0 for no error)
error_message nvarchar (200); -- Error string to be displayed
begin
error := 0;
error_message := N'Ok';
--------------------------------------------------------------------------------------------------------------------------------
CALL "HBT_SP_TRANSACTIONNOTIFICATION" (object_type, transaction_type, num_of_cols_in_key, list_of_key_cols_tab_del, list_of_cols_val_tab_del,error, error_message);
--------------------------------------------------------------------------------------------------------------------------------
-- Select the return values
select :error, :error_message FROM dummy;
end;
Este es el código principal, si nos damos cuenta el TRANSACTION NOTIFICATION hace un llamado a otro Store Procedure que en sí es donde se almacenan las SP
Y este es uno de los ejemplos que tenemos de SP
Cita
CREATE PROCEDURE HBT_SP_TRANSACTIONNOTIFICATION
( in object_type nvarchar(50),
-- SBO Object Type
in transaction_type nchar(1),
-- [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose
in num_of_cols_in_key int,
in list_of_key_cols_tab_del nvarchar(255),
in list_of_cols_val_tab_del nvarchar(255),
inout error int,
-- Result (0 for no error)
inout error_message nvarchar (200) -- Error string to be displayed
) LANGUAGE SQLSCRIPT AS -- Return values
--Variables procesos HBT
cnt int;
BEGIN
--------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------
-- SP:Validar que no cree un articulo sin que el campo : U_PROV_SUBRUPO no se encuentran llenos
-- FECHA: 22/12/2021
-- USUARIOS: Christian Arguello
--------------------------------------------------------------------------------------------------------------------------------
IF :object_type='4' AND (:transaction_type='A' OR :transaction_type='U') THEN
cnt := 0;
SELECT COUNT(*)
FROM "OITM" T0
WHERE T0."ItemCode"=:list_of_cols_val_tab_del
AND( T0."U_PROV_SUBRUPO"='' OR T0."U_PROV_SUBRUPO" IS NULL);
IF :cnt>0 THEN
error := -1;
error_message := 'No se puede crear el articulo debe llenar el campo SUBGRUPO DE ART ';
END IF;
END IF;
Recalco que no es un ERROR de código, ya que si los ejecutamos, SQL (de HANA STUDIO) nos dice que se ha ejucatado correctamente.
De antemano muchas gracias por su ayuda.