cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta formateada en campo Ref 2 de Recibo de Produccion

Former Member
0 Kudos

Estimados:

Tengo el siguiente problema: Necesito "copiar" de manera automatica el numero de orden de fabricacion en el campo Ref 2 del documento "Recibo de Produccion".

Lo he probado con la consulta formateada SELECT $[IGN1.BaseRef] y con SELECT $[$13.61.0], pero no me funciona.

Si coloco alguna de estas consultas en algun campo a nivel de linea, si me trae la informacion.

Alguien sabe como puedo resolver mi problema? O que debo hacer para poder copiar ese dato al campo Ref 2 ?

Gracias de antemano.

VMC.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hola Viviana,

Prueba con esta consulta:

 SELECT T1.[BaseRef] FROM OIGN T0  INNER JOIN IGN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.[DocNum] = $[OIGN.DocNum]

Con esto cuando lo añadas al sistema te copiará en el campo Ref2 el número de la orden de fabricación.

Saludos,

Tere

Former Member
0 Kudos

Teresa:

Gracias por tu pronta respuesta, pero cuando ejecuto tu consulta me envia el sgte error:

1). [Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near 'OIGN.DocNum'. 2). [Microsoft][SQL Server Native Client 10.0][SQL Server]Statement 'Alertas recibidas' (OAIB) (s) could not be prepared.

Espero me puedas ayudar .

VMC

Former Member
0 Kudos

Hola,

Esa consulta sólo se ejecuta desde la búsqueda formateada. Los pasos serían:

1- Grábala en el query manager

2 - Crea l abúsqueda formateda en el campo ref2 y asociale la consulta. indicando que se actualice al cambiar el número de documento y que se actualice regularmente

3 Cuando añadas un documento a la base de datos y vuelvas a visualizarlo tendrás el campo ref2 con el valor

Saludos,

Tere

Former Member
0 Kudos

Teresa:

Lo que yo necesito es que antes de crear el documento me coloque el numero de la orden de venta y segun tus recomendaciones esto lo haria una vez que creo el recibo de produccion, volver a buscarlo y actualizar.

ES posible realizar lo que yo necesito?

Gracias.

VMC.

Former Member
0 Kudos

Para que se añada directamente debe actualizarse al cambiar algún campo del documento, pero no necesita svolver a actualizarlo directamnente al añadirlo te lo pone en el campo.

Saludos

Tere

Former Member
0 Kudos

Tere:

Efectivamente, y el unico cambio que hacen es colocar o ingresar el numero de lote y no encuentro esa opcion.

Tu sabes como se puede hacer eso?

Gracias.

VMC.

Former Member
0 Kudos

Hola Viviana,

El problema es que ese campo se encuentra en las líneas del documento y el campo ref2 está en cabecera.

Lo único que se me ocurre es que el usuario pulse en la lupa de la búsqueda formateada para que se rellene el valor antes de añadirlo. Esto tiene el inconveniente de que a alguno se le olvide hacerlo, pero lo podrías solucionar haciendo una consulta que se ejecute cada cierto tiempo para comprobarlo.

Saludos,

Tere

Former Member
0 Kudos

Teresa:

Lamentablemente aqui en la empresa al realizar una Terminacion Report no ingresan ningun dato, es mas desde la misma OF colocan boton derecho, seleccionan Terminacion Report y le dan crear, a lo mas modifican la cantidad a recibir, pero nada mas. Por lo tanto estoy pensando en colocar un SP_TN en el campo Ref 2 que los obligue a escribir el numero de OF.

Gracias por tu ayuda. Si se te ocurre alguna solucion mejor a esta, sera bien recibida.

Saludos,

VMC.

Former Member
0 Kudos

Hola,

Prueba de esta manera, asi funciona:

SELECT $[$13.61.0]

Saludos,

JAMS

Edited by: JAIROMARTINEZ on Oct 26, 2011 7:27 PM

Former Member
0 Kudos

Jairo

Es la misma consulta que tengo...

Former Member
0 Kudos

hola,

Asi lo tengo definida en V2007A y me funciona a la perfecccion.

JAMS

Former Member
0 Kudos

Jairo:

Y cual es la condicion que le tienes puesta?, porque al menos a mi no me funciona.

Espero me puedas ayudar.

Yo tambine estoy con 2007 A.

Gracias.

VMC.

Former Member
0 Kudos

Hola,

La condicion es:

1.Buscar en valores definidos por usuario según consulta grabada, llamamos la BF.

2.Actualización automática si se producen modificaciones campo, tenemos creado un campo de usuario con una lista de CONCEPTOS Ej. Recibo de Produccion, toncs el usuario debe establecer ese concepto y se ejecuta automaticamente la BF copiando el numero de la OP en el campo REF2 del Doc. Recibo de produccion.

JAMS

Former Member
0 Kudos

Jairo:

Gracias por tu ayuda.

Tal como le dije a Teresa, aqui lamentablemente no agregamos ningun dato por lo tanto estoy pensando en colocar un SP_TN

en el campo Ref 2.

Saludos,

VMC.

former_member188440
Active Contributor
0 Kudos

Porque no pones la busqueda formateada en algun campo obligatorio, create un campo de usuario (si es que no se puede ocupar alguno de SAP ) lo dejas como obligatorio, y la busqueda lo que hara sera limpiar el campo obligatorio cuando REf2 este NULL

