on 11-14-2012 9:03 PM
Hola foristas!!!
Estoy realizando 3 modelos de autorizacion aplicados al documento de nota a credito dependiendo de las condiciones se activa una u otra. A un modelo de estos en condiciones tengo el siguiente query:
SELECT CASE when $[ORIN.U_MOVDEV]='03' THEN
CASE when $[ORIN.U_MOVDEV]='04' THEN
CASE when $[ORIN.U_MOVDEV] ='05' THEN
CASE when $[ORIN.U_MOVDEV] ='06' THEN
CASE when $[ORIN.U_MOVDEV] ='08' THEN
CASE when $[ORIN.U_MOVDEV]='11' THEN
CASE when $[ORIN.U_MOVDEV]='13' THEN
'True' ELSE 'False' END
FROM ORIN WHERE DocNum=$[ORIN.DocNum]
pero me sale un error : Could not commit transaction: Error -1 detected during transaction '' (PKL1)
y de igual forma lo crea sin activar la autorizacion
tambien lo habia hecho de esta forma:
SELECT 'true' from ORIN WHEre left($[$U_MOVDEV.0.0] ,2) in ('03','04','05','06','08','11','13') and DocEntry=$[ORIN.DocEntry]
y nada me sale un error interno y lo crea
Espero me puedan ayudar
Saludos
El TRUE debe ir despues de cada then, pero asi sin ver mucho creo que necesitaras una query distinta para cada procedimiento
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
a pesar de haber solucionado la parte de la consulta, he tenido problemas con la activacion de estos modelos de autorizacion, se me ha dado casos en que el usuario termina creando la factura sin pasar por ninguna etapa del modelo... no logro encontrarle sentido a esto. Alguien me puede dar una explicacion logica???? la condicion utlizada finalmente fue esta SELECT CASE WHEN $[$38.24.0] ='01' THEN 'True' WHEN $[$38.24.0]='05' THEN 'True' WHEN $[$38.24.0]='201' THEN 'True' ELSE 'False' END pero en algunos casos no se me activa
En estos casos es importante poder reproducir la situacion en un ambiente de pruebas.
En todo caso yo creo que la query esta muy complicada para lo sencillo que es.
Yo te sugiero que pruebes de la siguiente manera
declare @var1 as nvarchar(100)
set @var1=(
select $[ORIN.U_MOVDEV]
)
select case
when @var1 in ('1','2',....) then 'True'
...
...
else 'False
end
Si esto no te funciona los true y los false digitao todo en mayuscula'
Carolina,
Te cuento mi experiencia con las autorizaciones y BF.
Cuando usas parámetros de pantalla, no sabes de que manera se mostrara en el script que haz hecho para validar. Para averiguar esto debes usar el Profiler, ahí estará la consulta ya con los parámetros de pantalla pasados y podrás validar que realmente sea lo que estas queriendo decirle a SAP.
Ejemplo, si generas un procedimiento de autorización
IF ($[OINV.CardCode])='C00001'
SELECT DISTINCT 'TRUE'
Y te da un error o no se levanta el procedimiento de autorizacion, ve al profiler y búscalo y aparecerá ya con el valor del campo insertado, ejemplo
IF ('C00002')='C00001'
SELECT DISTINCT 'TRUE'
Saludos
Felipe.
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
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.