El código que tengo funcionado es el siguiente:
GO
ALTER proc [dbo].[SBO_SP_TransactionNotification]
@object_type nvarchar(20), -- SBO Object Type
@transaction_type nchar(1), -- [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
@list_of_cols_val_tab_del nvarchar(255)
AS
begin
-- Return values
declare @error int -- Result (0 for no error)
declare @error_message nvarchar (200) -- Error string to be displayed
select @error = 0
select @error_message = N'Ok'
--------------------------------------------------------------------------------------------------------------------------------
****OBJETIVO: El no de autorización del banco no exista mas de una vez en la orden de venta
declare @u_folio varchar(20)
set @u_folio = ''
if @object_type = '17' and @transaction_type = 'A'
begin
select @u_folio = isnull(u_folio,'') from ORDR where DocEntry = @list_of_cols_val_tab_del
if (select count(u_folio) from ordr where U_Folio = @u_folio) > 1
begin
set @error = -5002
set @error_message = N'Error Critico Número de folio no valido, Favor de verificar'
end
end
--------------------------------------------------------------------------------------------------------------------------------
-- Select the return values
select @error, @error_message
end
Y QUIERO AGREGAR DE UN EJEMPLO QUE VI EN INTERNET EL SIGUIENTE DENTRO DE ESE STORE PROCEDURE DEL TRANSACTIONOTIFICATION :
IF @object_type = 23 and @transaction_type in ('A','U') -- Aqui le decimos que actue solo cuando el tipo de objeto sea 23 (Ventana de Oferta de Ventas, y cuando este en modo Crear y Actualizar
BEGIN
declare @referencia varchar(100) -- Declaramos una variable que guarde el valor de la referencia de SN
-- Agregamos nuestra consulta que nos traera el valor de el numero de referencia , y dicho valor lo asignara a la variable @referencia
SELECT @referencia = OQUT.NumAtCard
FROM OQUT
WHERE @list_of_cols_val_tab_del=OQUT.DocEntry -- @list_of_cols_val_tab_del lo utilizamos para que nos tome el numero de documento actual o que estara en pantalla
if @referencia is null -- Si la consulta nos trae un valor nulo asignara el valor 1 al error y el mensaje de error personalizado, lo cual bloqueara la accion, en caso contrario dejara avanzar
begin
set @error = 1
set @error_message = 'Falta referencia'
end
END