L'ambiente di progettazione Interact esistente contiene un livello destinatario aggiuntivo chiamato Nucleo familiare. Per supportare questo livello destinatario, il database dell'ambiente di runtime
Interact contiene le tabelle denominate
HH_CHStaging e
HH_RHStaging.
È necessario, inoltre, rivedere l'SQL per il supporto alla modifica del tipo di dati per la colonna SeqNum nella tabella
UACI_RHStaging. Il valore di
SeqNum è un numero sequenziale in tutte le tabelle di staging della cronologia delle risposte. Il valore successivo utilizzato viene tracciato dalla colonna
NextID nella tabella
UACI_IdsByType dove
TypeID è
2. Ad esempio, si dispone di tre livelli destinatario, cliente, nucleo familiare ed account. Nella tabella di staging della cronologia delle risposte cliente il valore
SeqNum più elevato è
50. Nella tabella di staging della cronologia delle risposte nucleo familiare il valore
SeqNum più elevato è
75. Nella tabella di staging della cronologia delle risposte account il valore
SeqNum più elevato è
100. Quindi, è ecessario modificare l'SQL per impostare
NextID per
TypeID = 2 in
UACI_IdsByType su
101.
Le istruzioni SQL di esempio riportate di seguito mostrano le aggiunte obbligatorie allo script aci_runtab_upgrd_sqlsvr.sql per un database del server SQL contenente il livello destinatario Nucleo familiare. Il testo che è stato modificato per supportare il livello destinatario Nucleo familiare è in grassetto:
ALTER TABLE UACI_CHStaging ADD RTSelectionMethod int NULL
go
ALTER TABLE UACI_RHStaging ADD RTSelectionMethod int NULL
go
ALTER TABLE HH_CHStaging ADD RTSelectionMethod int NULL
go
ALTER TABLE HH_RHStaging ADD RTSelectionMethod int NULL
goinsert into UACI_IdsByType (TypeID, NextID) (select 2,
IDENT_CURRENT('UACI_RHStaging')
+ IDENT_CURRENT('HH_RHStaging') + IDENT_INCR( 'UACI_RHStaging' ))
go
select * into UACI_RHStaging_COPY from UACI_RHStaging
go
select * into HH_RHStaging_COPY from HH_RHStaging
goDROP TABLE UACI_RHStaging
go
CREATE TABLE UACI_RHStaging (
SeqNum bigint NOT NULL,
TreatmentCode varchar(512) NULL,
CustomerID bigint NULL,
ResponseDate datetime NULL,
ResponseType int NULL,
ResponseTypeCode varchar(64) NULL,
Mark bigint NOT NULL
DEFAULT 0,
UserDefinedFields char(18) NULL,
RTSelectionMethod int NULL,
CONSTRAINT iRHStaging_PK
PRIMARY KEY (SeqNum ASC)
)
go
insert into UACI_RHStaging (SeqNum, TreatmentCode, CustomerID, ResponseDate,
ResponseType, ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod)
(select SeqNum, TreatmentCode, CustomerID, ResponseDate, ResponseType,
ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod from
UACI_RHStaging_COPY)
go
DROP TABLE UACI_RHStaging_COPY
go
DROP TABLE HH_RHStaging
go
CREATE TABLE HH_RHStaging (
SeqNum bigint NOT NULL,
TreatmentCode varchar(512) NULL,
HouseholdID bigint NULL,
ResponseDate datetime NULL,
ResponseType int NULL,
ResponseTypeCode varchar(64) NULL,
Mark bigint NOT NULL
DEFAULT 0,
UserDefinedFields char(18) NULL,
RTSelectionMethod int NULL,
CONSTRAINT iRHStaging_PK
PRIMARY KEY (SeqNum ASC)
)
go
insert into HH_RHStaging (SeqNum, TreatmentCode, HouseHoldID, ResponseDate,
ResponseType, ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod)
(select SeqNum, TreatmentCode, HouseHoldID, ResponseDate, ResponseType,
ResponseTypeCode, Mark, UserDefinedFields, RTSelectionMethod from
HH_RHStaging_COPY)
go
DROP TABLE HH_RHStaging_COPY
go
Per i database DB2® e Oracle, viene utilizzata l'istruzione seguente per l'inserimento di valori nella tabella
UACI_IdsByType:
In caso di più destinatari, è necessario aggiungere le sezioni allo script SQL aci_usrtab_upgrd per ogni livello destinatario come illustrato nell'esempio di seguito. L'esempio mostra solo le aggiunte modificate.