Personnalisation de l'intégration de flux Web : Remplissage d'une adresse URL ou de son contenu dans une table personnalisée

Sans personnalisation, les médiateurs qui sont fournis avec la fonction d'intégration de flux Web chargent les données dans des tables de base de données spécifiques seulement. Pour charger le contenu dans d'autres tables, vous devez utiliser le médiateur com.ibm.commerce.foundation.dataload.businessobjectmediator.TableObjectMediator au cours du processus de chargement.

Sans personnalisation, les médiateurs qui sont fournis avec la fonction d'intégration de flux Web chargent les données dans les tables ATCHAST, ATCHTGT, ATCHREL et CMFILE. Le contenu d'URL, la source de contenu, le titre du contenu ou le nom de la mappe de flux peut être transmis au médiateur TableObjectMediator.

Avant de commencer

Assurez-vous de configurer le fichier de configuration de l'environnement de l'utilitaire de chargement de données.

Pourquoi et quand exécuter cette tâche

Cette tâche explique comment configurer un fichier de configuration d'objet métier pouvant être utilisé pour remplir une table personnalisée. Dans le fichier de configuration d'objet métier, vous devez configurer les paramètres pour le générateur d'objet métier afin d'identifier les colonnes de table qui doivent être remplies avec des données au cours du processus de chargement. Vous devez aussi vous assurer que les éléments IDResolve requis sont configurés.

