innosolvcity (former NEST)
innosolvcity address provider by Innosolv.
This address interface addresses the "FindSubjectContactPerson" endpoint from the "BasisService".
Warning
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:
After:<AddressProvider id="B16EC67C-444E-46DC-A659-93E95BB4EB4D" ...> ... </AddressProvider>
<!-- 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
Simple example configuration:
<!-- 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>
Detailed example configuration:
<!-- 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>
With translated labels:
[...]
<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