VeloconnectTextSearch keine Suche aus Liste möglich?

Hallo zusammen,

wir stetzen gerade mal wieder eine Veloconnect-Anbindung um.
Leider hat unser Kunde in seiner Artikelkartei nicht die Herstelleartikelnummern übernommen. Jetzt müssen wir für neue Artikel immer erstmal über die EAN die SellerID abfragen.
Ich stehe jetzt gerade ein wenig auf dem Schlauch.
Im ersten Schritt haben wir das so umgesetzt, dass über VeloconnectTextSearch OHNE Filter einfach allers abeholt wird, im Mapping per Querverweis mit der Variante gemappt wird und dann in der Datenbank einfach die SellerIDs ergänzt werden.
Das ist aber immer reichlich Traffic.
Ich würde jetzt gerne nur noch die Artikel holen, für die ich noch keine SellerID habe.
Das würde gehen, indem ich mit der EAN als Suchbegriff arbeite. Ich finde aber keine Möglichkeit, wie ich das mit einer Liste machen kann. Das Feld Suche im Step VeloConnectTextSeach kann ich nur mit einem TextHTMLWriter oder einer einzelnen Variable verknüpfen, aber nicht mit einer Liste.
Beim PlentySearchOrderStep kann ich z.B. eine Liste mit OrderIDs verknüpfen und dann werden die nacheinanander abgeholt.
Sowas ähnliches suche ich auch für diesen Step. Steh ich da auf dem Schlauch oder gibt es das nicht.
Und wenn es das nicht gibt, gibt es eine andere Möglichkeit eine Schleife über diesen Step laufen zu lassen ?

Gruß

Heinke

Hallo Heinke,

du kannst versuchen, dir mit einem TextHTMLWriter den String für die Suche zu schreiben. Damit könntest du einfach alle EANs mit Trennzeichen aneinanderhängen. Ich gehe mal davon aus, dass die Suche auch Teiltreffer zulässt.

Gruß
Gustav

Hallo @gustavfriedeheim ,

Danke, nette Idee, aber funktioniert leider nicht.
Mein Problem ist, dass ich im Prinzip die Suche mehrmals hintereinander für die EANs durchlaufen müsste.
Wenn ich die EANS als String mitgebe wird nichts gefunden, weil nach dem ganzen String gesucht wird.
Ich bräuchte als im Prizip eine Schleife, die den Step immer wieder mit der nächsten EAN aus der Liste füttert, bis alle abgefragt sind.

Gruß

Heinke

Hallo @hostermann,

ja, ich hatte das schon im Verdacht. Nachdem ich die Step-Doku zu dem Filter-Feld gelesen habe, war ich mir nicht ganz sicher, ob es nun Teiltreffer zulässt oder eben nicht.

Die Schleifen an sich lassen sich leider nur auf Umwegen umsetzten. Das ist ein immer wieder auftauchenden Thema. Ich hatte unter dem folgenden Link schonmal einen Lösungsansatz beschrieben: EmailSendSMTP dynamisch anhand Datastore-Processing-Status versenden - #4 von gustavfriedeheim

Leider sind die Flows nicht mehr verfügbar, aber die Erklärung reicht vielleicht auch schon aus.

Gruß
Gustav

Hallo @gustavfriedeheim ,

Danke für den Tip, aber das macht so dann keinen Sinn. Das sprengt den Rahmen, da wie dann ja den Flow x-Mal laufen lassen müssen. Mit Pech hat gerade einer neue Artikel angelegt und dann läuft der 1000 x in Folge.

Gruß

Heinke
@synesty-Lukas Hat von Euch da einer eine Idee zu ? Andere Steps kann man auch mit einer Liste füttern, die dann nach und nach abgearbeitet wird.

Hallo Heinke,

wir haben das gerade nochmal intern besprochen und werden den VeloconnectTextSearch Step nicht um einen Spreadsheet Input erweitern. Wir haben uns dagegen entschieden, weil die Veloconnect Text Suche mit mehreren Suchbegriffen schnell zu einem sehr großen Output Spreadsheets (und großen XML Antworten) führen könnte. Das ist bei deinem usecase wahrscheinlich nicht der Fall, aber ggf. bei anderen Kunden. Außerdem sind wir uns nicht sicher, ob alle Veloconnect Lieferanten eine große Anzahl verschiedener Suchanfragen in kurzer Zeit verarbeiten können. Das ist für uns immer die große Unbekannte bei Veloconnect, da jeder Lieferant eine eigene Implementierung der Suche haben kann.

Zum technischen Hintergrund: Die Veloconnect Volltextsuche besteht aus zwei Operationen pro Suchbegriff. Bei der 1. Anfrage (CreateTextSearch) wird der Suchbegriff (ohne Limitierung) an den Lieferanten gesendet. In der Antwort erhält man eine Transaktions-ID für die Suchanfrage. Der Lieferant erzeugt dann das Ergebnis der Suche und es kann über die Transaktions-ID mit der Operation „SearchResult“ abgerufen werden.

Beispiel für einen problematischen Fall: Wenn der Suchbegriff in jeder der z.B. 1000 input Zeilen leer ist, dann werden in diesem Fall alle Artikel des Lieferanten 1000x abgerufen. Das wäre nicht so gut für uns und vermutlich auch nicht für die Lieferanten.

Ich verstehe, dass das in deinem Fall voraussichtlich kein Problem wird, da du nur ein (oder sehr wenige) Ergebniss(e) pro EAN Suchanfrage erhalten wirst. Bei anderen Kunden bzw. Suchanfragen könnte das aber ggf. zu Problemen auf unserer Seite führen. Ich hoffe du kannst das einigermaßen nachvollziehen.

Falls du die Suche trotzdem für eine Liste von Suchbegriffen machen willst, kannst du eventuell mal beim Lieferanten nachfragen, ob mehrere Suchbegriffe über eine Suchanfrage möglich sind (wie von @gustavfriedeheim vorgeschlagen). Manchmal haben die Lieferanten spezielle Trennzeichen für mehrere Suchbegriffe (z.B. | ).

Als „Notnagel“ gibt es noch den Weg über zwei SpreadsheetUrlDownload Steps. Hier aber zur Sicherheit auch beim Lieferanten nachfragen, ob sie viele „TextSearch“ Anfragen in kurzer Zeit verarbeiten können.

Viele Grüße
Torsten