Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
nacho_duque
Contributor III
Contributor III

Recargas parciales

Hola buenos días

Tengo creado un documento QV que se actualiza cada hora de manera programada

pero cada vez que realiza la recarga carga todos los datos,

me gustaría saber como se puede hacer para que solo te recarge los datos de cada hora

es decir que vaya incrementando por hora y no que realice la recarga de todo

Muchas gracias

5 Replies
soniacoprosa
Creator
Creator

Hola José Ignacio,

Yo suelo realizar recargas parciales en mis proyectos, por meses, y lo hago en el script.

Entiendo que tu podrías hacer lo mismo pero por horas.

Te pongo un ejemplo:

// Recargamos el mes/año de cierre (guardamos en un qvd con temporalidad)

DistriFuncional:

LOAD

$(vAñoCierre) & Right('00' & $(vMesCierre), 2) as DistriFuncional.AÑOMESCIERRE,

$(vAñoCierre) as DistriFuncional.AÑOCIERRE,

num($(vMesCierre)) as DistriFuncional.MESCIERRE,

APCODI,

$(vAñoCierre) & Right('00' & $(vMesCierre), 2) & '_' & APCODI as ClvDiFu, //clave única para la temporalidad

APDESC,

APDECC;

SQL SELECT *

FROM $(LIB2).CGAGRPUE;

let errorMode_OLD = errorMode;

let errorMode = 0;

Concatenate(DistriFuncional)

Load

*

From $(dtwarehouse)DistriFuncional$(vAñoCierre).qvd (qvd)

Where not Exists (ClvDiFu)

;

let ErrorMode = errorMode_OLD;

Store DistriFuncional Into $(dtwarehouse)DistriFuncional$(vAñoCierre).qvd;

drop table DistriFuncional;

Un saludo,

Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Hola José Ignacio:

También te ayudará la función IsPartialReload para condicionar parte del script y los prefijos ADD/REPLACE antes de la sentencia LOAD

IF IsPartialReload () THEN

  Usuarios:

  ADD

  LOAD ...

  SQL SELECT * from ....

  ;

ELSE

  Usuarios:

  REPLACE

  LOAD ...

  SQL SELECT * from ....

  ;

ENDIF;

Si quieres también puedes usar: IF Not IsPartialReload () THEN ...

Saludos,

Joaquín

nacho_duque
Contributor III
Contributor III
Author

hola buenos días,

pero lo que mi interesa es para recargas automáticas, es decir programadas

Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

José Ignacio

En la pestaña Reload de la tarea tienes una sección "Script Setup" activa la marca "Partial Reload" ... en el script puedes usar las funciones que te he sugerido en los otros mensajes.

soniacoprosa
Creator
Creator

Hola José,

Yo también tengo mis documentos programados para que se recarguen de forma automática.

Seguramente hay otra forma de hacerlo, pero yo sólo conozco ésta que te he comentado.

En mis proyectos guardo los datos en .qvds. En ocasiones necesito que se carguen todos los datos a origen en las tablas, pero en otras no, y sólo recargo los nuevos datos del mes. Y para ello, uso el cógigo que te puse anteriormente, ya que si te fijas, hay una clave única de temporalidad. Cuando concatena los nuevos valores al qvd lo hace teniendo en cuenta esa clave.

Evidentemente, al inicio de la carga del script, para el mesaño que yo recargo, elimino de los qvds correspondientes, los valores del mesaño que cargo en ese momento. Esto me permite hacer la carga de un determinado mes las veces que quiera.

En tu caso tendrías que hacerlo por horas, en lugar de por meses.

Un saludo,