innosolvcity (ehem. NEST)


innosolvcity Address Provider von Innosolv.
Die Adressschnittstelle spricht vom "BasisService" den Endpunkt "FindSubjektKontaktperson" an.

WARNUNG
Dies ist die clientseitige Version des innosolvcity Address providers. Diese ist auf dem Stand von NEST 2018 und wird nicht mehr weiterentwickelt.
Wir empfehlen in jedem Fall die Verwendung vom serverseitigen innosolvcity Address provider, siehe nachfolgender Abschnitt Umstieg auf serverseitige Version des innosolvcity Address provider.


Umstieg auf serverseitige Version des innosolvcity Address provider

Für den Umstieg auf den serverseitigen innosolvcity Address provider sind die folgenden Schritte durchzuführen:

  1. "Konfigurationsrahmen" anpassen
    Vorher:

    <AddressProvider id="B16EC67C-444E-46DC-A659-93E95BB4EB4D" ...> ... </AddressProvider>

    Nachher:

    <!-- AddressService --> <AddressProvider id="E10A8313-A92D-4CB2-A12B-9AEB58F39207" ...> <!-- serverside innosolvcity address provider --> <AddressProvider id="28F86C73-3A64-4BFF-AD87-CBDA92ED9170"> ... </AddressProvider> </AddressProvider>
  2. Falls die SearchParameter bereits explizit konfiguriert sind ggf. den folgenden neuen Suchparameter hinzufügen

    <SearchParameter Name="ActiveOnly" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.ActiveOnly]}" Type="Boolean" Length="100" Sort="8" />
  3. Gegebenenfalls die folgende Konfigurationszeile hinzufügen

    <ActiveOnlyDefault>false</ActiveOnlyDefault>

NEST-Release 2018

Konfiguration

Beispiel 1 (minimal)

<!-- Nest Address Provider --> <AddressProvider id="B16EC67C-444E-46DC-A659-93E95BB4EB4D" order="1" active="true" hiddenIfNotAvailable="false"> <NestVersion>2018</NestVersion> <Uri>http://services.example.com:12345/BasisService</Uri> <UserName>myUserName</UserName> <Password>myPassword</Password> </AddressProvider>

Beispiel 2 (ausführlich)

