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
Pourquoi et quand exécuter cette tâche
IDResolve requis sont configurés.Procédure
- Crée un fichier Web-feed-config.xml.
- Dans un utilitaire de ligne de commande, accédez au répertoire suivant :
WC_installdir/bin
WCDE_installdir\bin
- Exécutez l'utilitaire
webFeedLoadavec l'optionGenerateDataLoadConfigOnly:
./webFeedLoad.sh ../samples/DataLoad/Content/Web-feed-config.xml -DGenerateDataLoadConfigOnly=true -Dwaspath=WC_ear -DlogFileWithTimestamp=true
webFeedLoad.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 :
WC_installdir/samples/DataLoad/Content/WebFeed/temp/wc-loader-URLAttachment.xml
WCDE_installdir\samples\DataLoad\Content\WebFeed\temp\wc-loader-URLAttachment.xml
- Ouvrez le fichier de configuration d'objet métier wc-loader-URLAttachment.xml généré pour l'éditer. Ajoutez un élément
BusinessObjectBuilderpour les tables personnalisées dans lesquelles charger des données avecTableObjectMediator.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> - Exécutez l'utilitaire
webFeedLoadsans l'optionGenerateDataLoadConfigOnlyspécifiée.
./webFeedLoad.sh ../samples/DataLoad/Content/Web-feed-config.xml -Dwaspath=WC_ear -DlogFileWithTimestamp=true
webFeedLoad.bat ..\samples\DataLoad\Content\Web-feed-config.xml -DlogFileWithTimestamp=true