Deprecated feature

URL ExpectedInventorySynchronize

Cette instruction met à jour les enregistrements de stock prévus à synchroniser avec un système d'arrière-plan. Elle fonctionne en essayant de trouver les enregistrements RADETAIL et RA basés sur la clé primaire ou l'index unique pour chacun (voir les définitions de table RA et RADETAIL). Si un enregistrement peut être trouvé, il est mis à jour avec les valeurs spécifiées dans les paramètres. Si un enregistrement ne peut pas être trouvé, l'instruction tente de créer un nouvel enregistrement à l'aide des valeurs spécifiées dans les paramètres. Cette commande ne peut pas être utilisée uniquement pour mettre à jour ou insérer la table RA. Elle doit être utilisée pour mettre à jour les tables RA et RADETAIL ou uniquement la table RADETAIL.

Cette instruction peut être appelée via un programme ou à l'aide d'une URL. Les paramètres sont formatés dans un EC_XMLOBJECT. La syntaxe vous permet de spécifier plusieurs paires RA et RADETAIL.

Structure de l'adresse URL

http:// host_name/path/
Nom entièrement qualifié de votre Transaction server et du chemin de configuration.

Ce diagramme affiche la structure de l'URL ExpectedInventorySynchronize.

Valeurs des paramètres

radetailid
Indique l'ID d'une entrée RADETAIL permettant de localiser un enregistrement existant à mettre à jour.
raid
Indique l'ID d'un RA permettant de localiser un enregistrement existant à mettre à jour.
createtime
Indique la date de création de l'enregistrement.
vendor
Indique le nom du fournisseur du stock.
ffmcenter
Indique l'ID centre de distribution. Ce paramètre est obligatoire si vous précisez un ID RA et que plusieurs centres de distribution sont associés à cet ID.
originalexpecteddate
Permet de localiser un détail RADETAIL existant lors de la mise à jour d'un enregistrement existant.
partnumber
Indique la référence de l'enregistrement de stock ; utilisé avec l'ID MEMBERID pour localiser un ID itemspc_id.
externalid
Indique un identifiant externe, généralement précisé par le fournisseur.
openindicator
Indique si du stock prévu supplémentaire doit être réceptionné et affecté aux commandes en amont (Y) ou si aucun autre stock ne doit être réceptionné et que le stock prévu ne doit pas être affecté aux commandes en amont (N).
orderdate
Indique la date à laquelle la commande a été passée auprès du fournisseur.
dateclosed
Indique la date de clôture de cet enregistrement.
radetailcomment
Indique un commentaire.
qtyremaining
Indique la quantité restant à recevoir du fournisseur, pour cet enregistrement de stock prévu. Cette quantité est généralement égale à la quantité commandée moins la quantité reçue, mais peut être différente si le fournisseur n'est pas en mesure de livrer la quantité totale. Si ce paramètre n'est pas défini lors de la création d'un enregistrement, la valeur par défaut est 0.
qtyreceived
Indique la quantité reçue du fournisseur à la date en cours, pour cet enregistrement de stock prévu. Si ce paramètre n'est pas défini lors de la création d'un enregistrement, la valeur par défaut est 0.
qtyordered
Indique la quantité commandée auprès d'un fournisseur, dans cet enregistrement de stock prévu. Si ce paramètre n'est pas défini lors de la création d'un enregistrement, la valeur par défaut est 0.
deleteflag
Indique si l'entrée RA correspondante doit être supprimée. La valeur "1" indique que les entrées RA et RADETAIL correspondantes doivent être supprimées.
expecteddate
Indique la date d'arrivée prévue du stock. Ce paramètre est obligatoire en cas d'insertion d'enregistrements.
délimiteur
Spécifie le caractère délimiteur ; utilisé pour délimiter les valeurs lors du passage des valeurs dans la procédure stockée.
counter
Indique le nombre d'enregistrements transmis à StoredProcedure. La valeur maximale est 10000. Ce paramètre est obligatoire si du code XML est transmis.
memberid
Indique l'ID de membre utilisé pour obtenir des informations d'entrée de catalogue (itemspc_id). Si ce paramètre n'est pas transmis, la commande tente de le récupérer dans le contexte de commande. Ce paramètre est requis si l'ID de membre est différent du propriétaire du magasin.

Paramètres de sortie

ExpRecsRejected
Nombre d'enregistrements d'entrée ayant été rejetés.
ExpRecsProcessed
Nombre d'enregistrements d'entrée ayant été traités.
ExpRecsInserted
Sur le nombre d'enregistrements traités, nombre d'enregistrements ayant été insérés.
ExpRecsUpdated
Sur le nombre d'enregistrements traités, nombre d'enregistrements ayant été mis à jour.
ExpRecsReturnCodes
Code retour pour chaque enregistrement inclus dans l'entrée. Une valeur inférieure à 0 indique que l'erreur a été détectée avant l'envoi pour mise à jour ou ajout. D'autres valeurs sont possibles ; pour connaître la liste des autres codes retour pouvant être renvoyés par une mise à jour ou un ajout, consultez la rubrique relative aux codes d'erreur de procédure stockée.
ExpRecsWarnMsgs
Informations sur un message d'erreur.
getRejectedRecords()
Nombre d'enregistrements rejetés en raison d'élément manquants : ID magasin, expecteddate, vendor, partnumber, fournisseurs manquants dans la table des fournisseurs et partnumbers sans itemspec.
getProcessedRecords()
Nombre d'enregistrements dont le traitement a abouti.
getExpectedRecordInserted()
Nombre d'enregistrements insérés dans la table RADETAIL.
getExpectedRecordUpdated()
Nombre d'enregistrements mis à jour dans la table RADETAIL.
getCommandStatus()
Indique si l'instruction a abouti ou échoué.
getWarningMessages()
Affiche la liste des messages d'avertissement pour tous les enregistrements rejetés dans Vector.

Variables requises

Les variables suivantes doivent être définies. Si elles ne sont pas disponibles dans le XML d'instance, la validation est effectuée après traitement de tous les enregistrements transmis à la procédure stockée.

Etant donné que la nouvelle commande s'exécute sur l'unité d'exécution servlet, les performances peuvent être affectées en fonction du nombre de mises à jour. Pour atténuer ce problème, vous pouvez utiliser les paramètres d'instance ExpRecCounter et ExpCommitFlag pour libérer les verrous de la table.

ExpRecCounter
Contrôle le nombre d'enregistrements traités avant qu'une validation ne se produise.
ExpCommitFlag
Contrôle si la procédure stockée effectue une validation après le nombre de mises à jour spécifié.

Exemple

http://myhostname/webapp/wcs/stores/servlet/ExpectedInventorySynchronize? <XML> <delimiter>|</delimiter> <counter>100</counter> <synchronizeraitem> <vendor>Store 201 Vendor</vendor> <createtime>2004-01-01-00:00:00.0</createtime> <externalid>VPN1234 567 G</externalid> <orderdate>2004-01-01-00:00:00.0</orderdate> <openindicator>Y</openindicator> <dateclosed></dateclosed> <expecteddate>2004-02-12-00:00:00.0</expecteddate> <originalexpecteddate>2004-01-29-00:00:00.0</originalexpecteddate> <ffmcenter>300</ffmcenter> <partnumber>420X101</partnumber> <qtyordered>50</qtyordered> <qtyreceived>20</qtyreceived> <qtyremaining>28</qtyremaining> <deleteflag>0</deleteflag> <radetailComment>Comment for item 4</radetailComment> </synchronizeraitem> <synchronizeraitem> <radetailid>105670</radetailid> <dateclosed>2004-01-01-00:00:00.0</dateclosed> <qtyremaining>0</qtyremaining> </synchronizeraitem> </XML>

Comportement

  • Cette commande insère les enregistrements et met à jour les tables RA et RADETAIL. Elle accepte les paramètres dans XMLOBJECT ou à l'aide des propriétés de requête. ExpectedInventorySynchronizeCmd appelle SQL StoredProcedure (EXPECTEDINV) pour effectuer des insertions et mises à jour sur les tables RA et RADETAIL. Pour améliorer les résultats de performance, les paramètres de la nouvelle procédure SQL stockée sont transmis par lots, en les séparant par un délimiteur. La procédure stockée analyse les paramètres et insère des enregistrements ou met à jour les enregistrements dans les tables RA et RADETAIL.
  • La valeur counter est le nombre d'éléments à mettre à jour dans une seule requête de base de données. En d'autres termes, c'est la taille du lot qui peut être utilisée pour contrôler le nombre d'enregistrements qui seront mis à jour dans la base de données en une fois. Plus le nombre est élevé (jusqu'à un maximum de 10000), plus la commande s'exécutera rapidement, mais cela peut avoir un effet négatif sur les achats, puisque cette mise à jour se fait en temps réel. Ainsi, par exemple, si vous avez envoyé 10000 enregistrements et que la valeur counter=500, alors la requête mettrait à jour les 10000 enregistrements par lots de 500 à la fois. La valeur doit être déterminée empiriquement. Bien qu'il soit possible d'envoyer 100 000 enregistrements, la valeur counter ne doit pas dépasser 10 000. En effet, un maximum de 10 000 enregistrements peuvent être envoyés à la base de données en un seul appel.

Conditions d'exception

  • Des exceptions se déclencheront si des paramètres requis sont manquants.
  • Toute autre exception ou problème rencontré sera communiqué via les paramètres de sortie de défaillance.