Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

innosolvcity

...

address provider by Innosolv.

...

This address interface addresses the "FindSubjectContactPerson" endpoint from the "BasisService".

Warning

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:

...

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:

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

...

  1. After:

    Code Block
    languagexml
    <!-- AddressService -->
    <AddressProvider id="E10A8313-A92D-4CB2-A12B-9AEB58F39207" ...>
      <!-- serverside innosolvcity address provider -->
      <AddressProvider id="28F86C73-3A64-4BFF-AD87-CBDA92ED9170">
        ...
      </AddressProvider>
    </AddressProvider>

...

  1. If the SearchParameters are already explicitly configured, add the following new search parameter

  2. Code Block
    languagexml
    <SearchParameter Name="ActiveOnly" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.ActiveOnly]}" Type="Boolean" Length="100" Sort="8" />

...

  1. If necessary, add the following configuration line:

    Code Block
    languagexml
    <ActiveOnlyDefault>false</ActiveOnlyDefault>

NEST-Release 2018

Configuration

...

Example 1 (

...

simple)

...

Code Block

...

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

...

Code Block

...

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

Code Block

...

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

Übersetzungen

...

Entries in the Global Translations

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

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

...

Vor NEST-Release 2018

...

]}" Type="Boolean" Length="100" Sort="7" />
</SearchParameters>
[...]

Before NEST release 2018

Example configuration:

Code Block
languagexml
<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

...

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.

...

  • 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