La etapa 5 no puede migrar los registros del historial de contactos y de respuestas anteriores al año 2000
Problema o error: la etapa 5 no puede migrar registros del historial de contactos y de respuestas con fecha anterior al 1 de enero de 2000 y muestra un error de violación de las restricciones de integridad (no se ha encontrado la clave padre).
Solución: de forma predeterminada, la tabla UA_Calendar contiene registros DateID que empiezan por 20000101 (correspondiente al 1 de enero de 2000). Los registros del historial de contactos y de respuestas anteriores al 1 de enero de 2000 no se pueden migrar debido a que sus valores ContactDateTime o ResponseDateTime hacen referencia a ID de fecha que no existen en la tabla UA_Calendar.
Para solucionar este problema, siga estos pasos para rellenar la tabla UA_Calendar del sistema de destino con los ID de fecha necesarios.
1.
select min(ContactDate) from UA_ContactHistory
select min(ResponseDate) from UA_ResponseHistory
2.
Rellene la tabla UA_Calendar del sistema de destino con los ID de fecha para los rangos de fecha que desee. En el siguiente ejemplo de SQL Server se insertan registros para el 1 de enero de 1999 al 31 de diciembre de 1999. Sustituya los valores en negrita para especificar las fechas de inicio y fin, respectivamente.
*
El siguiente código de ejemplo procede del script ac_populate_tables_sqlsvr.sql del directorio dll de la instalación de Campaign. Si la base de datos es DB2® u Oracle, utilice el código del script DDL para el tipo de base de datos (ac_populate_tables_db2.sql para DB2® o ac_populate_tables_ora.sql para Oracle).
declare @date_v datetime
set @date_v = '
01/01/1999'
set datefirst 7
set dateformat mdy
while @date_v <= '12/31/1999'
begin
insert into UA_Calendar
(Year, FiscalYear, Quarter, FiscalQuarter,
Month,
WeekOfYear,
WeekOfMonth,
DayOfYear, DayOfMonth, DayOfWeek,
ActualDate,
FirstDayOfWeek,
LastDayOfWeek,
DateID) values
(DATEPART(yyyy, @date_v), DATEPART(yyyy, @date_v), DATEPART(q,
@date_v),DATEPART(q, @date_v),
DATEPART(mm, @date_v),
DATEPART(ww, @date_v),
DATEDIFF(dd, DATEADD(dd,-1,DATEADD(ww, DATEDIFF(ww,0,DATEADD(dd,-
(DAY(@date_v)-1),@date_v)), 0)), @date_v)/7 + 1,
DATEPART(dy, @date_v), DATEPART(dd, @date_v), DATEPART(dw, @date_v),
@date_v,
DATEADD(dd, -1, DATEADD(wk, DATEDIFF(wk,0,@date_v), 0)),
DATEADD(dd, 5, DATEADD(wk, DATEDIFF(wk,0,@date_v), 0)),
CAST (CONVERT (varchar(20), @date_v, 112) AS BIGINT))
set @date_v = DATEADD(dd, 1, @date_v)

end