El cliente tiene varias consultas incrementales que no funcionan según lo esperado. En lugar de recoger solamente registros nuevos desde su última ejecución, están recogiendo todos los registros cada vez - como una Consulta actividad.
El culpable es el Limpieza flujo de trabajo.
La variable Consulta incremental flujo de trabajo funciona de esta manera:
Por lo tanto, este nombre de tabla de trabajo del historial es de la siguiente notación:
wkfhistoworkflowid activityName_
Ahora, para los ID de flujo de trabajo 0 (para clientes donde la variable xtknewid
permite secuencias negativas), vemos que en realidad es:
wkfhisto(uint)workflow activityName_
Aunque esto está bien para la ejecución del flujo de trabajo.
Por ejemplo, la actividad incremental incremental1
de ID de flujo de trabajo=-1 creará una tabla wkfhisto4294967295_incremental1
.
Lo que se pasa por alto es el Limpieza flujo de trabajo.
Aquí tiene un código que intenta eliminar tablas de trabajo de flujos de trabajo eliminados.
Aquí, un código dedicado enumera todas las tablas wkfhisto*, extrae workflowId de sus nombres (de la convención anterior) y los elimina de todos excepto de aquellos cuya worklowIDs se encuentra en la tabla xtkworkflow.
Sin embargo, se pierde el uint
parte.
Por lo tanto, intenta buscar un flujo de trabajo con el ID 4294967295 en lugar de ponerlo de nuevo en int. Dado que no se encuentra este flujo de trabajo, se elimina esta tabla. La próxima vez que se ejecute este flujo de trabajo, la variable Consulta incremental activity no encuentra una tabla de historial existente y la crea pensando en esto como la primera ejecución de la historia.
Se ha corregido un problema que hacía que se mostrara:
La solución para este problema está disponible en la versión 20.1.1 de Adobe Campaign Classic (versión 9122 y posteriores).
Soluciones 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 recomendado si no tiene una actualización planificada.
Solución 2: Supongamos que la variable Consulta incremental la actividad se ve afectada y se puede solucionar haciendo lo mismo que la Consulta incremental lo hace creando un esquema persistente para guardar el contenido de la tabla del historial. Utilice una combinación de Consulta y Actualización de datos para imitar el comportamiento. Esto debe hacerse para todos los flujos de trabajo que requieren la consulta incremental.
Solución 3: Supongamos que la variable Consulta incremental la actividad se ve afectada y evite la operación añadiendo un campo de auditoría (tsCreated/tsLastModified) al esquema en cuestión. La consulta incremental se convertirá a una actividad de consulta normal con una cláusula "where" como tscreated GetDate()
.
Solución 4:
pkSequence
xtknewId
para la creación del flujo de trabajo (para evitar sorpresas no deseadas).