Ayuda SAP

Error TN oferta de ventas validaciON DE un UDF


#1

Alguien sabe por que el siguiente TN muestra - se ha producido el error interno 241 ( mensaje 131- 183)

if @object_type = ‘23’ and @transaction_type in (‘U’,‘A’)

BEGIN

if EXISTS(select DocEntry from OQUT

where Docentry = @list_of_cols_val_tab_del

and (U_Observaciones <> ‘’

and U_Observaciones not like ‘[2][0-3]:[0-5][0-9]’

and U_Observaciones not like ‘[0-1][0-9]:[0-5][0-9]’)

OR DATEDIFF(MINUTE,U_destino,U_Observaciones) < 0

and Series in (‘16’))

begin

Set @error = 60003

Set @error_message = ‘Verifique el dato a ingresar’

end

END


#2

Hola Erik, yo no puedo ayudarte, pero procura para otros temas brindar más detalles sobre el mismo, no poner un renglón y el código. O sea, recuerda que el foro es leído por personas que también están aprendiendo sobre Business One, y sería bueno que expliques qué buscas hacer con el código, y el error que brinda.

Por otro lado, quizás es porque lo publicaste el fin de semana, me parece raro que nadie de @businessone te haya respondido. :thinking:


#3

Hola puede ser por el tipo de dato con el que se crearon las campos, o bien te falta validar con un ISNULL…,0

slds

BF


#4

Agradezco tu apoyo , lo que se pretende es que valide los datos ingresados manualmente por los usuarios en un UDF de tipo alfanumerico en este caso solo permita 5 caracteres . este sera utilizado para colocar horas en un formato de 24 hrs ejemplo 21:00 o 09:00 en el primer espacio solo permite valores como 0 , 1 y 2 en el segundo valores del 0 al 9 en el tercero solo : y asi para que no tengan errores en esta captura asi mismo valida que la hora colocada no debe ser menor a la que esta en otro UDF …


#5

es alfanumerico el tipo del UDF


#6

Hola @Un_Tal_Erik_J
Crea un campo de usuario tipo hora para que el sistema nativamente realice todas las validaciones correspondientes.

hora

Saludos,
Andres Ramirez Jaramillo :colombia:


#7

como complemento se estuvo revisándolo , el detalle lo esta dando después del OR , tendrá algo que ver la version de SQL en la que utilizo es 2008 y jala tal cual y la del cliente es 2014

if @object_type = ‘23’ and @transaction_type in (‘U’,‘A’)

BEGIN

if EXISTS(select DocEntry from OQUT

where Docentry = @list_of_cols_val_tab_del

and (U_Observaciones <> ‘’

and U_Observaciones not like ‘[2][0-3]:[0-5][0-9]’

and U_Observaciones not like ‘[0-1][0-9]:[0-5][0-9]’)

–ERROR–
–OR DATEDIFF(MINUTE,U_destino,U_Observaciones) < 0

and Series in (‘16’))

begin

Set @error = 60003

Set @error_message = ‘Verifique el dato a ingresar’

end

END


#8

si lo habia considerado asi a inicio del proyecto pero al tratar de realizar lo siguiente tronaba derivado que me colocaba am y pm , por lo cual obte por realizarlo en un udf de tipo alfanumerico con ciertas condicionantes mediante el SP

,cast(convert(varchar(10),T9.CREATEDATE,112) as Varchar(15)) +’ ’ + T9.[u_horacot] AS FECHA_PED

,cast(convert(varchar(10),T0.CREATEDATE,112) as Varchar(15)) +’ ’ + T0.[u_horacot] AS FECHA_FAC

,DATEdiff (minute, cast(convert(varchar(10),T9.CREATEDATE,112) as Varchar(15)) +’ ’ + T9.[u_horacot],cast(convert(varchar(10),T0.CREATEDATE,112) AS Varchar(15)) +’ ’ + T0.[u_horacot]) MINUTO_OFE_PED