Les données XML devant être chargées dans une base de données cible doivent contenir les identificateurs des éléments XML pour lesquels ils sont nécessaires. Pour générer ou localiser des identificateurs pour des entités de catalogue dans le document XML, appelez l'instruction ID Resolve.
L'ID Resolver ne convertit que les identificateurs d'une table primaire. Une table primaire est une table répertoriée dans la table KEYS ou SUBKEYS. S'il faut résoudre les identificateurs d'une table qui ne figure pas dans KEYS ou SUBKEYS, ajoutez cette table manquante à la table SUBKEYS avant de lancer l'ID Resolver.
Méthodes
Cette instruction vous permet de choisir la méthode de chargement, de mise à jour ou mixte pour traiter le fichier d'entrée.
Méthode de chargement : cette méthode d'ID Resolver permet de créer des identificateurs pour les enregistrements chargés dans la base de données. Par ce biais, de nouveaux identificateurs sont créés pour les enregistrements. L'exemple suivant est utilisé pour générer des identificateurs pour de nouvelles données :
![]()
![]()
![]()
![]()
![]()
idresgen -dbname db -dbuser user -dbpwd pwd -infile input.xml
-outfile output.xml -method load -customizer customizerRemarque : la méthode de chargement est la méthode par défaut.
![]()
QWEBCOMM/RESWCSID DATABASE(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mon_mot_de_passe)
INFILE(entrée.xml) OUTFILE(sortie.xml) METHOD(*LOAD)
Méthode de mise à jour : Si vous spécifiez la méthode de mise à jour d'ID Resolver, les enregistrements, dans le fichier d'entrée, doivent déjà exister dans la base de données. L'ID Resolver localise les identificateurs dans la base de données. Si un enregistrement n'existe pas dans la base de données, l'ID Resolver ne pourra pas convertir l'identificateur de cet enregistrement et il indiquera qu'une erreur s'est produite. L'exemple suivant est utilisé pour localiser des identificateurs de données qui existent déjà dans la base de données :
![]()
![]()
![]()
![]()
![]()
idresgen -dbname db -dbuser user -dbpwd pwd -infile input.xml
-outfile output.xml -method update -customizer customizer
![]()
QWEBCOMM/RESWCSID DATABASE(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mon_mot_de_passe)
INFILE(entrée.xml) OUTFILE(sortie.xml) METHOD(*UPD)
Méthode mixte : Si le fichier de données d'entrée contient des enregistrements qui existent déjà dans la base de données ainsi que quelques enregistrements nouveaux, ID Resolver doit être exécuté à l'aide de la méthode mixte. Avec cette méthode, ID Resolver crée de nouveaux identificateurs pour des enregistrements seulement si ceux-ci n'existent pas dans la base de données. Sinon, l'identificateur existant est obtenu à partir de la base de données. L'exemple suivant est utilisé pour générer des identificateurs pour de nouvelles données et pour localiser des identificateurs pour des données qui existent déjà dans la base de données :
![]()
![]()
![]()
![]()
![]()
idresgen -dbname db -dbuser user -dbpwd pwd -infile input.xml
-outfile output.xml -method mixed -customizer customizer
![]()
QWEBCOMM/RESWCSID DATABASE(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mon_mot_de_passe)
INFILE(entrée.xml) OUTFILE(sortie.xml) METHOD(*MIX)
Conseils pour l'identification et la résolution des incidents
Si des erreurs se produisent lors de la conversion d'identificateurs, reportez-vous au tableau suivant :
Erreur | Méthode utilisée | Cause possible | Solution possible | |
Clé primaire non résolue |
All | L'utilitaire de résolution d'ID ne résout pas la clé primaire (identificateur) dans une table qui n'est pas indiquée comme étant dans la table KEYS ou SUBKEYS. | Ajoutez le nom de la table pour laquelle la clé primaire doit être résolue à la table SUBKEYS avant d'exécuter l'utilitaire de résolution d'ID. | |
Update | La clé primaire est résolue par interrogation de la base de données. Cette interrogation est créée à partir des informations d'entrée du fichier propriétés ou de l'index à entrées uniques pour la table donnée. L'entrée de fichier de propriétés est prioritaire. | Vérifiez que les informations d'index à entrées uniques figurant dans le fichier d'entrée sont correctes.
Vous pouvez également créer ou modifier l'entrée appropriée dans le fichier de propriétés pour générer l'interrogation de base de données qui permettra de résoudre la clé primaire. |
||
Clé associée non résolue |
All | L'utilitaire de résolution d'ID ne résout pas la clé associée dans une table où les références sont associées à des tables qui ne sont pas indiquées comme étant dans la table KEYS ou SUBKEYS. | Ajoutez le nom de la table associée à la table SUBKEYS avant d'exécuter l'utilitaire de résolution d'ID. En outre, vérifiez que l'association de clé existe bien dans le schéma de la base de données. |
|
La clé associée est résolue à l'aide de l'alias interne ou par interrogation de la base de données. La base de données est interrogée uniquement si l'alias interne ne parvient à résoudre la clé associée. | Vous pouvez créer l'alias interne à l'aide de la clé primaire et l'entrée de fichier de propriétés. | Vérifiez que les valeurs d'alias interne utilisées comme source et cible dans le fichier d'entrée sont correctes. | ||
Cette interrogation est créée à partir des informations d'entrée du fichier propriétés ou de l'index à entrées uniques pour la table donnée. L'entrée de fichier de propriétés est prioritaire. | Vérifiez que les informations d'index à entrées uniques figurant dans le fichier d'entrée sont correctes.
Vous pouvez également créer ou modifier l'entrée appropriée dans le fichier de propriétés pour générer l'interrogation de base de données qui permettra de résoudre la clé primaire. |
![]() |