Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModewide
SELECT FirstName, LastName FROM Users
WHERE UPPER(FirstName) LIKE UPPER('%' || ? || '%') AND UPPER(LastName) LIKE UPPER('%' || ? || '%')

Notewarning

WARNUNG

Die Einschränkung der Reihenfolge hat zur Folge, dass ein Parameter in der Query genau einmal verwendet werden kann.

...

Code Block
languagexml
SELECT STRING(FirstName, ' ', MiddleName) AS CompleteName, LastName FROM Users
WHERE CompleteName LIKE '%' + ? + '%'

...

Zefix

Notewarning

WARNUNG

Die SOAP/XML Zefix Schnittstelle wurde abgeschalten. Um weiterhin Adressdaten zu beziehen, muss auf den neuen Address provider (siehe unter "Zefix (HTTP)") gewechselt werden. Die Grundkonfiguration ist identisch, Anpassungen an der Id und ggf. beim Mapping müssen erstellt werden.

...

Konfiguration/Zefix (HTTP):

Notewarning

WARNUNG

Diese Schnittstelle wurde abgeschalten. Wechseln Sie auf den neuen Address provider.

...

Im Beispiel oben finden Sie ein Mapping der gängigsten Parameter eines privaten Kontakts. Beachten Sie, dass Sie alle gewünschten Parameter mappen müssen.

...

.

...

...

in­no­sol­vcity-Address Provider von Innosolv

...

Diese Adressschnittstelle spricht vom "BasisService" den Endpunkt "FindSubjektKontaktperson" an.

...

Code Block
breakoutModewide
languagexml
[...]
<Title>NEST Kontaktperson</Title>
[...]
<SearchParameters>
  <SearchParameter Name="Vorname" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.FirstName]}" Type="String" Length="100" Sort="1" />
  <SearchParameter Name="Name" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.LastName]}" Type="String" Length="100" Sort="2" />
  <SearchParameter Name="Geburtsdatum" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.Birthday]}" Type="Date" Length="100" Sort="3" />
  <SearchParameter Name="StrasseHaus" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.StreetHouse]}" Type="String" Length="100" Sort="4" />
  <SearchParameter Name="PLZ" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.ZipCodeCity]}" Type="String" Length="6" Sort="5" />
  <SearchParameter Name="Ortsname" Label="" Type="String" Length="100" Width="130" Sort="5" />
  <SearchParameter Name="ID_Subjekt" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.SubjectID]}" Type="Long" Length="100" Sort="6" />
  <SearchParameter Name="AlleAdressarten" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.AllAddressTypes]}" Type="Boolean" Length="100" Sort="7" />
  <SearchParameter Name="ActiveOnly" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.ActiveOnly]}" Type="Boolean" Length="100" Sort="8" />
</SearchParameters>
[...]

