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:
"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>
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" />
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