on 10-26-2011 4:44 PM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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
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.
Hola,
Prueba de esta manera, asi funciona:
SELECT $[$13.61.0]
Saludos,
JAMS
Edited by: JAIROMARTINEZ on Oct 26, 2011 7:27 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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.
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
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
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.
Si le colocas un top 1 a la primer BF? ya lo intentaste asi?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
101 | |
14 | |
10 | |
5 | |
4 | |
3 | |
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.