...

  • id 5da866b2-e63a-11eb-ba80-0242ac130004

  • Title Titel des Address Provider. Default: "SharePoint"

  • HostUrl Host-Url des SharePoint Online (ohne https://) z. B. firma.sharepoint.com

  • TenantId Die TenantId des AAD

  • ClientId Die AppClient ID der im AAD konfigurierten App

  • ClientSecret Client Secret der im AAD konfigurierten APP (kann verschlüsselt werden)

  • Site Name der Site in welcher die Liste erstellt ist

  • List Name der Liste

  • SearchParameter Liste mit allen Eingabemöglichkeiten

    • Name Eindeutige Id für den Parameter. Entspricht dem Platzhalter in der Odata Query

    • Label Angezeigter Text vor dem Eingabefeld

    • Type Eingabetyp: String (Text), Long (Zahl), Boolean (Ja/Nein) oder Date (Datum)

    • Length Maximale Länge für Strings

    • Sort Sortierungswert gegenüber den anderen Parametern

  • Query Die Query für die Abfrage am Service wird mit OData v4 geschrieben. Aus der Lister der unterstützten Operationen sind folgende möglich: expand, filter, orderby, select, top. Die Spalten aus der Liste sind immer unter fields/ abgelegt, daher ist es wichtig, das bei allen Operationen (ausser top) stets der Präfix 'fields/' aufgeführt ist. z. B. <Select>fields/Vorname</Select>. Die Suchparameter können mittels {SearchParamId} innerhalb der Query referenziert werden.

    • Expand Mit dem Expand Operator können mehrdimensionale/verlinkte Felder erweitert werden. Klassische Beispiele dafür sind verknüpfte Personen und die Adresse. Standard ist fields.

    • Filter Mit dem Filter Operator können die Einträge anhand der eingegebenen Suchwerte gefiltert werden. Liste der Vergleichsoperatoren. Achtung, Einschränkungen weiter unten beachten.

    • OrderBy Mit dem OrderBy Operator können die Einträge nach bestimmten Spalten sortiert werden. Standard ist unsortiert.

    • Select mit dem Select Operator können die zurückgegebenen Spalten/Informationen eingeschränkt werden. Standardmässig werden alle Informationen selektiert.

    • Top Mit dem Top Operator kann die maximale Anzahl zurückgegebener Resultate limitiert werden. Standard ist 50.

  • Debug true falls zusätzliche Informationen geloggt werden sollen (verfügbare Werte mit Namen für das Mapping, detailliertere Fehlermeldungen)

  • Mapping Für SharePointlisten muss zwingend ein Standard-Kontakt-Mapping definiert werden. Ohne Mapping können die Einträge nicht verarbeitet werden. Für das Mapping werden die Spaltennamen als SourceAttribute verwendet. Ausnahme dabei sind Felder vom Typ Ort und Link.

    • Ort

      • Ortschaftsangaben werden durch Sharepoint automatisch auf mehrere Spalten aufgeteilt. Diese enthalten dann nicht den Spaltennamen, sondern die englische Bezeichnung: Street, PostalCode, City usw. Die komplette Adresse wird mit DispName hinzugefügt. Sind mehrere Spalten vom Typ Ort in einer Liste vorhanden, so werden diese von links nach rechts durchnummeriert, beginnend bei der zweiten Adresse mit 0, z. B. Street, Street0, Street1 bei drei Adressen.

      • primedocs bereitet die Adressen auch noch selbst auf. Dies mit SpaltenName.address.City usw.

    • Link

      • Links werden durch SharePoint in Url und Anzeigename aufgeteilt zurückgegeben: SpaltenName.Url, SpaltenName.Description

  • Icon Base64-Icon, das dem Benutzer im Empfängerdialog angezeigt wird.

Notewarning

WARNUNG

Für die Filterquery gibt es einige Einschränkungen:

  • Es kann nur in indexierten Spalten gesucht werden MS-Dokumentation zum Hinzufügen indexierter Spalten.

  • Entgegen der Dokumentation der Vergleichsoperatoren von Microsoft funktioniert der contains(FieldName, 'SearchValue') Vergleichsoperator nicht! Es muss stattdessen substringof('SearchValue',FieldName) verwendet werden.

  • Leere Werte gelten bei substringof nicht als Teil des Inhaltes. Dies hat als Konsequenz, dass wenn nicht alle Suchparameter einen Wert haben, kein Eintrag gefunden wird. Aus diesem Grund wurde die Filterquery so aufgebaut, dass innerhalb des <Filters></Filters> mehrere <Filter></Filter> definiert werden können. Ein <Filter></Filter> wird nur dann beachtet, wenn für jeden darin enthaltenen Suchparameter ein Wert eingegeben wurde:

  • Code Block
    languagexml
    <Filters>
     <Filter>substringof('{street}', fields/Street)</Filter> <!-- Wird nur ausgeführt, wenn street ausgefüllt ist -->
     <Filter>substringof('{firstName}', fields/Vorname) and substringof('{street}', fields/Street)</Filter> <!-- Wird nur ausgeführt, wenn street und firstName ausgefüllt sind -->
    </Filters>    

...