Instruction OrderCopy
Cette instruction crée, fusionne, ou modifie les commandes qui ont un attribut d'état "P" ou "E".

Valeurs des paramètres
- http://host_name/path/
- (Obligatoire) Nom qualifié complet de votre serveur WebSphere Commerce Server et chemin de configuration
- langId
- Définit ou restaure la langue préférée pour la durée de la session ; les langues prises en charge pour un
magasin figurent dans la table STORELANG.
- forUser
- ID de connexion de l'utilisateur au nom duquel l'instruction est exécutée. Seule une personne disposant des droits de traitement des commandes peut spécifier ce paramètre.
- forUserId
- Identique à forUser, mais identifie l'utilisateur par l'ID d'utilisateur interne, tel qu'il est indiqué dans la table USERS.
- URL
- (Obligatoire)URL de réacheminement appelée lorsque l'instruction aboutit.
- fromOrderId_i
- Spécifie les commandes qui serviront de sources des copies lorsque l'énumération i sera traitée. Les abréviations spéciales "." , "*", " .t" , "*t" et
"q" sont résolues à l'aide de memberId_i et storeId.
- toOrderId
- Spécifie la commande à créer ou à modifier. Il peut s'agir d'une référence de commande ou d'une des abréviations spéciales ".",
"*", ".t", "*t", "**" et ".**.". Si rien n'est spécifié ou si le paramètre a la valeur
"**", une commande est créée. Si plusieurs commandes
sont spécifiées, seule la dernière commande mise à jour est prise en
compte.
Les abréviations sont résolues à l'aide du client en cours (celui qui exécute la commande) et du magasin spécifié dans
le paramètre storeId.
- copyOrderItemId_i
- Spécifie quels articles doivent être copiés à partir des commandes
source spécifiées par fromOrderId_i et ajoutés à la commande cible spécifiée par to_orderId.
- S'il n'est pas spécifié, ou si "*" est précisé, le paramètre renvoie à tous les articles de la commande appartenant aux commandes spécifiées par fromOrderId_i.
- Si "." est spécifié, le paramètre renvoie à l'ultime mise à jour de l'article de commande appartenant aux commandes spécifiées par fromOrderId_i.
- "**" signifie qu'un seul article sera ajouté à la commande cible, les seules informations utilisées étant celles des autres
paramètres de l'énumération spécifiée par i, et non celles des instructions source de cette énumération. Dans ce cas, catEntryId_i ou partNumber_i doit être précisé. L'instruction OrderCopy appelle l'instruction OrderItemUpdate pour ajouter de nouveaux articles à la commande cible.
- updateOrderItemId_i
- Précise les articles de la commande cible à mettre à jour. La mise à jour utilise les informations extraites
d'autres paramètres du groupe d'énumérations spécifié par i, mais pas les commandes sources pour ce groupe
d'énumérations ni catEntryId_i et partNumber_i. Veuillez noter que l'ID d'entrée de catalogue
d'un article de commande ne peut pas être mis à jour. L'instruction OrderCopy appelle OrderItemUpdate pour
mettre à jour les articles de commande dans la commande cible.
- Si "*" est spécifié, cela représente tous les articles de la commande cible.
- "." signifie les derniers
articles mis à jour.
- orderInfoFrom
- Spécifie la référence d'une commande à partir de laquelle copier les informations sur les niveaux de commande (valeurs des colonnes DESCRIPTION, ADDRESS_ID, SEQUENCE, FIELD1, FIELD2 et FIELD3 de la table ORDERS).
- Si plusieurs
commandes sont spécifiées, tout se passe comme si seule la dernière
commande mise à jour l'était.
- "**" demande à ne copier aucune information
relative au niveau de commande, quelle que soit la commande.
- Si ce
paramètre n'est pas spécifié, ou si le paramètre
from_Order_Id_i ne spécifie qu'une commande
source, cette dernière est automatiquement prise en compte. Sinon, la
valeur par défaut est "**". Les abréviations sont résolues par utilisation du client en
cours et du magasin spécifié dans le paramètre storeId.
- payInfoFrom
- Spécifie la référence d'une commande à partir de laquelle copier les informations sur les paiements obtenues par appel à la tâche de traitement
GetOrderPaymentInfoCmd. Si plusieurs
commandes sont spécifiées, tout se passe comme si seule la dernière
commande mise à jour l'était.
"**" demande à ne copier aucune information
relative au niveau de commande, quelle que soit la commande. Si ce
paramètre n'est pas spécifié, ou si le paramètre
from_Order_Id_i ne spécifie qu'une commande
source, cette dernière est automatiquement prise en compte. Sinon, la
valeur par défaut est "**". Les abréviations sont résolues à l'aide du client en cours et du magasin spécifié par le paramètre storeId.
- catEntryId_i
- Définit l'ID d'entrée de catalogue des articles dans le groupe d'énumération i.
- quantity_i
- Définit la quantité d'articles dans le groupe d'énumération i.
- UOM_i
- Unité de mesure pour la quantité_i.
- partNumber_i
- Numéro de référence à convertir en ID d'entrée de catalogue. Il remplace catEntryId_i.
- addressId_i
- Référence de l'adresse à laquelle expédier les articles de l'énumération spécifiée par i. L'adresse
doit appartenir au client exécutant cette commande.
- shipModeId_i
- Spécifie un numéro de référence d'un mode d'expédition à transmettre à l'instruction OrderItemUpdate lorsque les articles de commande sont ajoutés ou mis à jour dans la commande cible pour le groupe d'énumérations spécifié par
i. Ce numéro de référence est associé à un service d'expédition particulier.
- comment_i
- Commentaire joint à l'article, qui doit être transmis à l'instruction OrderItemUpdate lorsque les articles de commande sont ajoutés ou mis à jour dans la commande cible.
- field1_i
- Spécifie une valeur entière à transmettre à l'instruction OrderItemUpdate lorsque les articles de commande sont ajoutés ou mis à jour dans la commande cible pour le groupe d'énumérations spécifié par i.
- field2_i
- Spécifie une chaîne de caractères à transmettre à l'instruction OrderItemUpdate lorsque les articles de commande sont ajoutés ou mis à jour dans la commande cible, pour le groupe d'énumérations spécifié par i.
- contractId_i
- Numéro de référence du contrat associé à la commande, à transmettre à l'instruction OrderItemUpdate lorsque les articles de commande sont ajoutés ou mis à jour dans la commande cible.
- offerId_i
- Une liste des ID d'offres à choisir au cours de la création d'un nouvel article de commande. Cette liste est transmise à l'instruction OrderItemUpdate. Il n'y a aucune valeur par défaut.
- outOrderName
- Indique les noms des combinaisons nom-valeur à ajouter à l'URL de réacheminement. La valeur de chaque paire nom-valeur ajoutée est le numéro de référence d'une commande cible. La valeur par défaut est "orderId".
- outOrderItemName
- Indique les noms des combinaisons nom-valeur à ajouter à l'URL de réacheminement. La valeur de chaque paire nom-valeur ajoutée est le numéro de référence d'un article de la commande cible. La valeur par défaut est "orderItemId".
- description
- Définit la description de la commande cible. Si rien n'est spécifié, la description de la commande"orderInforFrom" est utilisée, si elle existe.
- billingAddressId
- Définit l'ID de l'adresse de facturation de la commande cible. S'il n'est pas défini, celui la commande
"orderInfoFrom" est utilisé, s'il existe.
- displaySeq
- Définit la séquence d'affichage de la commande cible. Si elle n'est pas spécifiée, la séquence d'affichage
"orderInforFrom" est utilisée, si elle existe.
- field1 à field3
- Définit respectivement les valeurs de field1, field2 et field3 de la commande cible. Si cette instruction n'est pas spécifiée, la valeur de la zone correspondante de la commande "orderInfoFrom" est utilisée, si elle existe.
- status
- Spécifie l'état de la commande cible. Seules les valeurs I (envoyée) et P (en suspens) sont correctes. La valeur par défaut est P. Si la valeur I est spécifiée après la mise à jour de la commande cible, elle est préparée pour l'affichage
et verrouillée comme si l'instruction OrderPrepare avait été appelée, puis l'état est
défini sur la valeur I. Cette opération prépare au traitement de la commande par
OrderProcess et l'empêche d'être modifiée ultérieurement par le client.
- memberId_i
- Numéro de référence d'un membre, utilisé pour résoudre les abréviations spéciales (".","*", ".t", ".**." et "*t") lorsqu'elles s'affichent dans fromOrderId_i. Par exemple, l'instruction suivante fait référence à toutes les commandes en attente du membre 1001 :
fromOrderId_1=*&memberId_1=1001
La valeur par défaut correspond à l'ID de membre de l'utilisateur en cours.
Si le client actuel essaye d'accéder aux commandes d'autres clients sans avoir
une autorisation pour cela, une exception est transmise.
- storeId
- Définit l'ID de magasin de la commande cible. Il sert également à résoudre les abréviations spéciales (".", "*", ".t",".**.", et "*t") lorsqu'elles apparaissent dans fromOrderId_i,
toOrderId, orderInfoFrom et payInfoFrom. Par exemple, l'instruction suivante fait référence à toutes les commandes en
attente du membre 1001 du magasin 1 :
fromOrderId_1=*&memberId_1=1001&storeId=1
- attr_name_i
- Spécifie un nom d'attribut et une valeur à transmettre à l'instruction
OrderItemUpdate lors de l'ajout des articles de commande pour le groupe d'énumérations spécifié par i à la commande cible. Par exemple, l'instruction suivante fait référence à la partie ABC123 avec l'attribut "length"=="10":
partNumber_1=ABC123&attr_1_length=10
- pay_name_payment
- Définit les paires nom-valeur de paiement de la commande cible. Par exemple, l'instruction suivante fait référence à la paire nom-valeur de paiement "creditCardNumber==2222222222":
pay_creditCardNumber=2222222222
Ces paires nom-valeur de paiement sont ajoutées à la table ORDPAYINFO
à l'aide de l'instruction d'activité SetOrderPaymentInfoCmd
Si rien n'est spécifié, les paires nom-valeur de paiement de l'instruction payInfoFrom sont utilisées, si elles existent.
- partOwner_Id_i
- ID membre du propriétaire du composant, utilisé avec partNumber_i ; valeurs par défaut du propriétaire du magasin.
- remerge
- Liste des OrderItems qui doivent être fusionnés avec d'autres OrderItems de la même commande et avec le même
attribut correlationGroup, si cela est possible.
- merge
- Liste des OrderItems qui doivent être fusionnés avec d'autres OrderItems de la même commande si possible, sans distinction d'attributs correlationGroup.
- check
- Liste des OrderItems qui doivent être contrôlés par l'instruction d'activité CheckInventory.
- allocate
- Liste des OrderItems qui doivent être attribués à partir d'un stock existant.
- backorder
- Liste des OrderItems qui doivent être attribués à partir d'un stock prévu.
- reverse
- Liste des OrderItems dont les attributions doivent être publiées (en d'autres termes, les attributions doivent être retirées du stock existant ou prévu concerné).
- configurationId_i
- Si l'OrderItem représente un kit dynamique configuré, c'est l'ID de configuration.
Remarque : les paramètres remerge, merge, check, allocate, backorder et reverse sont applicables uniquement si le stock ATP est activé (voir la colonne ALLOCATIONGOODFOR dans la table STORE). Ils
représentent les listes d'articles de commande (OrderItems) qui seront transmises à l'instruction AllocateInventory, qui
appelle les instructions CheckInventoryAvailability, AllocateExistingInventory, AllocateExpectedInventory,
DeallocateExistingInventory et DeallocateExpectedInventory, comme indiqué ci-après. Ces paramètres acceptent également les
abréviations d'OrderItem, qui sont présentées en détails dans la rubrique d'aide Instructions du
sous-système commandes.
Les valeurs par défaut des paramètres ATP sont les suivantes :
- remerge=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
Exemple 1
L'exemple suivant copie une commande à l'aide de fromOrderId_1 car le toOrder par défaut est ** (nouvelle commande) et
copyOrderItemId_1 est * (tous les articles de commande).
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?fromOrderId_1=388
&URL=OrderItemDisplay
Exemple 2
L'exemple ci-après crée deux commandes en attente à partir desquelles vont être fusionnés tous les articles de commande.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=322200305
&quantity=11&URL=OrderItemDisplay&storeId=32&orderId=**
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=322200301
&quantity=11&URL=OrderItemDisplay&storeId=32&orderId=**
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?URL=OrderItemDisplay
&fromOrderId_1=*©OrderItemId_1=*
Exemple 3
L'exemple ci-après ajoute un nouvel article à la commande 111.
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?fromOrderId_1=111
&toOrderId=111&partNumber_1=PART-I312200303&quantity_1=21&memberId_1=0
&storeId=31&URL=OrderItemDisplay
Exemple 4
L'exemple ci-après fait des copies à l'aide de partNumber. Si ce paramètre est précisé, catEntryId_i
est ignoré. Le paramètre partNumber_i et la référence du magasin spécifiés ou induits par les autres paramètres servent à déterminer un numéro de référence en sélectionnant les colonnes PARTNUMBER et MEMBER_ID dans la table CATENTRY. Cette
instruction se comporte comme si le numéro de référence du produit spécifié était catEntryId_i. La commande doit pouvoir déterminer un numéro de
référence de magasin à partir des autres paramètres. Le résultat est que l'article est ajouté à la commande 111.
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?fromOrderId_1=111
&toOrderId=111&partNumber_1=PART-I312200303&quantity_1=21
&memberId_1=1&storeId=31&URL=OrderItemDisplay
Comportement
- Les instructions d'activité ResolveOrdersCmd et ResolveOrderItemsCmdsont sont appelées pour convertir les
abréviations d'OrderId et OrderItemId, et déterminer quels commandes et articles de commande sont spécifiés par les
paramètres.
- Si nécessaire, la commande cible est créée dans la table ORDERS
avec l'état P, déverrouillé.
- La tâche
CheckOrderCopyCmd est appelée pour
vérifier le droit du client à copier des informations des commandes spécifiées par les paramètres fromOrderId_i, orderInfoFrom et payInfoFrom et mettre à jour les informations de la commande cible.
- Les informations sur la commande sont mises à jour dans la table ORDERS.
- Les informations sur le paiement sont lues à partir de la commande précisée par le paramètre payInfoFrom en
appelant l'instruction d'activité
GetOrderPaymentInfoCmd, mises à jour
selon les précisions apportées par les paramètres pay_payment_name et écrites dans la commande
cible spécifiée par le paramètre toOrderId en appelant la tâche
SetOrderPaymentInfoCmd.
- Pour chaque paramètre copyOrderItem_i et updateOderItem_i en ordre ascendant de i, les informations sur l'article de commande
spécifié sont copiées ou mises à jour dans la table ORDERITEMS de la commande cible, en appelant l'instruction OrderItemUpdate.
- Si le paramètre d'état indique I, l'affichage et le traitement de la commande cible sont préparés comme si l'instruction OrderPrepare
avait été appelée (les montants sont calculés et la commande est verrouillée) et l'état de la commande cible et ses articles passent à I dans les tables
ORDERS et ORDERITEMS.
- L'instruction d'activité ExtOrderCopyCmd
est appelée
- Des paires nom-valeur sont ajoutées à l'URL de réacheminement
spécifiée par les paramètres outOrderName
et outShiptoName.
Conditions d'exception
- L'instruction d'activité CheckOrderCopyCmd
signale une exception ECApplicationException du type _ERR_ORDER_COPY avec l'affichage d'erreurs OrderCopyErrorView si l'instruction ne permet pas d'accéder à une commande. Les paires nom-valeur suivantes seront définies :
- ERROR_CODE=601
- orderId=l'ID de commande à l'origine de l'erreur
- Si la commande cible n'est pas en état de suspens, une exception ECApplicationException du type_ERR_ORDER_WRONG_STATUS est signalée avec l'affichage d'erreur OrderCopyErrorView. Les paires nom-valeur suivantes sont également définies :
- ERROR_CODE=603
- orderId=l'ID de commande à l'origine de l'erreur
- Toutes les conditions d'exception OrderItemUpdate.