innosolvcity (former NEST)


innosolvcity address provider by Innosolv.
This address interface addresses the "FindSubjectContactPerson" endpoint from the "BasisService".

WARNUNG
This is the client-side version of the innosolvcity address provider. This is up to date with NEST 2018 and is no longer under development.
We recommend using the server-side innosolvcity address provider in any case, see the following section Switch to server-side version of innosolvcity address provider.


Switch to server-side version of innosolvcity address provider

To switch to the server-side innosolvcity address provider, perform the following steps:

  1. Customize "configuration frame"
    Before:

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

    After:

    <!-- AddressService --> <AddressProvider id="E10A8313-A92D-4CB2-A12B-9AEB58F39207" ...> <!-- serverside innosolvcity address provider --> <AddressProvider id="28F86C73-3A64-4BFF-AD87-CBDA92ED9170"> ... </AddressProvider> </AddressProvider>
  2. If the SearchParameters are already explicitly configured, add the following new search parameter

  3. <SearchParameter Name="ActiveOnly" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.ActiveOnly]}" Type="Boolean" Length="100" Sort="8" />
  4. If necessary, add the following configuration line:

    <ActiveOnlyDefault>false</ActiveOnlyDefault>

NEST-Release 2018

Configuration

Example 1 (simple)

<!-- 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>

Example 2 (detailed)

<!-- 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

Configuration

[...] <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> [...]

Entries in the Global Translations

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

Configuration

[...] <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> [...]

Before NEST release 2018

Example configuration:

<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>

Structure

  • Title Title of the address provider. Default: "NEST Contact" (with UI language German)

  • NestVersion Version from Nest service. 2018 if the Nest release 2018 (or newer) is installed.

  • Uri Uri of the Nest service endpoint

  • UserName Username for authentication to the Nest service endpoint

  • Password Password for authentication to the Nest service endpoint

  • Debug true if additional information is to be logged (request and response)

  • AlleAdressartenDefault false if the "AllAddressTypes" search parameter is to be disabled. The user can change this option for the current search by using the "AllAddressTypes" search parameter (if configured).

  • DetailsColumnMapping determines which data will be displayed in the Details column. Default: ./ExtendentFields/Item[@Key='Dynamic.AddressType']

  • SearchParameters The search mask can be configured here (see sample configuration). If this element is not configured, a default search mask is displayed (available in DE, EN, FR, IT; checkbox "AllAddress types" is not displayed). The following parameters can be used for the Nest search:

    • Vorname

    • Name

    • Geburtsdatum (Date)

    • StrasseHaus

    • PLZ

    • Ortsname

    • ID_Subjekt (Long)

    • AlleAdressarten (Boolean)

  • Mapping Contact mapping, see default contact mapping. Possible source fields retrieved from NEST and made available for mapping:

    • 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