Former Member
0 Kudos

Mauricio:

Me puedes explicar mejor lo que me aconsejas.

Gracias.

Saludos,

VMC.

former_member188440
Active Contributor
0 Kudos

Claro

La idea es que puedas usar un campo de usuario que sea obligatorio, en este caso, cuando tu creas un campo de usuario puedes asignarle la propiedad de Obligatorio, de tal forma que no puede estar en blanco

Partiendo de este punto, si tu usas una busqueda formateada para que valide que el campo Ref2 no este vacio, entonces que coloque un valor en tu campo de usuario, si es lo contrario entonces que lo limpie.

Al estar el campo de usuario limpio o NULL, el documento no puede crearse, pues te mandara un error de SQL parecido a "Column U_tucampo does not allows null"

esa es la idea

Former Member
0 Kudos

Mauricio:

Me decidí a colocar un SP_TN que no permita grabar si el campo Ref2 no tiene el numero de OF, pero como la tabla OIGN y IGN1 es la misma tanto para las entradas de produccion como para las de inventario, me esta realizando la validacion en ambos modulos.

No he logrado encontrar la solucion para que solo me tome esta validacion para las entradas de produccion.

Tu sabes que debo modificar en el SP para que funcione segun mis necesidades?

Adjunto SP_TN

IF @object_type = '59' AND @transaction_type IN ('A','U')

Begin

DECLARE @DocEntry AS NVARCHAR(10)

Set @DocEntry = @list_of_cols_val_tab_del

IF (SELECT COUNT (*)

FROM OIGN T0

INNER JOIN IGN1 T1 ON T0.DocEntry = T1.DocEntry

WHERE (T1.BaseType ='202'and T0.Ref2 = '' OR T0.Ref2 is NULL ) and T0.DocEntry = @DocEntry )>0

Begin

Set @error = 111

Set @error_message = 'Falta ingresar numero de OF en campo Ref 2'

End

End

Gracias.

former_member188440
Active Contributor
0 Kudos

Agrega una validacion para el ign1.basetype

con un count puedes hacerlo

algo asi


If @object_type = '59' AND @transaction_type IN ('A','U')
 Begin
 Set @DocEntry = @list_of_cols_val_tab_del
 IF (SELECT COUNT(*) 
FROM OIGN T0 INNER JOIN IGN1 T1 ON T0.DocEntry = T1.DocEntry 
WHERE T0.GroupNum -2 AND and T1.BaseType !='202' and T0.DocEntry = @DocEntry )>0
 begin
 Set @error = 1
 Set @error_message = 'Error'
 end

Edited by: Mauricio I Quintana on Oct 31, 2011 9:18 AM

Former Member
0 Kudos

Mauricio:

Ya tengo una validacion para IGN1 BaseType y es que sea = 202 porque lo que yo necesito es que solo me realice esta validacion en los recibos de produccion, pero aun asi no funciona.

former_member188440
Active Contributor
0 Kudos

Puedes compartir el codigo completo?

Former Member
0 Kudos

Mauricio:

Gracias por responder.

Mas arriba postee la consulta que tengo en la cual esta la validacion que te comento.

Saludos,

former_member188440
Active Contributor
0 Kudos

A ver, agregue un parentesis


IF @object_type = '59' AND @transaction_type IN ('A','U')
Begin
DECLARE @DocEntry AS NVARCHAR(10)
Set @DocEntry = @list_of_cols_val_tab_del
IF (SELECT COUNT (*)
FROM OIGN T0 
INNER JOIN IGN1 T1 ON T0.DocEntry = T1.DocEntry
WHERE ((T1.BaseType ='202'and T0.Ref2 = '') OR T0.Ref2 is NULL ) and T0.DocEntry = @DocEntry )>0
Begin
Set @error = 111
Set @error_message = 'Falta ingresar numero de OF en campo Ref 2'
End
End

Former Member
0 Kudos

Mauricio:

Muchas gracias por tu ayuda.

Finalmente logre encontrar la solucion para que solo me validara el campo Ref2 en las entradas de produccion.

Adjunto query final.

-- Valida CAMPO REF2 EN RECIBO DE PRODUCCION

IF @object_type = '59' AND @transaction_type IN ('A','U')

Begin

DECLARE @DocEntry AS NVARCHAR(10)

Set @DocEntry = @list_of_cols_val_tab_del

IF (SELECT COUNT (*)

FROM OIGN T0

INNER JOIN IGN1 T1 ON T0.DocEntry = T1.DocEntry

WHERE (T1.BaseType ='202' and (T0.Ref2 = '' OR T0.Ref2 is NULL ) ) and T0.DocEntry = @DocEntry )> 0

Begin

Set @error = 111

Set @error_message = 'Falta ingresar numero de OF en campo Ref 2'

End

End

Saludos,

VMC.

former_member188440
Active Contributor
0 Kudos

Si le colocas un top 1 a la primer BF? ya lo intentaste asi?

Former Member
0 Kudos

Mauricio:

Gracias por responder, pero no me resultó colocando Top 1.

El otro problema que tengo es que la unica modificacion que hacen al crear un Recibo de Produccion es crear el lote y no me muestra esa alternativa dentro de las modificaciones.

VMC.