Шагу 5 не удается перенастроить записи хронологии контактов и ответов, относящиеся к периоду времени до 2000 г.
Проблема или ошибка: Шагу 5 не удается перенастроить записи хронологии контактов и ответов, датированные 1 января 2000 г., и на экране появляется ошибка нарушены ограничения сохранения целостности (родительский ключ не найден).
Решение: По умолчанию, в таблице UA_Calendar содержатся записи DateID, начинающиеся с 20000101 (что соответствует 1 января 2000 г.). Записи хронологии контактов и ответов, относящиеся к периоду времени до 1 января 2000 г., не удается перенастроить, так как значения ContactDateTime или ResponseDateTime относятся к ID дат, которых нет в таблице UA_Calendar.
Чтобы обойти эту проблему, выполните эти шаги, чтобы заполнить таблицу целевой системы UA_Calendar ID требуемых дат.
1.
select min(ContactDate) from UA_ContactHistory
select min(ResponseDate) from UA_ResponseHistory
2.
Заполните таблицу целевой системы UA_Calendar, используя ID дат для требуемого диапазона дат. В следующем примере для сервера SQL описано, как вставлять записи за период с 1 января 1999 г. до 31 декабря 1999 г. Замените значения, выделенные полужирным шрифтом, чтобы задать, соответственно, начальные и конечные даты.
*
В следующем примере код взят из сценария ac_populate_tables_sqlsvr.sql в каталоге ddl в расположении установки Campaign. Если ваша база данных - DB2® или Oracle, используйте код из сценария DDL для вашего типа базы данных (ac_populate_tables_db2.sql - для DB2® или ac_populate_tables_ora.sql - для 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)

завершение