La fase 5 non consente la migrazione dei record della cronologia delle risposte e dei contatti precedenti all'anno 2000
Problema o errore: la fase 5 non consente la migrazione dei record della cronologia delle risposte e dei contatti precedenti al 1 gennaio 2000 e visualizza un errore integrity constraints violated (parent key not found).
Soluzione: per impostazione predefinita, la tabella UA_Calendar contiene record DateID che iniziano con 20000101 (corrispondenti al 1 gennaio 2000). I record della cronologia delle risposte e dei contatti precedenti al 1 gennaio 2000 non vengono migrati poiché i relativi valori ContactDateTime o ResponseDateTime fanno riferimento ad ID data inesistenti nella tabella UA_Calendar.
Per ovviare a questo problema, seguire questa procedura per popolare la tabella UA_Calendar del sistema di destinazione con gli ID data richiesti.
1.
select min(ContactDate) from UA_ContactHistory
select min(ResponseDate) from UA_ResponseHistory
2.
Popolare la tabella UA_Calendar del sistema di destinazione con ID data per l'intervallo di date desiderato. Il seguente esempio per il server SQL inserisce i record per il 1 gennaio 2000 al 31 dicembre 1999. Sostituire i valori in grassetto per specificare rispettivamente le date di inizio e di fine.
*
il seguente codice di esempio deriva dallo script ac_populate_tables_sqlsvr.sql nella directory ddl all'interno dell'installazione Campaign. Se si adopera un database DB2® oppure Oracle, utilizzare il codice dello script nella DDL per il tipo di database in uso (ac_populate_tables_db2.sql per DB2® o ac_populate_tables_ora.sql per 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