Spécification d'un fichier de propriétés à l'aide d'ID Resolver

ID Resolver vous permet d'utiliser un autre fichier de propriétés Java pour indiquer les colonnes d'une entrée principale à utiliser à titre de consultation pour des tables nécessitant l'identificateur d'une ligne principale. 

Le fichier de propriétés par défaut est IdResolveKeys.properties, mais vous pouvez, si vous le souhaitez, le modifier ou spécifier votre propre fichier en appelant l'instruction de résolution d'ID.

Windows NT Windows 2000 AIX Solaris Linux IdResolveKeys.properties se trouve dans le répertoire à partir duquel ID Resolver est appelé.

iSeries Pour modifier le fichier IdResolveKeys.properties, copiez-le à partir du répertoire /QIBM/ProdData/WebCommerce/properties, sauvegardez-le dans le répertoire /racine_inst/xml, puis apportez les modifications nécessaires au nouveau fichier.
Remarque :  le répertoire ci-dessus se trouve dans le chemin de classe utilisé par l'instruction RESWCSID.

Utilisation d'un fichier de propriétés pour générer des identificateurs

Dans l'exemple ci-dessous, il faut résoudre les identificateurs ADDRBOOK_ID et ADDRESS_ID correspondant aux enregistrements ADDRBOOK et ADDRESS. Ceux des enregistrements MEMBER sont déjà connus. Chaque enregistrement nécessite un identificateur valide pour la base de données WebSphere Commerce. En outre, l'ID ADDRBOOK_ID contenu dans l'enregistrement ADDRESS nécessite l'identificateur provenant de la table primaire pour satisfaire à sa contrainte de clé associée.

  <MEMBER
    MEMBER_ID="100"
    TYPE="U"
    STATE="1"
  />
  <MEMBER
    MEMBER_ID="101"
    TYPE="U"
    STATE="1"
  />
  <ADDRBOOK
    MEMBER_ID="100"
    DISPLAYNAME="Amis"            Valeur effective de la colonne DISPLAYNAME
    DESCRIPTION="Tous mes amis"
    TYPE="P"
  />
  <ADDRESS
    ADDRBOOK_ID="@Amis"           Réfère à ADDRBOOK à l'aide de la valeur DISPLAYNAME 
                                     comme moyen de recherche
    MEMBER_ID="101"
    NICKNAME="Bob"
    ADDRESS1="15, rue Amelot"
    CITY="Toronto"
    ZIPCODE="A0A0A0"
    COUNTRY="Canada"
    STATUS="P"
  />

Il vous faut un fichier de propriétés pour identifier les colonnes de la ligne principale qui seront utilisées par les lignes de relation lors de la résolution de l'identificateur pour la colonne de clé associée. La procédure ci-dessous garantie que l'analyse syntaxique du fichier précédent s'exécute correctement :

Dans le fichier IdResolveKeys.properties, spécifiez les informations suivantes :

  NAMEDELIMITER=@
  SELECTDELIMITER=:

  ADDRBOOK=@DISPLAYNAME:DISPLAYNAME
  ADDRESS=@NICKNAME:NICKNAME

NAMEDELIMITER et SELECTDELIMITER définissent les délimiteurs utilisés dans tout le fichier de propriétés et doivent être utilisés de manière cohérente.

ADDRBOOK=@DISPLAYNAME:DISPLAYNAME indique que, lorsqu'un enregistrement de carnet d'adresses est reçu, l'identificateur de la ligne de ce carnet d'adresses est créé. Alors, la zone DISPLAYNAME est extraite de l'enregistrement d'entrée et est utilisée pour former une association avec le nouvel identificateur. La chaîne DISPLAYNAME est utilisée pour faire correspondre le DISPLAYNAME de la ligne du carnet d'adresses afin de résoudre l'identificateur nécessaire à la clé associée.

En utilisant l'exemple d'entrée précédent, dans lequel le DISPLAYNAME est Amis, considérons que l'identificateur créé pour cet enregistrement est 12951. Le DISPLAYNAME est utilisé comme détecteur clé de 12951. Le traitement passe à l'enregistrement suivant, ADDRESS, où ADDRBOOK_ID se présente sous la forme "@...", ce qui indique que ce qui suit le délimiteur doit être utilisé pour rechercher l'identificateur du carnet d'adresses. La chaîne correspond à DISPLAYNAME et 12951 est renvoyée et placée dans l'attribut ADDRBOOK_ID.

  <MEMBER
    MEMBER_ID="100"
    TYPE="U"
    STATE="1"
  />
  <MEMBER
    MEMBER_ID="101"
    TYPE="U"
    STATE="1"
  />
  <ADDRBOOK
    ADDRBOOK_ID="12951"                  Clé primaire générée
    MEMBER_ID="100"
    DISPLAYNAME="Amis"                Valeur de ADDRBOOK DISPLAYNAME inchangée
    DESCRIPTION="Tous mes amis"
    TYPE="P"
  />
  <ADDRESS
    ADDRESS_ID="13051"                   Clé primaire générée
    ADDRBOOK_ID="12951"                  ADDRESS réfère à la correcte ADDRBOOK
    MEMBER_ID="101"
    NICKNAME="Bob"
    ADDRESS1="15, rue Amelot"
    CITY="Toronto"
    ZIPCODE="A0A0A0"
    COUNTRY="Canada"
    STATUS="P"
  />

