Sage: Artikel mit Sachmerkmalen suchen (FindByPhysicalCriterionArticle)
Sage: Artikel mit Sachmerkmalen suchen (FindByPhysicalCriterionArticle)
Lesen der Daten eines oder mehrerer Artikel mit einer Suche nach Sachmerkmalen. Es kann eine Kombination aus Artikelinformationen und Merkmalen für die Suche verwendet werden. Als Eingabe werden zwei Parametergruppen verwendet. In der ersten Eingabeparametergruppe können verschiedene Parameter mit den entsprechenden Suchkriterien des Artikels belegt werden. Falls die Parameter das Zeichen % enthalten, wird mit like gesucht, ansonsten mit =. Die einzelnen Suchkriterien werden mit UND verknüpft. Es können alle Felder der Tabelle g000 angegeben werden. Durch Belegen des Parameters lang_ext kann gesteuert werden, welche Sprache gelesen werden soll. Eine spezielle Bedeutung haben die Parameter: BasePricemenge_ab und BasePricedatum. Mit diesen beiden Feldern können für die Einkaufspreise die gewünschte Menge bzw. Datum angegeben werden. In der zweiten Parametergruppe werden die Suchkriterien der Variantenmerkmale eingetragen. Diese Parametergruppe muss vom Typ: tdv:variantensuche sein. In dieser indizierten Parametergruppe existieren die Parameter Name, Operator und Wert. Je Suchbedingung muss auf dem Parameter Name der Name des Merkmals, auf dem Parameter Operator die Art des Vergleichs und auf dem Parameter Wert der zu vergleichende Wert eingetragen werden. Als Operator sind folgende Vergleiche möglich:
= | ist gleich |
> | Größer |
>= | Größer oder gleich |
< | Kleiner |
<= | Kleiner oder gleich |
!= | Ungleich |
Falls die Suche der Artikel auch die Werte einzelner Merkmale liefern soll, ist in einer dritten Parametergruppe eine Liste der zu lesenden Merkmale mitzugeben. Diese Parametergruppe muss vom Typ tdv:sage_merkmal_zuordnen sein. In dieser indizierten Parametergruppe müssen folgende Parameter belegt werden:
Name | der Name des Merkmals. (Dieser Name muss auch in der Ergebnisparametergruppe enthalten sein, sonst kann das Merkmal nicht geschrieben werden) |
Bezeichnung | Der Name eines Parameters der Ergebnisparamatergruppe, auf welchen die Bezeichnung der Ausprägung geschrieben wird. Diese Angabe ist optional |
Die Funktion liefert in einer indizierten Parametergruppe alle gefundenen Artikel zurück. Die Indizierung der Parametergruppe wird bei Bedarf angepasst. Bei Verwendung von unbekannten Suchkriterien liefert der Service eine entsprechende Fehlermeldung. Diese wird über den Parameter Meldung übergeben. Vor einer Auswertung der Ausgabeparametergruppe sollte der Parameter Meldung überprüft werden.
Um die Geschwindigkeit dieser Funktion zu erhöhen, gibt es noch die Möglichkeit, die intern im Service zu lesenden Daten einzugrenzen. Mit dem Parameter select der Suchparametergruppe kann die Liste der zu lesenden Felder gesteuert werden. z.B.
art_such.select = ’identnr,ben,werkstoff,PhysicalCriterion/*’
oder
art_such.select = ’identnr,ben,werkstoff,BasePrice/ekpreis,PhysicalCriterion/fldname, PhysicalCriterion/fldtyp, PhysicalCriterion/ausprint, PhysicalCriterion/ausprtxt, PhysicalCriterion/ausprfloat, PhysicalCriterion/ausprdatuhr, PhysicalCriterion/txt’
Folgende Gruppen an Feldern kann spezifiziert werden:
Felder des Artikels | <Name> |
Felder der Artikelbenennung | ArtivelName/<Name> |
Basispreis | BasePrice/<Name> |
Merkmal | PhysicalCriterion/<Name> |
Ausprägungsbezeichnung | PhysicalCriterion/CriterionRangeDesignation/txt |
Folgende Parameter der Parametergruppe werden gefüllt.:
abmessung, aendnr, agr, altern, aplidentnr, aplvar, ben, ben1, bestell, bild, bild_inet, bonuskz, breite, bs, cadkz, cadnr, ch, dataen, datneu, doku, dpreis, ekpreism, epreis, ekpreis, gewicht, hoehe, identnr, kalkpreis, klasse, kn_sebl, kn_variant, kn_vsperre, kontovb, kontovr, kontowe, kontowv, kostst, kurz_ben, laenge, lang_ext, lgnr, mc_var, me, me_abmessung, meb, mep, mev, mevk, menge_ab, norm, normnr, objektid, orpreis, pe, peek, pevk, preisgrp, preisgrp_e, prodgr, rabattkz, staffel, stlidentnr, stlvar, ts_m, ts_w, txt_nr, umrech, umrechb, umrechp, umrechvk, updatenr, useraen, userneu, var, var_akt, volumen, vpreis, waehrung, werkstoff, wgr, zeichnr, zu_ab, zuab_wert und die angegebenen Merkmale.
Syntax: | Status = f$SageService ( Service , 'FindByPhysicalCriterionArticle' , 'PGINPUTListe' , 'PGOUTPUT' ) | |||
| Argument | Typ | Bedeutung | |
| Service | Zeichenkette | URL des WebService Dienstes | |
| 'FindByPhysicalCriterionArticle' | Zeichenkette | Befehlskonstante | |
| 'PGINPUTListe' | Zeichenkette | Name der beiden mit Komma getrennten ePOS Parametergruppen mit den Suchkriterien. | |
| 'PGOUTPUT' | Zeichenkette | Name der ePOS Parametergruppe mit den Ergebnisdaten. | |
Ergebnis: | Ganzzahl | Status der Funktion: 1 : die Servicefunktion wurde erfolgreich aufgerufen -1 : die Komponente eposvbcomexe konnte nicht gefunden werden -2 : keine URL der Funktion angegeben -4 : allgemeiner Fehler | ||
Beispiel 1 : | B7Service = 'http://b7demo.sagebaeurer.de/br71/callin/epos_soap' Variantensuche[1].Name = 'SPANNUNG' Variantensuche[1].Operator = '=' Variantensuche[1].Wert = '12 Volt' Status = f$SageService ( B7Service , 'FindByPhysicalCriterionArticle', 'art_such,Variantensuche' , 'art_erg' ) | |||
Beispiel 2 : | B7Service = 'http://b7demo.sagebaeurer.de/br71/callin/epos_soap' art_such.BasePricemenge_ab = 2 Variantensuche[1].Name = 'SPANNUNG' Variantensuche[1].Operator = '=' Variantensuche[1].Wert = '12 Volt' Artikelmerkmale[1].Name = 'SPANNUNG' Artikelmerkmale[2].Name = 'BREITE' Artikelmerkmale[3].Name = 'PRUEF_STROM' Artikelmerkmale[3].Bezeichnung = 'PRUEF_STROM_TXT' Status = f$SageService ( B7Service , 'FindByPhysicalCriterionArticle', 'art_such,Variantensuche,Artikelmerkmale' , 'art_erg' ) | |||