Operation: SearchResult
Die Anfrage ist ein Element vom Typ vcc:SearchResultRequest, das den Typ vct:TransactionRequestType um die folgenden Elemente erweitert:
Name | Typ/Vorkommen | Beschreibung |
---|---|---|
StartIndex | xsd:integer | Index des ersten Artikels, der Ă¼bertragen werden soll (0-basiert) |
Count | xsd:integer | Anzahl der Artikel |
ResultFormat | vcc:ResultFormatType | Format der Suchergebnisse |
DoNotClose | xsd:boolean? | Flag, um das automatische Beenden der Transaktion bei RĂ¼ckgabe des letzten Artikels zu verhindern |
Die Antwort ist ein Element vcc:SearchResultResponse, welches den Typ vct:TransactionResponseType, wie folgt erweitert:
Name | Typ/Vorkommen | Beschreibung |
---|---|---|
StartIndex | xsd:integer | Index des ersten Artikels, der Ă¼bermittelt wird (0-basiert) |
Count | xsd:integer | Anzahl der Artikel, die Ă¼bermittelt werden |
ResultFormat | vcc:ResultFormatType | Format der Suchergebnisse |
cac:Item | * | Artikelstammdaten |
vco:ItemDetail | * | Artikelstammdaten und VerfĂ¼gbarkeit |
cac:SellersItemIdentifcation | * | Artikelnummer |
Â
Regel: SearchResult
Ein veloconnect-konformer Server verarbeitet eine Anfrage SearchResult wie folgt:
Ist die im Request Ă¼bergebene TransactionID unbekannt wird ein SearchResultResponse mit ResponseCode 420 zurĂ¼ckgeliefert.
Ist die referenzierte Transaktionsinstanz nicht im Zustand 2 wird ein SearchResultResponse mit ResponseCode 430 zurĂ¼ckgeliefert.
Ăœber den Transaktionskontext ist die Gesamtzahl der Treffer sowie die Liste der gefundenen Artikel bekannt. (Die Trefferliste ist nicht leer, da sonst die Transaktionsinstanz im Zustand 100 wäre). Die vom Client Ă¼bergebene Zahl StartIndex wird zunächst wie folgt modifiziert: Ist sie negativ wird sie durch 0 ersetzt, ist sie grĂ¶ĂŸer oder gleich TotalCount wird sie durch TotalCount - 1 ersetzt. Sodann wird gegebenenfalls die Ă¼bergebene Zahl Count wie folgt modifiziert: Ist sie negativ, wird sie durch 0 ersetzt. Ist Startindex + Count > TotalCount, wird Count durch TotalCount - Startindex ersetzt. Der Server kann eine obere Schranke fĂ¼r Count festlegen und Count gegebenfalls durch diese obere Schranke ersetzen. Die obere Schranke darf weder kleiner als 50 noch kleiner als 2% von TotalCount sein. Die aktuellen Werte fĂ¼r TotalCount, StartIndex und Count werden im Element SearchResultResponse abgelegt. Ebenso wird der Inhalt von ResultFormat Ă¼bernommen.
Falls ResultFormat nicht den Inhalt COUNT hat, wird nun fĂ¼r Count viele Artikel der Trefferliste beginnend mit dem Index Startindex (Index ist 0-basiert) wie folgt verfahren:
Ist ITEM_DETAIL Inhalt von ResultFormat, wird gemäss Regel: GetItemDetailsList ein Element ItemDetail erzeugt.
Ist ITEM_TYPE Inhalt von ResultFormat, wird aus den Stammdaten des Artikels ein Element Item erzeugt.
Ist ID_ONLY Inhalt von ResultFormat, wird aus der Artikelnummer des Artikels ein Element SellersItemIdentification erzeugt.
Das vollständig ausgefĂ¼llte Element vcc:SearchResultResponse wird mit ResponseCode 200 an den Client Ă¼bermittelt.
Die Transaktion verbleibt im Zustand 2, es sei denn, es gilt StartIndex + Count >= TotalCount und in vcc:SearchResultRequest hat das Element DoNotClose nicht den Wert true.
Â