<!-- Nest Address Provider --> <AddressProvider id="B16EC67C-444E-46DC-A659-93E95BB4EB4D" order="1" active="true" hiddenIfNotAvailable="false"> <Title>NEST Kontaktperson</Title> <NestVersion>2018</NestVersion> <Uri>http://services.example.com:12345/BasisService</Uri> <UserName>myUserName</UserName> <Password>myPassword</Password> <Debug>false</Debug> <AlleAdressartenDefault>false</AlleAdressartenDefault> <DetailsColumnMapping>./ExtendentFields/Item[@Key='Dynamic.Adressart']</DetailsColumnMapping> <SearchParameters> <SearchParameter Name="Vorname" Label="Vorname" Type="String" Length="100" Sort="1" /> <SearchParameter Name="Name" Label="Nachname" Type="String" Length="100" Sort="2" /> <SearchParameter Name="Geburtsdatum" Label="Geburtstag" Type="Date" Length="100" Sort="3" /> <SearchParameter Name="StrasseHaus" Label="Strasse/Haus" Type="String" Length="100" Sort="4" /> <SearchParameter Name="PLZ" Label="PLZ/Ort" Type="String" Length="6" Sort="5" /> <SearchParameter Name="Ortsname" Label="" Type="String" Length="100" Width="130" Sort="5" /> <SearchParameter Name="ID_Subjekt" Label="Subjekt-ID" Type="Long" Length="100" Sort="6" /> <SearchParameter Name="AlleAdressarten" Label="AlleAdressarten" Type="Boolean" Length="100" Sort="7" /> </SearchParameters> <Mapping> <!-- determine AddressType --> <Map Target="AddressType"> <Map.SourceExpression> <![CDATA[ function main() { let firmenname = source('Firmenname'); let name = source('Name'); let companyDataIsAvailable = firmenname !== null && firmenname !== ''; let personDataIsAvailable = name !== null && name !== ''; if (companyDataIsAvailable && personDataIsAvailable) { return 'CompanyAndPersonData'; } else if (personDataIsAvailable) { return 'PersonData'; } else { return 'CompanyData'; } } ]]> </Map.SourceExpression> </Map> <!-- Company --> <If Condition="target('AddressType') === 'CompanyAndPersonData' || target('AddressType') === 'CompanyData'"> <Map Target="Company_Name" Source="Firmenname" /> <Map Target="Company_Street" Source="StrasseHaus" /> <Map Target="Company_City" Source="Ort" /> <Map Target="Company_ZipCode" Source="PLZ" /> <Map Target="Company_Country" Source="Nation" /> <Map Target="Company_CountryShortCode" SourceExpression="''" /> <Map Target="Company_PhoneDirect" Source="Telefon" /> <Map Target="Company_EmailDirect" Source="Email" /> <Map Target="Company_FaxCentral" Source="Telefax" /> <Map Target="Company_Mobile" Source="Mobil" /> </If> <!-- Person --> <If Condition="target('AddressType') === 'CompanyAndPersonData' || target('AddressType') === 'PersonData'"> <Map Target="Person_Title" Source="Titel" /> <Map Target="Person_LastName" Source="Name" /> <Map Target="Person_FirstName" Source="Vorname" /> <Map Target="Person_SecondName" Source="Zusatzname" /> <Map Target="Person_Birthday" Source="Geburtsdatum" /> <Map Target="Person_SalutationShort" Source="Anrede" /> <Map Target="Person_Salutation" Source="Briefanrede" /> <If Condition="target('AddressType') === 'PersonData'"> <Map Target="Person_Street" Source="StrasseHaus" /> <Map Target="Person_City" Source="Ort" /> <Map Target="Person_ZipCode" Source="PLZ" /> <Map Target="Person_Country" Source="Nation" /> <Map Target="Person_CountryShortCode" SourceExpression="''" /> <Map Target="Person_PhoneDirect" Source="Telefon" /> <Map Target="Person_EmailDirect" Source="Email" /> <Map Target="Person_FaxDirect" Source="Telefax" /> <Map Target="Person_Mobile" Source="Mobil" /> </If> </If> <!-- Extended Fields --> <Map Target="ExtendedField_Dynamic.Adressart" Source="Adressart" /> <Map Target="ExtendedField_Dynamic.AnzeigeName" Source="AnzeigeName" /> <Map Target="ExtendedField_Dynamic.AdressZusatz" Source="AdressZusatz" /> <Map Target="ExtendedField_Dynamic.StrasseZusatz" Source="StrasseZusatz" /> <Map Target="ExtendedField_Dynamic.PostleitzahlZusatzziffer" Source="PostleitzahlZusatzziffer" /> <!-- Address Provicer Data --> <Map Target="AddressProviderData_Id" Source="ID_Subjekt" /> <Map Target="AddressProviderData_Name" SourceValue="NEST Einwohner" /> <If Condition="source('Briefanschrift')"> <Map Target="AddressProviderData_Label_FormattedString" Source="Briefanschrift" /> </If> <!-- ContactViewOptions --> <Map Target="AddressTypeOption" SourceExpression="target('AddressType') === 'PersonData' ? 'Private' : 'Business'" /> <Map Target="SalutationSeparateLine" SourceExpression="target('AddressType') === 'PersonData' ? 'true' : 'false'" /> </Mapping> </AddressProvider>

Mit übersetzten Beschriftungen

Konfiguration

[...] <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" /> </SearchParameters> [...]

Einträge in den Globalen Übersetzungen

