cancel
Showing results for 
Search instead for 
Did you mean: 

Stock disponible en busqueda formateada

Former Member
0 Kudos

     Buenas a todos, alguien me podria ayudar en ver cual es el error en la siguiente busqueda formateada.

SELECT ((T1.[OnHand] + T1.[OnOrder]) - T1.[IsCommited])  FROM OITW T1 WHERE T1.[ItemCode] = $[$38.1.11] and  T1.[WhsCode] = $[$38.24.11]

Esta funciona bien, pero me arroja un error cuando el numero que esta recuperando es mayor a 1000. cuando es menor funciona sin problemas.

Este es el error que me arroja.

Accepted Solutions (1)

Accepted Solutions (1)

former_member228470
Participant
0 Kudos

Hola Luis

Yo cree un campo alfanumérico y este es la búsqueda que tengo en mi sap

SELECT convert(int,(T0.[OnHand]-T0.[IsCommited]),0) FROM OITW T0 WHERE T0.whscode = '03' and itemcode = $[$38.1.0]

Saludos

Sara

Former Member
0 Kudos

Muchas gracias haciendo la conversion directa en la busqueda no tuve problemas.

Answers (6)

Answers (6)

Former Member
0 Kudos

Muchas gracias a todos por sus respuestas.

La búsqueda formateada quedó así:

SELECT convert(int,(T0.[OnHand] -T0.[IsCommited] + T0.OnOrder),0) FROM OITW T0 WHERE T0.whscode = $[$38.24.0] and itemcode = $[$38.1.0]

Quisiera ver si me podrían ayudar con el TN, la idea de este es que si la cantidad a facturar es menor  al resultado del sql de arriba, arroje error.

Lo que estoy haciendo es lo siguiente:

If @object_type = '17'

   and @transaction_type in ('A', 'U')

BEGIN

declare @lin1 AS DECIMAL

SET @lin1=0

SET @lin1= ISNULL( (SELECT TOP 1 T0.LineNum + 1 FROM RDR1 T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del and

T0.Quantity > T0.FreeTxt),0)

IF @lin1> 0

  begin

  SET @error = 30

  SET @error_message = 'Linea' + LTRIM(str(@lin10))+',NO existe cantidad para la venta'

  end

END

La validación de que si es menor la logré realizar, pero estoy tratando de agregarle que me indique el numero de la linea en que se encuentra el error.

Former Member
0 Kudos

Ya encentré el error, era solo un error de tipeo en el código en esta parte LTRIM(str(@lin10)) la variable que declaré era @ lin1 y no como estaba en el tn , ya me funciona correctamente.

El código a mas de alguno le servirá, asi que de nuevo muchas gracias a todos.

Saludos

Former Member
0 Kudos

Use un campo que es alfanumerico, que el FreeTxt, y como les decia mas arriba al hacer el Tn me arroja error. Este es el TN que estoy tratando de meter.

If @object_type = '17'

   and @transaction_type in ('A', 'U')

BEGIN

If exists (SELECT T0.ItemCode  FROM RDR1 T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del and

T0.Quantity > T0.FreeTxt)

  begin

  SET @error = 30

  SET @error_message = 'cantidad no permitida'

  end

END

former_member203638
Active Contributor
0 Kudos

Hola Luis, eso se debe a que Quantity es Numerico y FreeTxt es caracter, intenta lo siguiente:


If @object_type = '17' and @transaction_type in ('A', 'U')

BEGIN

If exists (SELECT T0.ItemCode  FROM RDR1 T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del and

T0.Quantity > cast(cast(T0.FreeTxt as nvarchar(max)) as int)                     )

  begin

  SET @error = 30

  SET @error_message = 'cantidad no permitida'

  end

END

Saludos.

Alessandro.

Former Member
0 Kudos

Que me recomiendan volver a crear el campo como alfanumerico, o como puedo indicar en el codigo que no tome en cuenta la coma. Estoy trayendo este campo para luego en TN hacer una validacion, y no se si al ser alfanumerico me de problemas en el TN.

former_member203638
Active Contributor
0 Kudos

Alfanumerico.

Saludos.

Alessandro.

former_member203638
Active Contributor
0 Kudos

Puedes meterle un "replace" para quitar la ',':


SELECT replace(((T1.[OnHand] + T1.[OnOrder]) - T1.[IsCommited]),',','')

FROM OITW T1 WHERE T1.[ItemCode] = $[$38.1.11] and  T1.[WhsCode] = $[$38.24.11]

Cualquier cosa, comentas.

Saludos.

Alessandro.

Former Member
0 Kudos

Lo estoy trayendo a un campo definido que cree,y que esta definido como numerico. Puede que sea ese el error?

gerardo_mendez
Active Contributor
0 Kudos

Puede que si, creo que efectivamente es eso.

former_member203638
Active Contributor
0 Kudos

Hola, igual influye como este estes declarando tu campo ¿Es numerico? Debe ser el caracter de la coma ','.

Saludos

Alessandro.

gerardo_mendez
Active Contributor
0 Kudos

Hola Luis.

A mi me funciona bien tu búsqueda formateada. Igual intenta cambiando los "11" por "0", quedarían: "$[$38.1.0]" y "$[$38.24.0]"

Prueba y nos comentas.