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.
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 etpartnumberssansitemspec. - 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.