Procédure

  1. Crée un fichier Web-feed-config.xml.
    1. Accédez au répertoire suivant :
      • WCDE_installdir\samples\DataLoad\Content\WebFeed
    2. Copiez l'exemple de fichier sample-Web-Feed-config.xml. Renommez la copie du fichier.
      Par exemple, vous pouvez renommer le fichier pour qu'il soit Web-Feed-config.xml.
      Remarque : vous pouvez coller votre fichier copié dans un autre répertoire. Dans ce cas, le chemin d'accès à l'emplacement du fichier copié reste le répertoire WebFeed. Si vous collez le fichier copié dans un autre répertoire, mettez à jour les chemins de fichier dans les étapes ci-après afin d'utiliser le chemin d'accès à votre fichier de configuration copié.
    3. Ouvrez le fichier pour l'éditer. Mettez à jour le fichier en fonction de vos exigences.
      Utilisez le content:URLAttachment dans l'élément config:content. Assurez-vous que l'élément suivant est spécifié dans le fichier et que l'élément generate est associé à la valeur "false" :
      <config:dataLoadConfigFile generate="false" envFileLocation="envFile_Path">configFile_Path</config:dataLoadConfigFile>
      envFile_Path
      Chemin d'accès au fichier de configuration de l'environnement de l'utilitaire de chargement de données.
      configFile_Path
      Chemin d'accès au fichier de configuration de chargement de données qui est utilisé avec l'utilitaire de flux Web.
    4. Enregistrez et fermez le fichier.

      Pour plus d'informations sur la mise à jour de l'exemple de fichier afin de créer votre propre fichier de configuration de l'utilitaire de flux Web, voir Configuration de l'utilitaire de flux Web.

  2. Dans un utilitaire de ligne de commande, accédez au répertoire suivant :
    • LinuxWC_installdir/bin
    • HCL Commerce DeveloperWCDE_installdir\bin
  3. Exécutez l'utilitaire webFeedLoad avec l'option GenerateDataLoadConfigOnly :
    • Linux./webFeedLoad.sh ../samples/DataLoad/Content/Web-feed-config.xml -DGenerateDataLoadConfigOnly=true -Dwaspath=WC_ear -DlogFileWithTimestamp=true
    • HCL Commerce DeveloperwebFeedLoad.bat ..\samples\DataLoad\Content\Web-feed-config.xml -DGenerateDataLoadConfigOnly=true -DlogFileWithTimestamp=true
    Un fichier wc-loader-URLAttachment.xml est généré dans le répertoire qui est spécifié dans Web-feed-config.xml pour le fichier de configuration de l'ordre de chargement des données. Par exemple, si le fichier Web-feed-config.xml spécifie un répertoire temp, le fichier wc-loader-URLAttachment.xml peut être généré dans le répertoire suivant :
    • LinuxWC_installdir/samples/DataLoad/Content/WebFeed/temp/wc-loader-URLAttachment.xml
    • HCL Commerce DeveloperWCDE_installdir\samples\DataLoad\Content\WebFeed\temp\wc-loader-URLAttachment.xml
  4. Ouvrez le fichier de configuration d'objet métier wc-loader-URLAttachment.xml généré pour l'éditer. Ajoutez un élément BusinessObjectBuilder pour les tables personnalisées dans lesquelles charger des données avec TableObjectMediator.
    Par exemple, si vous voulez charger des données dans les tables de base de données COLLDESC, ATCHREL et COLLATERAL, la configuration du générateur d'objet métier peut ressembler au fragment de code ci-dessous. Vous pouvez utiliser une approche similaire pour charger des données dans d'autres tables.
    <_config:BusinessObjectBuilder className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.TableObjectBuilder">
    <!-- 
    Table:   COLLATERAL
    Columns: COLLATERAL_ID,COLLTYPE_ID,STOREENT_ID,NAME
    -->
    <_config:Table name="COLLATERAL" >
     <_config:Column name="COLLATERAL_ID" value="CollateralId" valueFrom="IDResolve">
      <_config:IDResolve tableName="COLLATERAL" generateNewKey="true">
      </_config:IDResolve>
     </_config:Column>
     <_config:Column name="COLLTYPE_ID" value="1" valueFrom="fixed">
     </_config:Column>
     <_config:Column name="NAME" value="Name">
     </_config:Column>
     <_config:Column name="STOREENT_ID" value="storeId" valueFrom="BusinessContext"/>
    </_config:Table>
    
    <!-- 
    Table:   COLLDESC
    Columns: COLLATERAL_ID,LANGUAGE_ID
    -->
    <_config:Table name="COLLDESC" >
     <_config:Column name="COLLATERAL_ID" value="CollateralId" valueFrom="IDResolve">
      <_config:IDResolve tableName="COLLATERAL" primaryKeyColumnName="COLLATERAL_ID" >
       <_config:UniqueIndexColumn name="NAME" value="Name"/>
       <_config:UniqueIndexColumn name="STOREENT_ID" value="storeId" valueFrom="BusinessContext"/>
      </_config:IDResolve>
     </_config:Column>
     <_config:Column name="LANGUAGE_ID" value="langId" valueFrom="BusinessContext">
     </_config:Column>
    </_config:Table>
    
    <!--
    Table: ATCHREL
    Columns: OBJECT_ID, ATCHOBJTYP_ID, ATCHRLUS_ID, ATCHTGT_ID 
    -->
    <_config:Table name="ATCHREL" >
     <_config:Column name="ATCHREL_ID" value="AtchRelId" valueFrom="IDResolve">
      <_config:IDResolve tableName="ATCHREL" generateNewKey="true">
      </_config:IDResolve>
     </_config:Column>
     <_config:Column name="ATCHOBJTYP_ID" value="4" valueFrom="fixed">
     </_config:Column>
     <_config:Column name="ATCHRLUS_ID" value="0" valueFrom="fixed">
     </_config:Column>
     <_config:Column name="OBJECT_ID" value="CollateralId2" valueFrom="IDResolve">
      <_config:IDResolve tableName="COLLATERAL" primaryKeyColumnName="COLLATERAL_ID" >
       <_config:UniqueIndexColumn name="NAME" value="Name"/>
       <_config:UniqueIndexColumn name="STOREENT_ID" value="storeId" valueFrom="BusinessContext"/> 
      </_config:IDResolve>
     </_config:Column>
     <_config:Column name="ATCHTGT_ID" value="AttachmentId" valueFrom="IDResolve">
      <_config:IDResolve tableName="ATCHTGT" primaryKeyColumnName="ATCHTGT_ID" >
       <_config:UniqueIndexColumn name="IDENTIFIER" value="Category"/>
       <_config:UniqueIndexColumn name="STOREENT_ID" value="storeId" valueFrom="BusinessContext"/> 
       <_config:UniqueIndexColumn name="MEMBER_ID" value="storeOwnerId" valueFrom="BusinessContext"/> 
      </_config:IDResolve>
     </_config:Column>
    </_config:Table>
    
    <_config:BusinessObjectMediator className="com.ibm.commerce.foundation.dataload.businessobjectmediator.TableObjectMediator"/>
    </_config:BusinessObjectBuilder>
  5. Exécutez l'utilitaire webFeedLoad sans l'option GenerateDataLoadConfigOnly spécifiée.
    • Linux./webFeedLoad.sh ../samples/DataLoad/Content/Web-feed-config.xml -Dwaspath=WC_ear -DlogFileWithTimestamp=true
    • HCL Commerce DeveloperwebFeedLoad.bat ..\samples\DataLoad\Content\Web-feed-config.xml -DlogFileWithTimestamp=true

Résultats

Les tables de base de données qui sont spécifiées dans le fichier de configuration d'objet métier sont remplies avec les données que vous avez chargées. Les tables COLLATERAL et COLLDESC, notamment, sont remplies avec du contenu HTML. Toute autre table que vous avez spécifiée est remplie avec les données appropriées.