Configuration d'une liste d'exclusion de colonnes

Lorsque vous préparez le chargement des données avec l'utilitaire de chargement de données, vous pouvez spécifier une liste de colonnes de table à exclure du processus de chargement. Une liste d'exclusion de colonnes vous permet d'empêcher que des colonnes ne soient remplacées si vous savez que ces colonnes contiennent déjà des données.

Pourquoi et quand exécuter cette tâche

Si une liste d'exclusion de colonnes est configurée, l'utilitaire de chargement de données n'a pas à charger des données dans chaque colonne d'une table. Par défaut, lorsque vous exécutez l'utilitaire de chargement de données en mode remplacement, il suppose que les données d'entrée que vous chargez constituent toujours la copie maîtresse des données. En raison de ce comportement, lorsque vous exécutez l'utilitaire de chargement de données, il remplace les données dans toutes les colonnes qui sont définies pour un objet métier. Si aucune donnée n'est incluse dans le fichier d'entrée pour une colonne, l'utilitaire remplace la valeur de colonne de base de données existante par la valeur par défaut configurée. Si aucune valeur par défaut n'est configurée, il efface la valeur de colonne de base de données configurée pour que la valeur soit NULL.

Par exemple, c'est le cas si vous chargez des données de catalogue afin de mettre à jour une description détaillée d'entrée de catalogue et que vous n'incluez pas de valeur pour la description abrégée dans le fichier d'entrée. Lorsque l'utilitaire s'exécute en mode remplacement, la description détaillée est mise à jour et la description abrégée dans la base de données est associée à la valeur NULL. Si vous ne voulez pas que la description abrégée change, incluez la valeur en cours pour la description abrégée dans le fichier d'entrée ou configurez l'exclusion de la colonne. Si vous ne configurez pas de liste d'exclusion de colonnes et exécutez l'utilitaire pour mettre à jour les données, assurez-vous que le fichier d'entrée comporte des données pour toutes les colonnes.

Vous pouvez exclure une colonne de base de données qui admet la valeur NULL ou qui possède une valeur par défaut, qui n'est pas NULL. Une colonne peut admettre la valeur NULL (contient une valeur NULL) ou peut ne pas être NULL et posséder une valeur par défaut. Si vous excluez une colonne qui n'admet pas les valeurs null, l'insertion de nouvelles lignes échoue.

Envisagez de configurer une liste d'exclusion de colonnes afin d'inclure des colonnes qui possèdent une valeur par défaut pouvant changer le comportement d'un objet métier qui peut être défini par des professionnels. Par exemple, si vous chargez des données d'attribut du dictionnaire d'attributs, vous pouvez décider d'exclure la colonne 'displayable'. Si vous n'incluez pas de valeur pour cette colonne, l'utilitaire définit pour elle la valeur NULL. Cette modification peut avoir un impact sur l'affichage dans la boutique en ligne des entrées de catalogue auxquelles l'attribut est affecté. Ainsi, les attributs qui sont définis de sorte à ne pas s'afficher pour les entrées de catalogue sont désormais affichables.

DB2
  • Toutes les colonnes générées, aussi bien les colonnes par défaut que les colonnes personnalisées, sont exclues automatiquement du processus de chargement si elles comportent déjà des données. Il n'est pas obligatoire de configurer une liste d'exclusion de colonnes pour inclure vos colonnes personnalisées.
Pour ajouter des colonnes à exclure, vous devez d'abord ajouter les éléments <_config:ColumnExclusionList> et <_config:table> après l'élément <_config:DataLoader> dans le fichier de configuration d'objet métier. A la suite de ces éléments, vous pouvez ensuite lister les colonnes pour exclusion.
  • L'élément <_config:ColumnExclusionList> identifie dans le fichier de configuration une liste de colonnes à exclure du processus de chargement. Il contient une liste des éléments <_config:table>.
  • L'élément <_config:table> identifie le nom du tableau dans la base de données qui contient les colonnes pour exclusion.

Lorsque vous configurez une liste d'exclusion, vous pouvez configurer la liste afin qu'elle ne s'applique que lorsque vous exécutez l'utilitaire de chargement de données pour mettre à jour des enregistrements. Par exemple, vous pouvez configurer l'utilitaire afin d'exclure des colonnes qui peuvent inclure une valeur définie par un professionnel qui est différente de la valeur figurant dans le fichier d'entrée. Vous pouvez configurer cette liste d'exclusion conditionnelle avec la propriété forUpdateOnly="true". Toutefois, lorsque vous exécutez l'utilitaire pour insérer des enregistrements, ce type de liste d'exclusion est ignoré et l'utilitaire charge des données dans toutes les colonnes. La propriété forUpdateOnly vous évite d'avoir à changer les colonnes dans les listes d'exclusion lorsque vous passez de l'insertion à la mise à jour de données, et inversement.

