Exemple : Suppression d'offres en plusieurs devises
L'utilitaire de chargement des données propose deux modes de suppression de la base de données d'offres en plusieurs devises définies dans le fichier de chargement : suppression et remplacement. Utilisez le mode suppression si le mode est défini comme "Delete" dans le fichier de configuration de chargement des données. Utilisez le mode remplacement si le mode est défini comme "Replace" dans le fichier de configuration de chargement des données. Le comportement de chaque mode varie selon que l'identificateur a été spécifié ou non.
Cet exemple utilise un fichier CSV pour expliquer comment insérer, remplacer ou supprimer vos données. Vous pouvez aussi créer et utiliser un fichier au format XML pour insérer, remplacer ou supprimer vos données. Si vous choisissez de créer et d'utiliser un fichier au format XML, assurez-vous que vos éléments XML utilisent les mêmes noms que ceux des colonnes CSV.
Fichier CSV avec exemples de données d'offre à supprimer
- Mode remplacement
-
- Identificateur spécifié : Supprime uniquement l'offre spécifiée correspondant à l'identificateur lorsque l'indicateur de suppression est défini. Si une offre avec cet identificateur n'existe pas dans la base de données, aucune offre n'est supprimée.
- Identificateur non spécifié : Supprime de la base de données toutes les offres avec la même paire lorsque l'indicateur de suppression est défini.
- Mode suppression
- Ignore l'indicateur de suppression et supprime toujours les offres comme suit :
- Identificateur spécifié : Supprime uniquement l'offre spécifiée correspondant à l'identificateur. Si une offre avec cet identificateur n'existe pas dans la base de données, aucune offre n'est supprimée.
- Identificateur non spécifié : Supprime de la base de données toutes les offres avec la même paire.
Standard Price List,1000573,1100456,3,2009-03-15 15:47,2009-05-15 15:47,each,10,0,2009-03-16 15:47:00.0,
Elegant wine glass,4.50,10.05,30.75,3.48,442.56,6074.84,152.42,y
Holiday price list,1000574,1100457,5,2009-12-15 15:47:00.0,2009-12-31 15:47:00.0,each,5,0,2009-11-28 15:47:00.0,
Decorative bed cover,25,55.84,170.84,19.31,2,458.61,33691.25,846.71
Legacy system price list,1000575,1100458,2,2009-02-15 15:47:00.0,2009-06-02 15:47:00.0,each,10,0,2009-02-22 15:47:00.0,
Old Cologne,9.99,22.31,68.27,7.72,982.46,13,463.02,338.35
Overstock price list,1000576,1100459,3,2009-03-15 15:47:00.0,2009-03-31 15:47:00.0,each,10,0,2009-03-16 15:47:00.0,
Candle holder,3,6.70,20.50,2.32,295.03,4042.95,101.61,yfirstLineIsHeader du fichier de configuration de chargement des données de la liste de prix. firstLineIsHeader est un attribut de l'élément <_config:DataReader>. - firstLineIsHeader
-
- true
- Indique que la première ligne du fichier CSV sera traitée comme des données de nom de colonne et ne sera pas insérée dans la base de données.
- false
- Indique que la première ligne du fichier CSV contient des données devant être lues et insérées dans la base de données.
- Supprimer l'offre avec le nom de liste de prix et la référence catentry indiqués
Dans le cas de figure suivant, aucune exception n'est renvoyée si l'offre n'existe pas dans la base de données : la liste de prix et l'élément catentry spécifiés ne sont associés à aucune offre. Aucune offre n'est supprimée.
Si l'offre existe dans la base de données, cette offre est supprimée.
- Supprimer l'offre avec l'ID de liste de prix unique et l'ID d'entrée de catalogue unique.
Aucune exception n'est renvoyée dans ce scénario.
définitions de colonne CSV et d'élément XML
L'ordre des colonnes est défini dans le fichier de configuration de chargement des données d'offres. Reportez-vous à l'attribut number dans l'élément <_config:Data>.
- PriceListUniqueID
- (Facultatif, Chaîne) Identificateur de la liste de prix. S'il existe un mappage de données pour la valeur UniqueID de liste de prix dans le fichier de configuration de chargement des données de liste de prix, la valeur uniqueID est requise dans le fichier CSV.
- PriceListName
- (Optionnel, Chaîne) Nom de la liste de prix qui contient cette offre. Lors de la suppression d'une offre, le nom ou l'élément UniqueID de la liste de prix est facultatif. Lorsqu'aucun des deux n'est fourni dans le fichier CSV, la liste de prix par défaut du magasin est utilisée pour la suppression. Si l'un des eux est fourni, la liste de prix fournie est utilisée pour la suppression. Si les deux sont fournis dans le fichier CSV, l'élément uniqueID de la liste de prix est utilisé pour la suppression.
- CatentryUniqueID
- (Facultatif, Chaîne) Identificateur unique de l'entrée de catalogue associée. Lorsqu'il existe un mappage de données dans le fichier de configuration des données d'offre, l'élément CatentryUniqueID est obligatoire. Si les deux sont fournis dans le fichier CSV, l'élément CatentryUniqueID est utilisé pour la suppression.
- CatentryPartNumber
- (Facultatif, Chaîne) Numéro de référence de l'entrée de catalogue pour laquelle cette offre est définie. Lors de la suppression d'une offre, l'élément CatentryPartNumber ou CatentryUniqueID est requis. Si aucun des deux n'est fourni dans le fichier CSV, la suppression de l'offre échoue. Si l'un d'eux est fourni, l'élément catentry indiqué est utilisé pour la suppression. Si les deux sont fournis dans le fichier CSV, l'élément CatentryUniqueID est utilisé pour la suppression.
- Identificateur
-
(Facultatif, double) Nombre qui identifie l'offre de façon unique lorsque la valeur de la colonne est combinée avec des valeurs d'ID d'entrée de catalogue et d'ID de liste de prix uniques pour l'offre. Mappé à la colonne de base de données OFFER.IDENTIFIER.
- Priorité
- (Facultatif, double) Si plusieurs offres sont en vigueur simultanément, celle avec la priorité la plus élevée est utilisée. Si elle n'est pas définie dans le fichier d'entrée, elle reçoit la valeur "0.0".
- StartDate
- (Facultatif, Horodatage) Début de la plage de dates pendant laquelle l'offre est en vigueur. Utilisez le format
yyyy-mm-dd hh:mm:ss.millis. - EndDate
- (Optionnel, Horodatage) Fin de la plage de dates pendant laquelle l'offre est en vigueur. Utilisez le format
yyyy-mm-dd hh:mm:ss.millis. - QuantityUnitIdentifier
- (Optionnel, String) Unité de mesure utilisée dans les champs MinimumQuantity (quantité minimale) et MaximumQuantity (quantité maximale).
- MaximumQuantity
- (Facultatif, Double) Quantité maximale pouvant être achetée dans une même commande au titre de cette offre.
- MinimumQuantity
- (Optionnel, Double) Quantité minimale pouvant être achetée dans une même commande au titre de cette offre.
- LastUpdate
- (Optionnel, Horodatage) Date et heure de dernière mise à jour de l'offre. Utilisez le format
yyyy-mm-dd hh:mm:ss.millis. - Description
- (Optionnel, Chaîne) Description de cette offre.
- Price In USD
- (Facultatif, Décimal) Prix en dollars US.
- Price In BRL
- (Optionnel, Décimal) Prix en reais brésiliens.
- Price In CNY
- (Optionnel, Décimal) Prix en Yuan Ren-min-bi.
- Price In EUR
- (Optionnel, Décimal) Prix en euros.
- Price In JPY
- (Facultatif, Décimal) Prix en yen japonais.
- Price In KRW
- (Optionnel, Décimal) Prix en wons sud-coréens.
- Price In TWD
- (Optionnel, Décimal) Prix en nouveaux dollars de Taïwan.
- Supprimer
- (Facultatif, chaîne) Indique si cette offre en plusieurs devises doit être supprimée. La valeur deleteValue correspond à la chaîne que vous voulez utiliser dans le fichier CSV pour indiquer que l'offre doit être supprimée. Dans cet exemple, la chaîne 'y' est utilisée à cet effet.
Données de mappage
Le fragment suivant du fichier d'exemple de configuration illustre comment mapper chaque colonne de données dans le fichier CSV source à une valeur. Il décrit également comment indiquer les colonnes à supprimer.
<_config:Data>
<_config:column number="1" name="PriceListUniqueId" />
<_config:column number="2" name="PriceListName" />
<_config:column number="3" name="CatentryUniqueId" />
<_config:column number="4" name="CatentryPartNumber" />
<_config:column number="5" name="Identifier" />
<_config:column number="6" name="Precedence" />
<_config:column number="7" name="StartDate" />
<_config:column number="8" name="EndDate" />
<_config:column number="9" name="QuantityUnitIdentifier" />
<_config:column number="10" name="MinimumQuantity" />
<_config:column number="11" name="MaximumQuantity" />
<_config:column number="12" name="LastUpdate" />
<_config:column number="13" name="Description" />
<_config:column number="14" name="PriceInUSD" />
<_config:column number="15" name="PriceInBRL" />
<_config:column number="16" name="PriceInCAD" />
<_config:column number="17" name="PriceInCNY" />
<_config:column number="18" name="PriceInEUR" />
<_config:column number="19" name="PriceInJPY" />
<_config:column number="20" name="PriceInKRW" />
<_config:column number="21" name="PriceInTWD" />
<_config:column number="22" name="Delete" />
</_config:Data>L'attribut number dans l'élément <_config:column> définit l'ordre des colonnes dans le fichier des enregistrements CSV. L'attribut name définit le nom de colonne utilisé dans l'élément <_config:DataMapping>.<_config:DataMapping>
<_config:mapping xpath="PriceListIdentifier/UniqueID" value="PriceListUniqueId" valueFrom="InputData" />
<_config:mapping xpath="PriceListIdentifier/ExternalIdentifier/Name"
value="PriceListName" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/CatalogEntryIdentifier/UniqueID" value="CatentryUniqueId"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/CatalogEntryIdentifier/ExternalIdentifier/PartNumber"
value="CatentryPartNumber" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Qualifier" value="Identifier" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/precedence" value="Precedence" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/startDate" value="StartDate" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/endDate" value="EndDate" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/lastUpdate" value="LastUpdate" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/quantityUnit" value="QuantityUnitIdentifier"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/minimumQuantity" value="MinimumQuantity"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/maximumQuantity" value="MaximumQuantity"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Description/value" value="Description"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/Price/currency" value="USD" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/Price/value" value="PriceInUSD"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[0]/currency"
value="BRL" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[0]/value"
value="PriceInBRL" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[1]/currency"
value="CAD" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[1]/value" value="PriceInCAD"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[2]/currency"
value="CNY" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[2]/value" value="PriceInCNY"
valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[3]/currency"
value="EUR" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[3]/value"
value="PriceInEUR" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[4]/currency"
value="JPY" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[4]/value"
value="PriceInJPY" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[5]/currency"
value="KRW" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[5]/value"
value="PriceInKRW" valueFrom="InputData" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[6]/currency"
value="TWD" valueFrom="Fixed" />
<_config:mapping xpath="PriceEntry[0]/Price/AlternativeCurrencyPrice[6]/value"
value="PriceInTWD" valueFrom="InputData" />
<_config:mapping xpath="" value="Delete" valueFrom="InputData" deleteValue="y"/>
</_config:DataMapping>L'attribut value dans l'élément <_config:DataMapping> doit être cohérent avec l'attribut name de l'article correspondant dans l'élément <_config:column>. Les deux attributs sont sensibles à la casse. Médiateur d'objet métier
Le nom de classe de médiateur est com.ibm.commerce.price.dataload.mediator.OfferMediator.
L'exemple suivant illustre comment configurer l'élément BusinessObjectMediator dans le fichier de configuration de chargement des données d'offres afin de signaler une offre pour sa suppression ou de la supprimer de la base de données.
<_config:BusinessObjectMediator className="com.ibm.commerce.price.
dataload.mediator.OfferMediator">
<_config:property name="markOfferForDelete" value="true" />
</_config:BusinessObjectMediator>
- markOfferForDelete
-
- true
- L'offre est marquée pour sa suppression. Pour supprimer les enregistrements, utilisez l'utilitaire de nettoyage de la base de données.
- false
- L'offre est supprimée de la base de données. Tous les enregistrements associés sont supprimés en cascade.