on 11-22-2011 3:36 PM
Buenos días,
Por favor si me pueden ayudar con lo siguiente, he creado un campo adicional de fecha, llamado Fecha de Entrega, lo que necesito es que cuando yo actualice este campo entonces se me modifique el campo de fecha de vencimiento según la cantidad de días adicionales, por ej:
En la factura tengo:
fecha de documento: 22/11/2011
fecha de vencimiento: 06/12/2011
y la fecha que cree "fecha de entrega": 24/11/2011, este campo lo actualiza el usuario al momento de recibir la factura luego de ser entregada la mercancía, la idea es que cuando actualice este campo entonces se sumen la cantidad de días de diferencia que hay entre la fecha de entrega y la fecha del documento, en este caso la cantidad de das de diferencia es de 2 días, por lo tanto la fecha de vencimiento debería actualizar a 08/12/2011.
Como podría hacer esto? agradecería mucho la ayuda.
Saludos.
Mete una busqueda formateada con la funcion Dateadd()
con eso debe funcionar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Intenta la BF asi
declare @fd as datetime
declare @fe as datetime
declare @fv as datetime
declare @dif as int
set @fd =(select $[oinv.docdate])--oinv si fuese factura
set @fe =(select $[oinv.u_tucampo])--oinv si fuese factura
set @fv = (select $[oinv.dodcuedate]) --oinv si fuese factura
set @dif =datediff(d,@fd,@fe)
select dateadd (d,@dif,@fv)
Edited by: Mauricio I Quintana on Nov 22, 2011 11:38 AM
Si cambiaste el U_tucampo, por el nombre correcto de tu campo de usuario?
tenia unos errores de "dedo"
Intenta asi
declare @fd as datetime
declare @fe as datetime
declare @fv as datetime
declare @dif as int
set @fd =(select $[oinv.docdate])
set @fe =(select $[oinv.u_dochora])--pon aqui el nombre correcto de tu campo
set @fv = (select $[oinv.docduedate])
set @dif =datediff(d,@fd,@fe)
select dateadd (d,@dif,@fv)
Edited by: Mauricio I Quintana on Nov 22, 2011 12:52 PM
Juega con los valores segun tengas definido el formato de la fecha
si lo tienes por d/m/a, entonces iria set dateformat dmy;
asi respectivamente
Ese error te sale porque el formato quizas esta (por ejemplo) en m/d/a y tu estas metiendo una fecha d/m/a
de tal forma que si pones 22/11/2011, el server no reconoce el mes 22 y por eso te saca eso
Buenos dias, les puedo hacer una consulta, porque soy nueva en SAP B1 pero tengo que resolver este mismo tema y no tengo experiencia en SQL y busqueda formateada. Me gustaria saber en que campo debo ingresar esta consulta, porque cuando voy a Herramientas>Consultas>generador de consultas no se donde copiarla. Cree un campo definido por el usuario en el encabezado de la factura del proveedor. Entonces deberia seleccionar esa tabla (OPCH) y dentro de esta tabla seleccionar el campo DueDate y donde deberia pegar la consulta? Les envio la pantalla donde tengo seleccionados los dos campos que deberia actualizar. Gracias.
Buenos dias, les puedo hacer una consulta, porque soy nueva en SAP B1 pero tengo que resolver este mismo tema y no tengo experiencia en SQL y busqueda formateada. Me gustaria saber en que campo debo ingresar esta consulta, porque cuando voy a Herramientas>Consultas>generador de consultas no se donde copiarla. Cree un campo definido por el usuario en el encabezado de la factura del proveedor. Entonces deberia seleccionar esa tabla (OPCH) y dentro de esta tabla seleccionar el campo DueDate y donde deberia pegar la consulta? Les envio la pantalla donde tengo seleccionados los dos campos que deberia actualizar. Gracias.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
1.- Si ya cuentas con el script que te actualizara tu campo de usuario, guárdalo para tenerlo disponible en el Query Manager.
2.- Posteriormente ve a tu campo de usuario y estando en ese campo presiona ALT+SHIFT+F2 para poder asignar la consulta antes guardada, aquí te dará opciones de como se comportara esa actualización en tu campo seleccionado.
Ya lo subi. Esta es la busqueda
SELECT T0.[DocDueDate] FROM OPCH T0
declare @fd as datetime
declare @fe as datetime
declare @fv as datetime
declare @dif as int
set @fd =(select $[oinv.docdate])
set @fe =(select $[oinv.u_fecharecep])--pon aqui el nombre correcto de tu campo
set @fv = (select $[oinv.docduedate])
set @dif =datediff(d,@fd,@fe)
select dateadd (d,@dif,@fv)
Tengo un cliente que precisa calcular la fecha de vencimiento a partir de la fecha de recepción de la factura. Esa fecha SAP no maneja, entonces cree un campo definido por el usuario con fecha de recepción. Luego encontré esta discusión donde se esta necesitando lo mismo y pensé que podía copiarlo con solo reemplazar mi campo creado.
Quedaria asi
declare @fd as datetime
declare @fe as datetime
declare @fv as datetime
declare @dif as int
set @fd =(select $[OPCH.docdate])
set @fe =(select $[OPCH.U_UDF])--pon aqui el nombre correcto de tu campo
set @fv = (select $[OPCH.docduedate])
set @dif =datediff(d,@fd,@fe)
select dateadd (d,@dif,@fv)
Lo guardas en QUERY MANAGER y vas a poner la busqueda formateada en tu campo Fecha de vencimiento. Se va actualizar para cuando el usuario modifique el campo U_UDF (que en tu caso seria el que creaste). Ya lo valide y funciona correctamente.
User | Count |
---|---|
86 | |
7 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.