on 02-15-2011 6:47 PM
Estimados.
tengo el siguiente SP, basado en otros post del foro, donde me obliga a ingresar el campo proyecto, pero no me funciona, lo he probado con otros campos por ejemplo centro de costo y anda bien, pero proyecto, no y no puedo distinguir donde esta el error.
Saludos.
Oscar V
-- VALIDACION PROYECTO EN ORDEN DE COMPRA
IF (@object_type = 22) and (@transaction_type = 'A' or @transaction_type = 'U')
BEGIN
DECLARE @LINE as NVarchar (35)
SET @LINE = (SELECT COUNT(T1.LineNum)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
DECLARE @PROJECT as Nvarchar (50)
SET @PROJECT = (SELECT COUNT(T1.Project)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
IF (@LINE != @PROJECT)
BEGIN
SET @error = 101
SET @error_message = 'Proyecto es obligatorio'
END
END
Yo lo haría de esta forma:
IF (@object_type = 22) and @transaction_type in ( 'A' , 'U')
BEGIN
DECLARE @Linea as int
SELECT TOP 1 @Linea = T1.LineNum+1
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del
AND ISNULL(T1.Project,'')=''
IF @Linea >= 1
BEGIN
SET @error = 101
SET @error_message = 'Error en Linea (' + @Linea + ') - Proyecto obligatorio'
END
END
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gracias, por las 2 respuestas!!!... estan buenas esas SP, ya resolvi el problema, el que cree es a nivel de cabezera y los enviados es a nivel detalle.
Otra consulta, hay alguna forma de que el SP, sea solo a nivel de aviso y no obligatorio???.
dejo SP
-- VALIDACION PROYECTO EN ORDEN DE COMPRA
IF (@object_type = 22) and (@transaction_type = 'A' or @transaction_type = 'U')
BEGIN
DECLARE @LINE as NVarchar (35)
SET @LINE = (SELECT COUNT(T0.PROJECT)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
DECLARE @PROJECT as Nvarchar (50)
SET @PROJECT = (SELECT COUNT(T1.Project)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE T0.DocEntry = @list_of_cols_val_tab_del)
IF (@LINE != @PROJECT)
BEGIN
SET @error = 101
SET @error_message = 'Proyecto es obligatorio'
END
END
Que bueno que te sirvio, seria bueno para ayudar al orden del foro que ahora que has calificado tambien cierres la pregunta.
Respecto si es posible hacer un mensaje opcional, no es posible, puesto que en SAP se maneja sólo el error, puesto que cuando el registro no cumple con la condición de error , aunque le pongas un mensaje personalizado a la operación correcta, siempre te mostrará la estandar.
ahora lo que muchos hacemos cuando queremos un aviso, es que metemos el documento a un ciclo de aprobación al momento de crear, con esto si no cumple la condición dada, sólo se creará una vez aprobado el documento.
Ahora estas aprobaciones sólo sirven para campos que se encuentran en la cabecera y no en el detalle, a menos que hagas otros cuantos trucos para esto.
slds.
Hola Oscar:
Estoy probando tu consulta y no me funciona como corresponde. Aunque coloque el proyecto no me deja crear el documento.
Curiosamente me lo valida para centro de beneficio y no para proyecto. Es decir , si le asigno un centro de beneficio me permite crear el documento. A que se debe esto?
Saludos,
Viviana Medina.
Hola, Viviana acabo de probar la consulta que deje en el foro y la ejecute en una base que nunca habia ocupado y funciono sin problema, tuve que ingresar el proyecto a nivel de cabecera. (aleta de finanzas).. y luego pude continuar.
...Los otros scrip que me enviaron tambien funcionan pero la diferencia que es a nivel de linea.
Cualquier cosa me cuentas.
Saludos.
Oscar V
intenta con
IF (@object_type = 22) and @transaction_type in ( 'A' , 'U')
BEGIN
DECLARE @cuenta as int
SET @cuenta= (SELECT COUNT(*)
FROM OPOR T0
INNER JOIN POR1 T1 ON T1.DocEntry = T0.DocEntry
WHERE len(t1.Project)<1 and T0.DocEntry = @list_of_cols_val_tab_del)
IF @cuenta >=1
BEGIN
SET @error = 101
SET @error_message = 'Proyecto es obligatorio'
END
END
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.