CAMPAIGN CLASSIC - Consulta incremental recoge todos los registros en lugar de solo los nuevos

Descripción description

El cliente tiene varias consultas incrementales que no funcionan según lo esperado. En lugar de recoger solo los registros nuevos desde su última ejecución, están recogiendo todos los registros cada vez - como una normal Consulta actividad.

Resolución resolution

El culpable es el Cleanup flujo de trabajo.

El Consulta incremental El flujo de trabajo de funciona de esta manera:

  1. Mantener una tabla de historial con los resultados de iteraciones anteriores.
  2. Recupere TODAS las filas de la consulta de destino.
  3. Filtrar todas las filas presentes en la tabla del historial
  4. Añada los resultados restantes a la tabla del historial para el siguiente filtrado de iteraciones.

Por lo tanto, este nombre de tabla de trabajo del historial es de la siguiente notación:

wkfhistoworkflowid activityName_

Ahora, para workflowIDs 0 (para clientes donde la variable xtknewid permite secuencias negativas), vemos que en realidad es:

wkfhisto(uint)workflowId activityName_

Aunque esto es correcto para la ejecución del flujo de trabajo.

Por ejemplo, la actividad incremental incremental1 de flujo de trabajo ID=-1 creará una tabla wkfhisto4294967295_incremental1.

Lo que se echa de menos es el Cleanup flujo de trabajo.

Aquí tiene un código que intenta eliminar las tablas de trabajo de los flujos de trabajo eliminados.

Un código específico aquí enumera todas las tablas wkfisto*, extrae workflowId de sus nombres (de la convención anterior) y los elimina todos, excepto aquellos cuyos workflowID se encuentran en la tabla xtkworkflow.

Sin embargo, omite el uint parte.

Por lo tanto, intenta buscar un flujo de trabajo con 4294967295 de ID en lugar de volver a convertir esto en int. Dado que no se encuentra este flujo de trabajo, se elimina esta tabla. La próxima vez, cuando se ejecute este flujo de trabajo, Consulta incremental La actividad de no encuentra una tabla de historial existente y la crea pensando en esta como la primera ejecución de la historia.

Corrección:

La corrección de este problema está disponible en la versión 20.1.1 de Adobe Campaign Classic (versión 9122 y posteriores).

Soluciones alternativas que los clientes pueden utilizar:

Solución 1: detenga el flujo de trabajo de limpieza y ejecútelo de forma intermitente para limpiar la base de datos y el disco duro hasta que la corrección esté disponible. No se recomienda si no tiene planificada una actualización.

Solución 2: suponga que la variable Consulta incremental La actividad se ve afectada y soluciona el problema haciendo lo mismo que la actividad de Consulta incremental lo hace creando un esquema persistente para mantener el contenido de la tabla del historial. Utilice una combinación de Consulta y Actualización de datos actividades para imitar el comportamiento. Esto deberá hacerse para todos los flujos de trabajo que requieran la consulta incremental.

Solución 3: suponga que la variable Consulta incremental La actividad se ve afectada y puede solucionarla añadiendo un campo de auditoría (tsCreated/tsLastModified) al esquema en cuestión. La consulta incremental se convertirá a continuación en una actividad de consulta normal con una cláusula where como tscreated GetDate().

Solución 4:

  • Cree una nueva secuencia xtknewworkflowId e inicialícela con algo que esté lejos de los intervalos actuales de workflowId.
  • Cambie el esquema xtkworkflow para utilizarlo pkSequence
  • Pida al cliente que clone todos los flujos de trabajo afectados y elimine los originales.
  • Una vez que el cliente esté listo para una actualización, elimine esta corrección volviendo a xtknewId para la creación del flujo de trabajo (para evitar sorpresas no deseadas).
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f