Por el store procedure, transaction notification.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
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'
--------------------------------------------------------------------------------------------------------------------------------
-- ADD YOUR CODE HERE
DECLARE @Num int
IF @object_type = '4' --MAESTRO ARTICULOS
BEGIN
IF @transaction_type = 'A' or @transaction_type = 'U'
BEGIN
SET @Num=(
SELECT COUNT(*)
FROM OITM T0
WHERE ((right(T0.ItmsGrpCod,1)<> 'A')
) and T0.itemcode=@list_of_cols_val_tab_del
)
IF (@Num>0)
BEGIN
SELECT @error = 101
SELECT @error_message = N'Ud. No Puede Crear Articulos con Este Codigo, Revise'
END
END
END
--------------------------------------------------------------------------------------------------------------------------------
-- Select the return values
select @error, @error_message
end
Manuel:
Gracias por la información, aunque no funcionó, me ayudó bastante para encontrar la solución. Aquí envío la consulta que podría ser útil para el foro:
/***********************************MAESTRO DE ARTÍCULOS**************************************************/
DECLARE @CODLON NVARCHAR
DECLARE @CODART NVARCHAR
-- VALIDA QUE EL TIPO DE ARTÍCULO TENGA COMO CARACTER INICIAL SOLO A=ARTÍCULOS, N=MUESTRAS DE STOCK, M=MUESTRAS ORIGINALES, S=SERVICIO
IF @object_type = '4' --MAESTRO ARTÍCULOS
BEGIN
IF @transaction_type = 'A' or @transaction_type = 'U'
BEGIN
SET @CODART=(SELECT LEFT(T0.ITEMCODE,1) FROM OITM T0 WHERE T0.itemcode=@list_of_cols_val_tab_del)
IF (LEFT(@CODART,1) NOT IN ('A','N','M','S'))
BEGIN
SELECT @error = 1
SELECT @error_message = 'NO SE PUEDE INGRESAR EL CÓDIGO CON ESE CARÁCTER, VERIFIQUE EL TIPO DE ARTÍCULO A, N, M, S'
END
-- VALIDA QUE EL CÓDIGO SOLO TENGA 7 CARACTERES
SET @CODLON=(SELECT T0.ITEMCODE FROM OITM T0 WHERE T0.itemcode=@list_of_cols_val_tab_del)
IF LEN(@CODLON) < 7
BEGIN
SELECT @error = 1
SELECT @error_message = 'EL CÓDIGO DEBE TENER EXACTAMENTE 7 CARACTERES'
END
END
END
Editado por: Rui Pereira el 15 de abril de 2009 a las 10:31 AM