Procédure

  1. Ouvrez le fichier de configuration d'objet métier wc-loader-object.xml afin de l'éditer, où object est l'objet pour lequel vous chargez des données.
    Un exemple de ce fichier se trouve dans le répertoire suivant :
    • Linuxutilities_root/samples/DataLoad/Catalog
    • HCL Commerce DeveloperWCDE_installdir/samples/DataLoad/Catalog
    .
  2. Dans le fichier, recherchez l'élément <_config:DataLoader>.
  3. Ajoutez l'élément <_config:ColumnExclusionList> après l'élément <_config:DataLoader> afin d'identifier les colonnes à exclure.
    Par exemple :
    <_config:DataLoader className="com.ibm.commerce.foundation.dataload.BusinessObjectLoader">
    <_config:ColumnExclusionList></_config:ColumnExclusionList>
  4. Ajoutez l'élément <_config:table name=" " columns=" "/> après l'élément <_config:ColumnExclusionList>. Identifiez les colonnes de table pour exclusion.
    Par exemple :
    <_config:DataLoader className="com.ibm.commerce.foundation.dataload.BusinessObjectLoader" >
      <_config:ColumnExclusionList>
        <_config:table name="CATENTRY" columns="MFNAME,MFPARTNUMBER, FIELD4" />    
        <_config:table name="CATENTDESC" columns="LONGDESCRIPTION" />
      </_config:ColumnExclusionList>
    
    Remarque : Si vous voulez définir une liste d'exclusion de colonne de sorte qu'elle ne s'applique que lorsque l'utilitaire de chargement de données met à jour des enregistrements dans une table de base de données, incluez le paramètre forUpdateOnly associé à la valeur true :
        <_config:table name="CATENTDESC" columns="PUBLISHED" forUpdateOnly="true" />
    
    Si vous configurez une liste d'exclusion avec ce paramètre associé à la valeur true, lorsque vous mettez à jour un enregistrement de table avec un fichier d'entrée qui contient des modifications pour des colonnes exclues, l'utilitaire ne met pas à jour la valeur des colonnes exclues avec la valeur figurant dans le fichier d'entrée. Si la même opération de chargement inclut des données permettant de créer des enregistrements dans la table, l'utilitaire ignore la liste d'exclusion et insère les valeurs du fichier d'entrée dans toutes les colonnes pour les nouveaux enregistrements. Vous pouvez utiliser une liste dont les éléments sont séparés par une virgule afin d'indiquer pour chaque colonne si la valeur de la propriété forUpdateOnly est "true" ou "false".
    Par exemple, la liste d'exclusion ci-après définit la valeur de propriété "true" pour les colonnes "BUYABLE" et "FIELD2" et la valeur de propriété "false" pour la colonne "FIELD1". Lorsque l'utilitaire est exécuté pour mettre à jour des enregistrements, les colonnes "BUYABLE", "FIELD2" et "FIELD1" sont exclues. Lorsque l'utilitaire insère des données afin de créer des enregistrements dans le tableau, seule la colonne "FIELD1" est exclue.
        <_config:table name="CATENTRY" columns="BUYABLE, FIELD1, FIELD2" forUpdateOnly="true, false, true" />
    
    Si vous incluez plusieurs colonnes dans la valeur pour l'attribut name mais ne définissez pas un nombre égal de valeurs pour la propriété forUpdateOnly, la valeur finale qui est définie pour la propriété forUpdateOnly est appliquée à toutes les colonnes restantes. Par exemple, dans la configuration ci-après, la colonne "FIELD1" est exclue lorsque l'utilitaire met à jour ou insère des enregistrements. Les colonnes "BUYABLE", "FIELD2", "FIELD3" et "FIELD4" sont associées à la valeur de propriété "true" et sont exclues uniquement lorsque l'utilitaire met à jour des enregistrements existants.
        <_config:table name="CATENTRY" columns="BUYABLE, FIELD1, FIELD2, FIELD3, FIELD4" forUpdateOnly="true, false, true" />
    
  5. Enregistrez et fermez le fichier. Votre liste d'exclusion de colonnes est définie et l'utilitaire de chargement de données est configuré en vue de l'exclusion de ces colonnes lorsque vous l'exécutez en mode remplacement pour charger vos données.