Exemple de modifications apportées au script SQL de mise à niveau
L'exemple suivant illustre les modifications à effectuer dans le script SQL de mise à niveau aci_runtab_upgrd pour la prise en charge de référentiels supplémentaires.
L'environnement de conception d'Interact existant contient un référentiel supplémentaire appelé Foyer. Pour prendre en charge ce référentiel, la base de données de l'environnement d'exécution d'Interact contient des tables nommées HH_CHStaging et HH_RHStaging.
Changements requis à apporter au script de mise à niveau
Localisez dans le script SQL de mise à niveau le code qui met à jour les tailles de traitement et d'historique des réponses pour le référentiel Client (Customer) et répliquez-le pour le référentiel Foyer (Household). Dans ces instructions, modifiez les noms de table et indiquez les noms appropriés au référentiel Foyer.
Vous devez également vérifier que le code SQL prend en charge le changement de type de données pour la colonne SeqNum dans la table UACI_RHStaging. La valeur de SeqNum est un nombre séquentiel dans toutes les tables intermédiaires d'historique des réponses. La valeur suivante utilisée est suivie par la colonne NextID de la table UACI_IdsByType, où TypeID a pour valeur 2. Par exemple, supposons que vous disposez de trois référentiels : client, foyer et compte. Dans la table intermédiaire d'historique des réponses du client, le SeqNum le plus élevé a pour valeur 50. Dans la table intermédiaire de l'historique des réponse du foyer, le SeqNum le plus élevé a pour valeur 75. Dans la table intermédiaire de l'historique des réponses du compte, le SeqNum le plus élevé a pour valeur 100. Vous devez donc modifier le code SQL et attribuer la valeur 101 à NextID pour TypeID = 2 dans UACI_IdsByType.
L'exemple suivant d'instructions SQL illustre les ajouts devant être effectués dans le script aci_runtab_upgrd_sqlsvr.sql pour une base de données SQL Server contenant le référentiel Foyer. Le texte modifié pour assurer la prise en charge du référentiel Foyer est indiqué en gras :
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
go


insert 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
go


DROP 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
Pour les bases de données DB2® et Oracle, l'instruction suivante permet d'insérer des valeurs dans la table UACI_IdsByType :
INSERT into UACI_IdsByType (TypeID, NextID)
(select 2, COALESCE(max(a.seqnum)+1,1)
+ COALESCE(max(b.seqnum)+1,1)
from UACI_RHSTAGING a, ACCT_UACI_RHSTAGING b );
Dans le cas de référentiels multiples, vous devez ajouter des sections au script SQL aci_usrtab_upgrd pour chaque référentiel comme indiqué dans l'exemple ci-après. Cet exemple montre uniquement les ajouts modifiés.
ALTER TABLE HH_ScoreOverride ADD
OverrideTypeID int NULL,
CellCode varchar(64) NULL,
Zone varchar(64) NULL
go

ALTER TABLE HH_ScoreOverride ADD
Predicate varchar(4000) NULL,
FinalScore float NULL,
EnableStateID int NULL
go

CREATE INDEX iScoreOverride_IX1 ON HH_ScoreOverride
(
HouseHoldID ASC
)
go