Exemple : Insertion et remplacement de stock disponible à la vente
Vous pouvez insérer et remplacer votre stock disponible à la vente à l'aide de l'utilitaire de chargement de données. L'exemple ci-après utilise un fichier CSV pour expliquer comment insérer et remplacer les informations de stock disponible à la vente.
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.
Vous pouvez utiliser l'utilitaire de chargement de données pour charger des données de configuration de stock ATP dans la base de données. Les données peuvent être insérées ou remplacées dans la table BASEITEM, BASEITMDSC, STOREITEM, DISTARRANG, ITEMVERSN, ITEMSPC ou VERSIONSPC.
Lors de leur chargement initial, les données de configuration de stock disponible à la vente sont généralement chargées en même temps que les données d'entrée de catalogue depuis un fichier CSV unique étant donné que chaque donnée de configuration de stock disponible à la vente est associée à un enregistrement d'entrée de catalogue dans la base de données. Dans ce cas, CatalogEntryMediator est utilisé pour le chargement des données.
Dans un autre cas, les données d'entrée de catalogue sont chargées initialement par CatalogEntryMediator sans données de configuration de stock disponible à la vente, de sorte que les données de configuration de stock disponible à la vente par défaut sont chargées dans la base de données. Ensuite, si l'utilisateur souhaite modifier les données de configuration de stock disponible à la vente, FulfillmentPropertyMediator peut être utilisé pour charger seulement les données de configuration de stock disponible à la vente sans affecter les données d'entrée de catalogue existantes.
Prérequis
Avant d'exécuter cet exemple, vérifiez que le système de stock est un système de stock disponible à la vente. Par exemple, vérifiez la table STORE pour vous assurer que INVENTORYSYSTEM=-1.
Fichier CSV avec exemples de données de configuration de stock ATP
Dans cet exemple, les données source proviennent d'un fichier CSV nommé ATPconfig.csv. Ce fichier contient des exemples de données de configuration de stock disponible à la vente. Chaque colonne est délimitée par une virgule.
| PartNumber | ParentPartNumber | Type | INVQuantityMeasure | INVQuantityMultiple | TrackingInventory | BackOrderable | ReleaseSeparately | Creditable | ForceBackorder | ReturnNotDesired | MinQTYForSplit | PickingMethod | Discontinued | CatEntryStoreIdentifier |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Example-PN-10001 | Produit | C62 | 2 | N | N | O | N | O | O | 10 | L | O | 10701 | |
| Example-PN-10002 | Example-PN-10001 | Elément | C62 | 2 | N | N | O | N | O | O | 10 | L | O |
définitions de colonne CSV et d'élément XML
- PartNumber
- (Requis, chaîne) Numéro de référence identifiant le numéro de pièce de l'entrée de catalogue. Identifie de manière unique une entrée de catalogue d'un propriétaire spécifique. Cette zone est requise et ne peut pas contenir la valeur null.
- ParentPartNumber
- (Chaîne) Numéro de référence d'un produit parent de cet article. Utilisé pour extraire BASEITEM_ID de la table BASEITEM, en même temps que l'ID du propriétaire de cet article.
- Type
- (Requis, chaîne) Cette zone définit le type d'entrée de catalogue. Les valeurs correspondant au type sont "Item" (article), "Product" (produit), "Bundle" (offre groupée) et "Package" (lot). Cette zone est requise et ne peut pas contenir la valeur null.
- INVQuantityMeasure
- (Chaîne) Unité de mesure pour QUANTITYMULTIPLE. Par exemple, pour représenter un quart de pouce, QUANTITYMULTIPLE serait égal à 0.25, et QUANTITYMEASURE désignerait l'élément QTYUNIT représentant les pouces (habituellement INH). La valeur par défaut 'C62' est utilisée si aucune valeur n'est indiquée dans le fichier CSV.
- INVQuantityMultiple
- (Double) Les quantités de ce BaseItem sont mesurées en unités indivisibles. QUANTITYMULTIPLE, de pair avec QUANTITYMEASURE, indique ce que représente chaque quantité indivisible. Par exemple, des textiles pourraient être mesurés en quantités indivisibles, chacune représentant un quart de pouce. La valeur par défaut 1.0 est utilisée si aucune valeur n'est indiquée dans le fichier CSV.
- TrackingInventory
- (Chaîne) Indique si le stock est suivi. La valeur peut être :
- N = Suivi du stock.
- Y = Le stock est suivi.
- E = Suivi externe du stock.
- BackOrderable
- (Chaîne) Indique si l'article peut être commandé en amont. La valeur peut être :
- N = Les articles ne peuvent pas être commandés en amont.
- Y = Les articles peuvent être commandés en amont.
- ReleaseSeparately
- (Chaîne) Indique si la préparation de l'article de la commande peut être lancée séparément. La valeur peut être :
- N = La préparation des articles de la commande peut être lancée avec d'autres articles de commande.
- Y = La préparation de ces articles de commande doit être lancée séparément (dans leur propre cadre).
- Creditable
- (Chaîne) Indique si le commerçant, sans remplacement, peut émettre un crédit pour cet article. Cette valeur peut être :
- N = Vendu tel quel.
- Y = Remboursable.
- ForceBackorder
- (Chaîne) Indique si le stock peut être alloué. Peut être utilisé pour interrompre temporairement l'allocation d'articles spécifiés pour cet article de base. La valeur peut être :
- N = Le stock peut être affecté (comportement habituel).
- Y = Le stock ne peut pas être affecté, même si le nombre d'articles en stock le permet.
- ReturnNotDesired
- (Chaîne) Indique si le retour de l'article est souhaité, même si le client est prêt ou en mesure de renvoyer l'article. Par exemple, aliments périssables. La valeur peut être :
- N = La demande de crédit est évaluée en fonction de l'intention du client de renvoyer l'article. Le client doit renvoyer la marchandise.
- Y = La demande de crédit est évaluée comme si un retour était prévu. Le client ne doit pas renvoyer la marchandise.
- MinQTYForSplit
- (Entier) Quantité minimale non allouée qui doit rester pour le fractionnement des articles de la commande dans l'allocation du stock. Si vous ne spécifiez pas cette valeur, la valeur par défaut est 0.
- PickingMethod
- (Chaîne) Détermine la méthode de prélèvement du stock dans cet accord de distribution. La valeur peut être :
- F = FIFO (Premier entré, premier sorti) - stock le moins récent d'abord.
- L = dernier entré, premier sorti - stock le plus récent d'abord.
- Discontinued
- (Chaîne) Indique si l'article spécifié est interrompu (fin de série). La valeur peut être :
- Y = L'article est interrompu. Il peut être commandé si le stock disponible le permet, mais ne peut pas être commandé en amont.
- N = L'article est actif et peut être commandé en amont s'il est indisponible.
- CatEntryStoreIdentifier
- (Chaîne) Cet identificateur est utilisé dans un magasin de site étendu. Si l'élément CatalogEntry est défini dans un magasin de ressources d'entrées de catalogue, cette zone correspond à l'identificateur de ce magasin. Cet identificateur est utilisé pour extraire le paramètre entryOwner du catalogue.
Autres zones facultatives non incluses dans l'exemple :
- CatalogEntryUniqueId
- (Long) Identificateur de l'entrée de catalogue. Utilisé pour extraire un enregistrement de la table CATENTRY, après quoi BASEITEM_ID, ITEMSPC_ID et CATENTTYPE_ID peuvent être extraits de l'enregistrement. Si cette zone n'est pas spécifiée dans le fichier CSV, PartNumber est utilisé pour extraire ces ID.
- ParentCatalogEntryUniqueId
- (Long) Identificateur de l'entrée de catalogue parent. Utilisé pour extraire l'élément BASEITEM_ID correspondant à l'entrée de catalogue parent. Si cette zone n'est pas spécifiée dans le fichier CSV, BASEITEM_ID est extrait en fonction du numéro de référence parent (ParentPartNumber).
- Supprimer
- (Chaîne) Indique si cet enregistrement doit être supprimé. Cette zone prend effet lorsque dataLoadMode est défini à "replace". Si la valeur de cette zone est égale à deleteValue, l'enregistrement correspondant est supprimé. La valeur par défaut de deleteValue est 1 et la valeur deleteValue peut être configurée sous l'élément <DataMapping> dans le fichier BusinessObjectConfigFile.
Données de contexte métier
Le fragment de code suivant du fichier de configuration wc-dataload-env.xml fournit les données de contexte métier requises pour le chargement des données :
<_config:BusinessContext storeIdentifier="AuroraESite" langId="-1" >
</_config:BusinessContext>
- storeIdentifier
- (Chaîne) Identificateur du magasin auquel l'entrée de catalogue appartient.
- langId
- (Entier) Identificateur de langue, utilisé pour charger des données dans BASEITEMDSC. La valeur par défaut est "-1".
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. Si les données de configuration de stock disponible à la vente sont chargées avec les données d'entrée de catalogue dans un fichier CSV source unique, le mappage suivant peut être ajouté dans le fichier de configuration. Si les données de configuration de stock disponible à la vente sont chargées, les informations de mappage suivantes doivent être définies dans un fichier de configuration individuel :
<_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true">
<_config:Data>
<_config:column number="1" name="PartNumber" />
<_config:column number="2" name="ParentPartNumber" />
<_config:column number="3" name="Type" />
<_config:column number="4" name="INVQuantityMeasure" />
<_config:column number="5" name="INVQuantityMultiple" />
<_config:column number="6" name="TrackingInventory" />
<_config:column number="7" name="BackOrderable" />
<_config:column number="8" name="ReleaseSeparately" />
<_config:column number="9" name="Creditable" />
<_config:column number="10" name="ForceBackorder" />
<_config:column number="11" name="ReturnNotDesired" />
<_config:column number="12" name="MinQTYForSplit" />
<_config:column number="13" name="PickingMethod" />
<_config:column number="14" name="Discontinued" />
<_config:column number="15" name="CatEntryStoreIdentifier" />
</_config:Data>
</_config:DataReader >
Le fragment suivant du fichier d'exemple de configuration illustre comment mapper chaque colonne de données dans le fichier CSV à un chemin de schéma logique d'objet métier. L'attribut 'value' représente le nom d'une colonne du fichier CSV, qui est défini dans le fragment de configuration. Chaque colonne du fichier CSV doit disposer d'un mappage avec le chemin de schéma logique.
<_config:DataMapping>
<_config:mapping xpath="CatalogEntryIdentifier/ExternalIdentifier/PartNumber" value="PartNumber" valueFrom="InputData"/>
<_config:mapping xpath="ParentCatalogEntryIdentifier/ExternalIdentifier/PartNumber" value="ParentPartNumber" valueFrom="InputData"/>
<_config:mapping xpath="catalogEntryTypeCode" value="Type" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/quantityMeasure' value="INVQuantityMeasure" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/quantityMultiple' value="INVQuantityMultiple" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/trackingInventory' value="TrackingInventory" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/backOrderable' value="BackOrderable" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/releaseSeparately' value="ReleaseSeparately" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/creditable' value="Creditable" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/forceBackorder' value="ForceBackorder" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/returnNotDesired' value="ReturnNotDesired" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/minQTYForSplit' value="MinQTYForSplit" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/pickingMethod' value="PickingMethod" valueFrom="InputData"/>
<_config:mapping xpath='FulfillmentProperties/UserData/UserDataField[0]/discontinued' value="Discontinued" valueFrom="InputData"/>
<_config:mapping xpath="InventoryReceiptIdentifier/ExternalIdentifier/CatalogEntryIdentifier/ExternalIdentifier/StoreIdentifier/ExternalIdentifier/NameIdentifier" value="CatEntryStoreIdentifier" />
</_config:DataMapping>
Médiateur d'objet métier
Si les données de configuration de stock ATP de cet exemple sont chargées en même temps que les données d'entrées de catalogue, le nom de la classe de médiateur est com.ibm.commerce.catalog.dataload.mediator.CatalogEntryMediator. Si les données de configuration de stock disponible à la vente sont chargées séparément, le nom de la classe de médiateur est com.ibm.commerce.catalog.dataload.mediator.FulfillmentPropertyMediator. Le schéma logique correspondant est CatalogEntry.xsd.
Cette zone est requise si vous utilisez un magasin de site étendu.