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

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

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.