Exemple : Insertion et remplacement d'enregistrements de stock prévu
Vous pouvez insérer et remplacer vos enregistrements de stock prévu à l'aide de l'utilitaire de chargement de données. Cet exemple utilise un fichier CSV pour expliquer comment supprimer des informations de stock.
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.
Servez-vous de l'utilitaire de chargement pour charger des données d'enregistrement de stock prévu dans la table RA et la table RADETAIL avec un fichier CSV unique.
Prérequis
Avant d'exécuter cet exemple, vérifiez que les conditions requises sont remplies :
- 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.
- Les données de catalogue, les données de groupe de catalogue et les données d'entrée de catalogue qui sont utilisées dans cet exemple doivent être chargées dans la base de données.
- Les données de configuration du stock disponible à la vente sont chargées dans la base de données.
- Les données de nom de fournisseur (VendorName) figurant dans le fichier CSV source existent dans la table VENDOR de la base de données.
Fichier CSV avec exemples de données
Dans cet exemple, les données source proviennent d'un fichier CSV nommé ra_radetail.csv. Ce fichier contient des exemples de données d'enregistrements (RA) et de caractéristiques de stock prévu (RADETAIL). Chaque colonne est délimitée par une virgule.
| VendorName | RACreateTime | OrderDate | DateClosed | OpenIndicator | ExternalId | PartNumber | ExpectedDate | Quantité | RADetailComment | CatEntryStoreIdentifier |
|---|---|---|---|---|---|---|---|---|---|---|
| MyCompany | 2005-07-12 01:01:01.123456 | 2005-06-12 00:00:00 | 2005-08-08 00:00:00.0 | True | ATP-1201 Record 1 | FULO-0101 | 2005-12-08 00:00:00 | 10000 | RADETAIL comment x | 10701 |
| MyCompany | 2005-07-12 01:01:01.123456 | 2005-06-12 00:00:00 | 2005-08-08 00:00:00.0 | True | ATP-1201 Record 1 | FULO-0201 | 2005-12-24 00:00:00 | 500 | RADETAIL comment y | |
| AdvancedB2BDirect Vendor | 2009-05-21 00:00:00 | 2009-04-21 00:00:00 | FULO-0301 | 2009-12-31 00:00:00 |
Définitions des colonnes du fichier CSV
- VendorName
- (Requis, chaîne) Fournisseur du stock. Cette zone est requise et ne peut pas contenir la valeur null.
- CreateTime
- (Requis, horodatage) Date et heure de création de l'enregistrement. Le format de l'entrée est
yyyy-mm-dd hh:mm:ss.SSSSSS. La longueur de fraction de seconde ne doit pas être supérieure à 6. Vous pouvez personnaliser le format en définissant la propriété timestampPattern dans le fichier wc-dataload.xml. Cette zone fait partie de l'index à entrées uniques de la table RA. Cette zone est requise et ne peut pas contenir la valeur null. - OrderDate
- (Requis, horodatage) Date et heure de création de cette commande auprès du fournisseur. Son format est identique à celui spécifié dans CreateTime. Cette zone est requise et ne peut pas contenir la valeur null.
- DateClosed
- (Horodatage) Date et heure de fermeture de l'enregistrement. Son format est identique à celui spécifié dans CreateTime.
- OpenIndicator
- (Valeur booléenne) Si cet identificateur a pour valeur 'true', le stock prévu peut toujours être reçu et alloué à des commandes en amont. Si la valeur est false, aucun autre inventaire n'est reçu. Le stock prévu ne peut pas être alloué à des commandes en amont.
- ExternalId
- (Chaîne) L'identificateur externe. Il est mis à disposition par le fournisseur et peut être utilisé pour référencer cet enregistrement.
- PartNumber
- (Requis, chaîne) Référence de cet article. Identifie de manière unique un article d'un propriétaire spécifique. Combiné à l'identificateur de propriétaire, il est utilisé pour extraire la clé primaire de la table ITEMSPC, par exemple ITEMSPC_ID. Cette zone est requise et ne peut pas contenir la valeur null si la zone CatalogEntryUniqueId n'est pas spécifiée dans le fichier CSV.
- ExpectedDate
- (Horodatage) Date de réception prévue de ce stock. Son format est identique à celui spécifié dans la zone RACreateTime.
- Quantité
- (Entier) Quantité commandée au fournisseur dans cet enregistrement de stock prévu.
- RADetailComment
- (Chaîne ) Commentaires. Le commentaire ne peut pas comporter plus de 254 caractères.
- CatEntryStoreIdentifier
- (Chaîne) Cette zone est utilisée 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.
Les autres zones suivantes sont facultatives et ne sont pas incluses dans l'exemple :
- StoreIdentifier
- (Chaîne) Identificateur du magasin auquel l'article appartient. Cette colonne peut être ajoutée au fichier CSV si l'article appartient à un magasin différent du magasin qui est défini dans les éléments BusinessContext du fichier wc-dataload-env.xml. Si cette colonne n'est pas fournie dans le fichier CSV, l'élément StoreIdentifier du contexte métier est utilisé.
- FulfillmentCenterId
- (Chaîne) Identificateur du centre de distribution auquel appartient cet article. Cette colonne peut être ajoutée au fichier CSV si l'article appartient à un centre de distribution différent de celui qui est défini dans la propriété BusinessContext du fichier wc-dataload-env.xml. Si cette colonne n'est pas fournie dans le fichier CSV, l'élément fulfillmentCenterIdentifier est extrait par FulfillmentCenterName. S'il est introuvable, le paramètre fulfillmentCenterIdentifier du contexte métier est utilisé. S'il n'est pas spécifié dans le fichier CSV ni dans le contexte métier, le centre de distribution par défaut du magasin spécifié est utilisé.
- FulfillmentCenterName
- (Chaîne) Nom du centre de distribution auquel appartient cet article. Cette colonne est utilisée pour extraire l'élément fulfillmentCenterIdentifier.
- OwnerId
- (Long) Identificateur de l'élément entryOwner du catalogue de cet article. S'il n'est pas spécifié dans le fichier CSV, le propriétaire du magasin de ressources d'entrées de catalogue est alors extrait. S'il n'est pas trouvé, le propriétaire du magasin en cours est alors extrait. S'il est introuvable, l'élément ownerId spécifié dans la propriété BusinessContext du fichier wc-dataload-env.xml est utilisé.
- CatalogEntryUniqueId
- (Long) Identificateur de l'entrée de catalogue de cet article. Si cette zone n'est pas spécifiée dans le fichier CSV, l'identificateur de l'entrée de catalogue est extrait en fonction du numéro de référence et du propriétaire de l'entrée de catalogue.
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">
<_config:property name="fulfillmentCenterName" value="Aurora Home"/>
<_config:property name="ownerId" value="7000000000000000102"/>
</_config:BusinessContext>
- FulfillmentCenterId
- (Chaîne) Identificateur du centre de distribution auquel appartient cet article. Il est utilisé si l'identificateur ne peut pas être extrait par le paramètre FulfillmentCenterId ou FulfillmentCenterName spécifié dans le fichier CSV.
- FulfillmentCenterName
- (Chaîne) Nom du centre de distribution auquel appartient cet article. Il est utilisé pour extraire le paramètre fulfillmentCenterID si fulfillmentCenterID n'est pas extrait du fichier CSV ni défini dans le contexte métier.
- OwnerId
- (Long) Identificateur du propriétaire de cet article. Il est utilisé si le paramètre owner de catalogue n'est pas fourni dans le fichier CSV et ne peut pas être extrait par l'identificateur de magasin spécifié.
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.
<_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true">
<_config:Data>
<_config:column number="1" name="VendorName" />
<_config:column number="2" name="CreateTime" />
<_config:column number="3" name="OrderDate" />
<_config:column number="4" name="ClosedDate" />
<_config:column number="5" name="OpenIndicator" />
<_config:column number="6" name="ExternalId" />
<_config:column number="7" name="PartNumber" />
<_config:column number="8" name="ExpectedDate" />
<_config:column number="9" name="Quantity" />
<_config:column number="10" name="RADetailComment" />
<_config:column number="11" 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 ci-dessus. Chaque colonne du fichier CSV doit disposer d'un mappage avec le chemin de schéma logique. Si les zones facultatives mentionnées ci-dessus sont présentes dans le fichier CSV, leur mappage doit être ajouté. Le chemin de schéma logique correspondant est spécifié dans le tableau suivant.
<_config:DataMapping>
<_config:mapping xpath="ExpectedInventoryRecordIdentifier/ExternalIdentifier/VendorName" value="VendorName" valueFrom="InputData" />
<_config:mapping xpath="OrderDate" value="OrderDate" valueFrom="InputData" />
<_config:mapping xpath="ExpectedInventoryRecordIdentifier/ExternalIdentifier/CreateDate" value="CreateTime" valueFrom="InputData" />
<_config:mapping xpath="CloseDate" value="ClosedDate" valueFrom="InputData" />
<_config:mapping xpath="OpenIndicator" value="OpenIndicator" valueFrom="InputData" />
<_config:mapping xpath="ExternalId" value="ExternalId" valueFrom="InputData" />
<_config:mapping xpath="ExpectedInventoryDetail[0]/ExpectedInventoryDetailIdentifier/ExternalIdentifier/CatalogEntryIdentifier/ExternalIdentifier/PartNumber" value="PartNumber" valueFrom="InputData" />
<_config:mapping xpath="ExpectedInventoryDetail[0]/ExpectedInventoryDetailIdentifier/ExternalIdentifier/ExpectedDate" value="ExpectedDate" valueFrom="InputData" />
<_config:mapping xpath="ExpectedInventoryDetail[0]/QuantityOrdered/value" value="Quantity" valueFrom="InputData" />
<_config:mapping xpath="ExpectedInventoryDetail[0]/QuantityRemaining/value" value="Quantity" valueFrom="InputData" />
<_config:mapping xpath="ExpectedInventoryDetail[0]/Comment" value="RADetailComment" valueFrom="InputData" />
<_config:mapping xpath="InventoryReceiptIdentifier/ExternalIdentifier/CatalogEntryIdentifier/ExternalIdentifier/StoreIdentifier/ExternalIdentifier/NameIdentifier" value="CatEntryStoreIdentifier" />
</_config:DataMapping>
Médiateur d'objet métier
Le nom de la classe du médiateur est com.ibm.commerce.inventory.dataload.mediator.ExpectedInventoryMediator. Le schéma logique correspondant est ExpectedInventoryRecord.xsd.
Cette zone est requise si vous utilisez un magasin de site étendu.