Befehl 'OrderItemUpdate'
Dieser Befehl kann alle Aufgaben des Befehls
OrderItemAdd ausführen, also einer oder mehreren Bestellungen in der Liste der Bestellungen
Produkte und Artikel hinzufügen. Außerdem kann der Befehl Bestellartikel (OrderItems)
in einer bestehenden Bestellung aktualisieren.

Parameterwerte
- http://host_name/pfad/
- (Obligatorisch) Der vollständig qualifizierte Name Ihres WebSphere Commerce Servers und der Konfigurationspfad.
- forUser
- Die Anmelde-ID des Benutzers in dessen Namen der Befehl ausgeführt wird;
nur eine Person mit der Berechtigung, Bestellungen verarbeiten zu können,
kann diesen Parameter angeben.
- forUserId
- Identisch mit "forUser"; hier wird jedoch der Benutzer mit
einer internen Benutzer-ID identifiziert, wie in der Tabelle
USERS angegeben.
- langId
- Setzt die bevorzugte Sprache für die Dauer der Sitzung oder setzt die bevorzugte
Sprache zurück; die unterstützten Sprachen sind in der Tabelle
STORELANG enthalten.
- URL
- (Obligatorisch) Die URL-Adresse, die nach der erfolgreichen Ausführung des
Befehls aufgerufen werden soll.
- orderItemId_i
- Die Kennung des zu aktualisierenden Bestellartikels. Wenn dieser Parameter
angegeben wird, werden die Parameter catEntryId_i und partNumber_i (für denselben
i-Wert) ignoriert.
- storeId
- Die Geschäftskennung; diese ist nur obligatorisch, wenn den Bestellungen Produkte oder Artikel
hinzugefügt werden sollen. Die storeId ist erforderlich, um zu überprüfen,
ob der Artikel im Geschäft verfügbar ist. Wenn Sie die storeId einmal angegeben haben,
wird sie für die zukünftige Verwendung in den Cache gestellt.
- catEntryId_i
- Die Kennung eines Katalogeintrags, der zur Erstellung eines neuen Bestellartikels
verwendet werden soll.
- partNumber_i
- Wenn dieser Parameter angegeben ist, wird
der Parameter catEntryId_i ignoriert. Wenn partNumber_i und
memberId_i angegeben werden, bestimmen sie durch Auswahl der Spalten PARTNUMBER
und MEMBER_ID in der Tabelle CATENTRY einen Katalogeintrag. Dieser Befehl verhält sich
so, als würde die Kennung des Katalogeintrags als Wert für catEntryId_i angegeben.
- memberId_i
- Die Kennung für das Mitglied, das der Eigner des Katalogs ist, in dem die Bestellung platziert wird.
- attrName_i
- Ein beliebiges eindeutiges Attribut, das für den Artikel definiert ist.
- attrValue_i
- Der Wert des Attributs in attrName.
- quantity_i
- Die Menge des der Bestellung hinzuzufügenden Artikels. Dieser Parameter ist
erforderlich, wenn catEntryId_i oder partNumber_id angegeben werden. Er ist optional,
wenn OrderItemId_i angegeben wird.
- UOM_i
- Die Maßeinheit für quantity_i. Dieser Wert muss mit einem der primären
Schlüssel in der Tabelle QTYUNIT übereinstimmen. Wenn
dieser Parameter nicht angegeben wird, wird der Wert der Spalte QUANTITYMEASURE
in der Tabelle CATENTSHIP für die Zeile verwendet, deren CATENTRY_ID mit dem Bestellartikel
übereinstimmt, und der Wert des Parameters quantity_i wird mit der Spalte NOMINALQUANTITY
derselben Zeile in der Tabelle CATENTSHIP multipliziert.
- addressId_i
- Die Kenung der Adresse, an die die Produkte und Artikel versendet werden.
- shipModeId_i
- Die Referenznummer des Versandmodus, nach dem das Produkt oder
der Artikel versendet werden soll.
- comment_i
- Ein Kommentar, der in die erstellten oder aktualisierten
Bestellartikel aufgenommen werden soll.
- contractId_i
- Die Kennung des Vertrags, der der Bestellung zugeordnet ist.
- field1_i
- Ein für das Geschäft reservierter ganzzahliger Wert.
- field2_i
- Ein für das Geschäft reservierter Textwert. Dieser Parameter kann maximal 254 Zeichen enthalten.
- offerId_i
- Die Kennung des Angebots, das der Bestellung zugeordnet ist.
- orderId
- Eine intern generierte Kennung, die Null oder mehr zu aktualisierende Bestellungen angibt,
wobei die Bestellreferenznummern oder eine der Sonderabkürzungen "**", ".",
"*", ".t", "*t" verwendet werden. In
Abkürzungen für
Bestellungen sind entsprechende Beschreibungen hierzu enthalten. Sind für
ein bestimmtes Geschäft keine anstehenden Bestellungen vorhanden, wird eine neue anstehende
Bestellung erstellt. Werden mehrere anstehende Bestellungen angegeben, werden für
jede der angegebenen Bestellungen Bestellartikeleinträge erstellt oder aktualisiert.
- outOrderName
- Gibt die Namen von Name/Wert-Paaren an, die der Umleitungs-URL
hinzugefügt werden sollen. Die Werte der hinzugefügten Name/Wert-Paare sind die Referenznummern
der erstellten oder aktualisierten Bestellungen.
- outOrderItemName
- Gibt die Namen von Name/Wert-Paaren an, die der Umleitungs-URL
hinzugefügt werden sollen. Die Werte der hinzugefügten Name/Wert-Paare sind die Referenznummern
der erstellten oder aktualisierten Bestellartikel.
- listId
- Die Kennung der Liste interessanter Artikel. Wenn Sie diesen Parameter angeben, erstellt der
Befehl OrderItemUpdate eine neue Bestellung, die alle Artikel in der Liste enthält. Sie
können eine der Sonderabkürzungen "." and "*"
verwenden. Eine Beschreibung hierzu finden Sie unter Abkürzungen für Kataloge.
- orderDesc
- Gibt die Beschreibung der Bestellung für die von diesem Befehl
erstellte neue Bestellung an
- remerge
- Eine Liste der Bestellartikel (OrderItems), die (wenn möglich) mit anderen Bestellartikeln
in derselben Bestellung und mit dem gleichen Attribut 'correlationGroup' zusammengefügt werden sollen. OrderItems
werden nur zusammengefügt, wenn ihr Lagerbestandsstatus "NALC" ist oder
wenn sie in einem der Parameter allocate, backorder und reverse angegeben werden.
- merge
- Eine Liste der OrderItems, die (wenn möglich) mit anderen OrderItems
in der selben Bestellung - unabhängig vom Attribut correlationGroup - zusammengefügt werden sollen.
- check
- Eine Liste der OrderItems, die vom Task-Befehl CheckInventoryAvailability
geprüft werden sollen.
- allocate
- Eine Liste der OrderItems, die von einem bestehenden Lagerbestand
zugeordnet werden sollen.
- backorder
- Eine Liste der OrderItems, die von einem erwarteten Lagerbestand
zugeordnet werden sollen, wenn sie nicht aus bestehendem Lagerbestand
zugeordnet werden.
- reverse
- Eine Liste der OrderItems, deren Zuordnungen freigegeben werden sollen
(deren Zuordnung also vom vorhandenen oder erwarteten Lagerbestand rückgängig gemacht werden
soll).
- configurationId_i
- Wenn dieser Bestellartikel ein konfiguriertes dynamische Kit ist,
ist dies die Konfigurations-ID.
Hinweis:
Die Parameter 'remerge', 'merge', 'check', 'allocate', 'backorder' und 'reverse' sind nur dann anwendbar, wenn ATP-LagerbestandZUORDNUNG aktiviert ist (siehe die Spalte ALLOCATIONGOODFOR in der Tabelle STORE). Sie stellen Listen von OrderItems (Bestellartikeln) dar, die
an den Task-Befehl 'AllocateInventory' weitergegeben werden, der wiederum die Task-Befehle 'CheckInventoryAvailability',
'AllocateExistingInventory', 'AllocateExpectedInventory', 'DeallocateExistingInventory' und
'DeallocateExpectedInventory' aufruft, wie unten angegeben. Darüber hinaus akzeptieren diese Parameter
OrderItem-Abkürzungen, die in der Hilfe für die Befehle des Bestellsubsystems
detailliert beschrieben sind.
Folgendes sind die ATP-Standardparameterwerte:
- remerge=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
Beispiel 1
Im folgenden Beispiel wird ein Versanddatensatz für eine
einzige Einheit eines Katalogs mit der Referenznummer 18 und dem
Monogrammattribut CJK erstellt. Der Versanddatensatz wird den aktuell anstehenden
Bestellungen des Kunden
hinzugefügt. Wenn der Befehl abgeschlossen ist, wird der Befehl
OrderItemDisplay aufgerufen.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?addressId=2
&catEntryId=18&attrName=monogram&attrValue=CJK&quantity=1&shipModeId=4
&URL=OrderItemDisplay
Beispiel 2
Im folgenden Beispiel werden zehn Einheiten von Katalogeintragsnummer 2 allen aktuell
anstehenden Bestellungen des Kunden hinzugefügt. Wenn der Befehl abgeschlossen ist, wird der Befehl
OrderItemDisplay aufgerufen.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?catEntryId=2
&quantity=10&orderId=*&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
Beispiel 3
Das folgende Beispiel aktualisiert drei Bestellartikel-IDs.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?URL=OrderItemDisplay
&quantity_1=2&quantity_2=7&orderItemId_1=117&orderItemId_2=118
&orderItemId_3=113&quantity_3=2
Verhalten
- Der Befehl ruft ResolveOrdersCmd
mit dem Eingabeparameter orderId auf, der eine Bestellungsliste erstellt. Wenn dieser
Parameter nicht angegeben wird, wird als Standardwert "." (die aktuell anstehenden
Bestellungen) verwendet.
- Der Befehl führt für jede Aufzählungsgruppe 'i' von Parametern folgende Schritte aus:
- Bei Angabe des Parameters orderItemId_i werden die Parameter partNumber_i und
catEntryId_i ignoriert. Der Befehl versucht, den Bestellartikel zu aktualisieren.
- Bei Angabe des Parameters partNumber_i wird der Parameter catEntryId_i ignoriert. Der
Befehl verwendet partNumber_i mit dem optionalen Parameter memberId_i, um den
Katalogeintrag zu suchen. Wird memberId_i nicht angegeben, wird standardmäßig die Member-ID des
Geschäftseigners als Member-ID verwendet.
- Wenn der Parameter orderItemId_i nicht angegeben wird und der Parameter
partNumber_i oder catEntryId_i angegeben wird, versucht der Befehl, einen neuen Bestellartikel
zu erstellen und ihn in alle aufgelösten Bestellungen einzufügen. Ist die Liste der
aufgelösten Bestellungen leer, wird eine neue anstehende Bestellung erstellt.
- Bei der Erstellung einer neuen Bestellung wird die Mitglieds-ID der neuen Bestellung
auf den aktuellen Benutzer im Befehlskontext gesetzt, und auch die Währung wird aus dem
Befehlkontext übernommen.
- Bei der Erstellung einer neuen Bestellung ist der Parameter quantity_i
erforderlich; der Parameterwert muss eine positive Zahl sein. Die Mitglieds-ID
und die Währung des Bestellartikels wird so gestezt, dass sie mit der Mitglieds-ID
und der Währung identisch sind. Der Parameter storeId ist ebenfalls erforderlich.
- Wenn dieselbe Aufzählungsgruppe 'i' mehrmals angegeben wird, ist nur eine
Aufzählungsgruppe gültig und die übrigen werden ignoriert.
- Die übrigen Parameter werden vom Befehl zur Aktualisierung des Bestellartikels
verwendet. Bei Angabe des Parameters orderItemId_i wird der bestehende Bestellartikel
aktualisiert, bei Angabe des Parameters partNumber_i oder catEntryId_i wird
ein neuer Bestellartikel erstellt.
- Wenn der Parameter addressId_i nicht angegeben wird, wird für registrierte Benutzer als
Standardwert die addressId in der Tabelle ADDRESS verwendet (wobei die Spalte STATUS
den Wert P hat und der Wert der Spalte NICKNAME die Anmelde-ID des Benutzers ist,
die aus der Spalte LOGONID in der Tabelle USERREG abgerufen wurde). Wird die
Adresse in der Tabelle ADDRESS nicht gefunden, ist die address_id für den Bestellartikel
in der Tabelle ORDERITEMS gleich NULL.
- Wenn quantity_i gleich null ist, wird der Bestellartikel aus den Bestellungen
entfernt.
- Wenn der Parameter shipModeId_i nicht angegeben wird, wird der Standardwert
aus der Tabelle STOREDEF verwendet.
- Ruft den Task-Befehl GetContractUnitPriceCmd auf, um anhand der angegebenen
oder nhand aller Handelsvereinbarungen (Verträge), für die das Mitglied der Bestellung
in Frage kommt, den Vertragspreis des Produkts
oder Artikels abzurufen. Davon ausgenommen sind Bestellartikel, die generiert wurden
oder deren Preis manuell eingegeben (vom Administrator außer Kraft gesetzt) wurde; in der Spalte
PREPAREFLAGS der Tabelle ODERITEMS
finden Sie weitere Details hierzu). Für alle
zu verwendenden eingegebenen Handelsvereinbarungen (Verträge) wird überprüft, ob ihre Zahlungsmethoden
kompatibel sind. Die Währung ist immer mit der Währung der Bestellung identisch.
- Alle Bestellungen, die einen oder mehrere aktualisierte oder eingefügte
Bestellartikel umfassen, werden entsperrt und die Felder zur Angabe der letzten
Aktualisierung werden auf die aktuelle Zeitmarke aktualisiert.
- Nach der Verarbeitung der Aufzählungsgruppen stellt der Befehl für alle geänderten
oder erstellten Bestellartikel eine Aktualisierung das Fulfillment-Center fest und ermittelt den
vorhandenen Lagerbestand. Wenn ATP-Lagerbestand aktiviert ist, wird AllocateInventoryCmd
aufgerufen. Andernfalls wird der abwärtskompatible Befehl ResolveFulfillmentCenterCmd
aufgerufen.
- Ruft den Task-Befehl ExtendOrderItemProcessCmd auf, um weitere Verarbeitungsprozesse für spezifische
Anforderungen auszuführen.
- Ruft RedirectView zur Umleitung an die angegebene URL auf.
Ausnahmebedingungen
- Je nach dem Fehler werden unterschiedliche Ausnahme-Tasks aufgerufen.
- Wenn einige Parameterwerte ungültig sind, gibt der Befehl die Ausnahmebedingung
ECApplicationException mit der Nachricht _ERR_INVALID_INPUT und der Fehlersicht
InvalidInputErrorView aus.
- Wenn die Artikelnummer (partNumber) angegeben wird, im Katalog jedoch nicht
gefunden werden kann, gibt der Befehl die Ausnahmebedingung ECApplicationException mit der Nachricht
_ERR_PROD_NOT_EXISTING und der Fehlersicht badPartNumberErrorView aus.
- Außerdem wird die Ausnahmebedingung ECApplicationException ausgegeben, wenn folgende Fehler auftreten:
- Eingegebene Handelsvereinbarungen (Verträge) sind ungültig oder können
nicht verwendet werden.
- In der Bestellung verwendete Handelsvereinbarungen (Verträge) wenden
nicht kompatible Zahlungsmethoden an.
- Preislisten können nicht abgerufen werden.
- Wenn ATP nicht aktiviert ist, gibt der Task-Befehl ResolveFulfillmentCenterCmd
u. U. die Ausnahmebedingung ECApplicationException mit der Nachricht
_API_BAD_INV und der Fehlersicht ResolveFulfillmentCenterErrorView aus.