Utilisation d'un fichier de propriétés avec clés composées

Une clé constituée de plus de deux colonnes est une clé composée. Vous pouvez définir une recherche par clés composées dans les fichiers de propriétés en spécifiant NAMEDELIMITER et SELECTDELIMITER, suivis des noms de zones. Par exemple, pour que les critères de recherche des enregistrements ADDRBOOK soient le composé du nom affiché et de l'ID membre, indiquez les informations suivantes dans le fichier de propriétés :

  ADDRBOOK=@DISPLAYNAME@MEMBER_ID:DISPLAYNAME MEMBER_ID

Ensuite, le fragment de fichier d'entrée XML suivant :

  <ADDRBOOK
    MEMBER_ID="100"
    DISPLAYNAME="Amis"                ADDRBOOK "Amis" de MEMBER 100
    DESCRIPTION="Tous mes amis"
    TYPE="P"
  />
  <ADDRBOOK
    MEMBER_ID="101"
    DISPLAYNAME="Amis"                ADDRBOOK "Amis" de MEMBER 101
    DESCRIPTION="Tous mes amis"
    TYPE="P"
  />
  <ADDRESS
    ADDRBOOK_ID="@Amis@100"           Recherche la clé primaire pour ADDRBOOK 
                                         "Amis" de MEMBER 100
    MEMBER_ID="101"
    NICKNAME="Bob"
    ADDRESS1="15, rue Amelot"
    CITY="Toronto"
    ZIPCODE="A0A0A0"
    COUNTRY="Canada"
    STATUS="P"
  />

produirait le fragment suivant après résolution :

  <MEMBER
    MEMBER_ID="100"
    TYPE="U"
    STATE="1"
  />
  <MEMBER
    MEMBER_ID="101"
    TYPE="U"
    STATE="1"
  />
  <ADDRBOOK
    ADDRBOOK_ID="12951"                  ADDRBOOK d'intérêt
    MEMBER_ID="100"
    DISPLAYNAME="Amis"
    DESCRIPTION="Tous mes amis"
    TYPE="P"
  />
  <ADDRBOOK
    ADDRBOOK_ID="12952"
    MEMBER_ID="101"
    DISPLAYNAME="Amis"
    DESCRIPTION="Tous mes amis"
    TYPE="P"
  />
  <ADDRESS
    ADDRESS_ID="13051"
    ADDRBOOK_ID="12951"                  ADDRESS réfère à la correcte ADDRBOOK
    MEMBER_ID="101"
    NICKNAME="Bob"
    ADDRESS1="15, rue Amelot"
    CITY="Toronto"
    ZIPCODE="A0A0A0"
    COUNTRY="Canada"
    STATUS="P"
  />

Utilisation d'un fichier de propriétés avec clés primaires en cascade

La table primaire STOREENT définit une clé primaire STOREENT_ID. STORE, une table externe, référençant STOREENT, définit une clé primaire STORE_ID qui est une clé associée à la table primaire STOREENT. Cela signifie que la valeur de STORE_ID doit être l'une des valeurs de STOREENT_ID. STORE_ID, la clé primaire de la table externe STORE, a, par conséquent, une double fonction : de clé primaire et de clé associée.

Supposons qu'une autre table, CONTRACT, soit une table externe sur STORE et que la clé associée pour CONTRACT, STORE_ID, fasse référence à la clé primaire STORE_ID de STORE. La table STORE est par conséquent une table primaire par rapport à la table CONTRACT.

Puisque l'identificateur STORE_ID de la table STORE est référencé à partir de STOREENT_ID plutôt que créé, l'utilitaire ID Resolver ne crée pas d'alias interne ni d'association de valeur d'ID pour la table STORE. Lorsque la table CONTRACT tente de résoudre le STORE_ID à partir de la table STORE, elle obtient aucune valeur.

Du fait de cette condition spéciale, vous devez spécifier de manière explicite la création de l'alias interne en créant une entrée dans le fichier de propriétés. Dans le fichier IdResolveKeys.properties, spécifiez les informations suivantes :

  "STORE=@STORE_ID:STORE_ID"

Cela force ID Resolver à procéder comme suit :

Utilisation de l'entrée STORE=@STORE_ID:STORE_ID dans le fichier de propriétés et dans le fragment de fichier d'entrée XML suivant :

  <STOREENT
    IDENTIFIER="Out Fashions"
    MEMBER_ID="-2000"
    STOREENT_ID="@storeent_id_1"
    TYPE="G"
  />
  <STORE
    STORE_ID="@storeent_id_1"
    STOREGRP_ID="1"
    STORELEVEL="store_level"
  />
  <CONTRACT
    CONTRACT_ID="@contract_id_1"
    STATE="0"
    STORE_ID="@storeent_id_1"
  />

produirait le fragment suivant après résolution :

  <STOREENT
    IDENTIFIER="Out Fashions"
    MEMBER_ID="-2000"
    STOREENT_ID="10501"
    TYPE="G"
  />
  <STORE
    STORE_ID="10501"
    STOREGRP_ID="1"
    STORELEVEL="store_level"
  />
  <CONTRACT
    CONTRACT_ID="@contract_id_1"
    STATE="0"
    STORE_ID="10501"
  />

Rubriques connexes

Tâches connexes

Référence connexe

IBM copyright