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:
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>
If the
SearchParameter
s are already explicitly configured, add the following new search parameter<SearchParameter Name="ActiveOnly" Label="{U[Recipients.NestAddressProvider.SearchParameterLabel.ActiveOnly]}" Type="Boolean" Length="100" Sort="8" />
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