Recipients.NestAddressProvider.Title de: NEST Kontaktperson en: NEST contact person fr: Personne de contact de NEST it: Persona di contatto NEST Recipients.NestAddressProvider.SearchParameterLabel.FirstName de: Vorname en: First name fr: Prénom it: Nome Recipients.NestAddressProvider.SearchParameterLabel.LastName de: Nachname en: Last name fr: Nom de famille it: Cognome Recipients.NestAddressProvider.SearchParameterLabel.StreetHouse de: Strasse/Haus en: Street/House fr: Rue/maison it: strada / casa Recipients.NestAddressProvider.SearchParameterLabel.ZipCodeCity de: PLZ/Ort en: Zip code/town fr: Zip/Ville it: Zip / Città Recipients.NestAddressProvider.SearchParameterLabel.Birthday de: Geburtstag en: Birthday fr: Date de naissance it: Data di nascita Recipients.NestAddressProvider.SearchParameterLabel.SubjectID de: Subjekt-ID en: Subject id fr: Id du sujet it: Id dell'oggetto Recipients.NestAddressProvider.SearchParameterLabel.AllAddressTypes de: Alle Adressarten en: All address types fr: Tous les types d'adresse it: Tutti i tipi di indirizzo

Vor NEST-Release 2018

Beispielkonfiguration:

<AddressProvider id="B16EC67C-444E-46DC-A659-93E95BB4EB4D" order="8" active="false" hiddenIfNotAvailable="true"> <Uri>http://services.example.com:12345/BasisService</Uri> <UserName>myUserName</UserName> <Password>myPassword</Password> </AddressProvider>

Aufbau

  • Title Titel des Address Provider. Default: "NEST Kontaktperson" (bei UI-Sprache Deutsch)

  • NestVersion Version vom Nest-Service. 2018, falls der Nest-Release 2018 (oder neuer) installiert ist.

  • Uri Uri des Nest-Service-Endpunkts

  • UserName Benutzername für Authentifizierung beim Nest-Service-Endpunkt

  • Password Password für Authentifizierung beim Nest-Service-Endpunkt

  • Debug true falls zusätzliche Informationen geloggt werden sollen (Request und Response)

  • AlleAdressartenDefault false, falls der "AlleAdressarten"-Suchparameter deaktiviert sein soll. Durch den SearchParameter "AlleAdressarten" (falls konfiguriert) kann der Benutzer diese Option für die aktuelle Suche ändern.

  • DetailsColumnMapping bestimmt, welche Daten in der Details-Spalte angezeigt werden. Default: ./ExtendentFields/Item[@Key='Dynamic.Adressart']

  • SearchParameters Hier kann die Such-Maske konfiguriert werden (siehe Beispielkonfiguration). Wenn dieses Element nicht konfiguriert wird, wird eine Standard-Suchmaske angezeigt (verfügbar in DE, EN, FR, IT; CheckBox "AlleAdressarten" wird nicht angezeigt). Bei der Nest-Suche können folgende Parameter verwendet werden:

    • Vorname

    • Name

    • Geburtsdatum (Date)

    • StrasseHaus

    • PLZ

    • Ortsname

    • ID_Subjekt (Long)

    • AlleAdressarten (Boolean)

  • Mapping Kontaktmapping, siehe Standard-Kontakt-Mapping. Mögliche Source-Felder, welche von NEST abgerufen und für das Mapping zur Verfügung gestellt werden:

    • Adressart

    • AdressZusatz

    • Anrede

    • AnzeigeName

    • Briefanrede

    • Briefanschrift

    • Email

    • Firmenname

    • Geburtsdatum

    • ID_Subjekt

    • Mobil

    • Name

    • Nation

    • Ort

    • PLZ

    • PlzOrt

    • PostleitzahlZusatzziffer

    • StrasseHaus

    • StrasseZusatz

    • Telefax

    • Telefon

    • Titel

    • Vorname

    • Zusatzname

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland