Dieser Import dient als Standard-Kundenschnittstelle, dabei importiert er Firmen, Ansprechpartner und Benutzer aus einer oder mehreren formatierten XML-Files.
Benutzer können erst ab Version 5.1 importiert werden, als Schalter dient dabei das Feld discriminator.
Achtung: Techniker werden nicht berücksichtigt.
Felder, welche nicht „standardmäßig“ in der Datenbank hinterlegt sind, können als zusätzliche Attribute “CustomAttributes” angelegt werden, dabei ist zu beachten dass die Namen der CustomAttributes gesondert in der “ CustomAttributeConfig.xml” in boID's gemapped wird.
Besonderheiten beim Import:
Import von Firmen (ab 5.1.3.0)
Der Import bietet die Möglichkeit Firmen zu importieren wenn diese in der zu importierenden xml-Datei vorhanden sind. Daraus ergeben sich folgende Konstellationen:
Am Ende eines jeden Imports wird eine E-Mail versendet, in welcher der Ablauf des Imports protokolliert ist:
Auch in Versionen vor 5.1.3.0 können einige Firmendaten mitgeliefert werden, sie werden allerdings im Ansprechpartner mitgespeichert.
Firmen-Beziehungen importieren (ab 5.1.8.0)
Der “CustomerImport” ab Version 5.1.8.0 kann auch Firmen-Beziehungen erstellen.
Hinweis: Derzeit gibt es folgende Einschränkung:
Es können derzeit nur “Vater-Beziehungen” importiert werden. Außerdem kann nur eine einzige Vater-Beziehung importiert werden (alle bestehenden Vater-Beziehungen werden gelöscht).
ab Version 5.1.7
Erweitert um Benutzer, Firmen und Firmenbeziehungen
Kann nun folgende Daten importieren:
Kunden (mit Firmen): customers.xml
Benutzer (mit Firmen): beispiel_userimport.xml
ab Version 5.0.7.0
Erweitert um CSV Präprozessor
ab Version 4.1
Feld-Name | Info |
---|---|
companynumber | Die von Ihnen vergebene Firmennummer. (Pflichtfeld) |
companyname | Der Name der Firma. |
parentid | die companynumber der zugeordneten Vaterfirma |
street | Die Straße, wo sich die Firma befindet. |
city | Die Stadt in der sich die Firma befindet. |
zipcode | Die Postleitzahl der Stadt in der sich die Firma befindet. |
Die E-Mail Adresse der Firma. | |
status | Gültige Status: 0 = Active (Benutzer ist aktiv) 1 = Deleted (Benutzer ist gelöscht) 2 = Locked (Benutzer ist gesperrt) Es kann die Ziffer oder der Text geliefert werden. |
country | Das Land indem sich die Firma befindet (Iso-Code oder Wert aus Mapping). |
Der XML-Tag “attribute” hat ein Attribut mit dem Namen “name”.
Der Wert dieses “name-Attributs” muss mit dem Wert einer der “attribute”-Tags aus der CustomAttributeConfig.xml übereinstimmen.
Der Inhalt des Tags ist der Wert des CustomAttributes in der Applikation. Für Checkboxen müssen die Werte 'True' und False' geliefert werden.
Feld-Name | Datentyp | Info |
---|---|---|
discriminator | Falls es auf U gesetzt ist, aktuelle Satz wird als User importiert. Bei fehlendem discriminator oder C wird als Customer importiert (abwärtskompatibilität).(T wird nicht unterstützt) | |
contactnumber | string | Die Kontaktnummer, die Sie dem Ansprechpartner vergeben wollen. Pflichtfeld für Kunden. |
loginName | Anmeldename (Login-Name) Pflichtfeld für Benutzer. | |
password | Passwort. Hier kann das verschlüsselte Passwort geliefert werden. Ab Version 5.8 | |
firstname | Vorname des Ansprechpartners | |
lastname | Nachname des Ansprechpartners | |
salutation | int | Anrede des Ansprechpartners: 0 = Mr 1 = Mrs 2 = Dr 3 = Prof |
street | Die Straße, wo sich der Ansprechpartner befindet. | |
city | Die Stadt in der sich der Ansprechpartner befindet. | |
zipcode | Die Postleitzahl der Stadt in der sich der Ansprechpartner befindet. | |
businessphone | Nummer des Geschäftstelefon des Ansprechpartners | |
businessphone2 | Nummer des Geschäftstelefon des Ansprechpartners | |
mobilephone | Mobiltelefonnummer des Ansprechpartners | |
privatephone | Nummer des privaten Telefon des Ansprechpartners. | |
businessfax | Nummer Geschäftsfax des Ansprechpartners. | |
privatefax | Private Faxnummer des Ansprechpartners. | |
E-Mail Adresse des Ansprechpartners. | ||
status | Der Ansprechpartner kann den Status: 0 = Active 1 = Deleted 2 = Locked haben. Es kann die Ziffer oder der Text geliefert werden. |
|
timezone | int | Die Zeitzone, wenn diese zu berücksichtigen ist. |
locale | Die Sprache des Ansprechpartners (Iso-Code oder Wert aus Mapping). | |
country | Das Land indem sich der Ansprechpartner befindet (Iso-Code oder Wert aus Mapping). |
Der XML-Tag “attribute” hat ein Attribut mit dem Namen “name”.
Der Wert dieses “name-Attributs” muss mit dem Wert einer der “attribute”-Tags aus der CustomAttributeConfig.xml übereinstimmen.
Der Inhalt des Tags ist der Wert des CustomAttributes in der Applikation.
Der Pfad in dem die XML-Files gesucht werden, kann in der “app.config” konfiguriert werden. Des weiteren werden die importierten Files zur Absicherung lokal, in einen konfigurierbaren Ordner, archiviert.
Der Import wird innerhalb des “appSettings”-Abschnitt in der App.config konfiguriert
<!-- import --> <add key="importDir" value="D:\SVN\CustomerDataImport\import" /> <add key="importFileMask" value="*.xml" /> <add key="archiveDir" value="D:\SVN\CustomerDataImport\backup"/> <add key="customAttributeConfigFilePath" value="D:\1stAnswer\CustomerDataImport\CustomAttributeConfig.xml" /> <add key="skipDuplicateMailAddresses" value="false" />
importDir: Pfad indem die formatierten XML-Files liegen
importFileMask: Filterfunktion
archiveDir: Pfad indem die bereits importierten XML-Files archiviert werden
customAttributeConfigFilePath: Pfad zur CustomAttributeConfig.xml
skipDuplicateMailAddresses: wenn bereits ein Benutzer/Ansprechpartner mit dieser Emailadresse existiert, wird kein Fehler ausgelöst. Desweiteren wird ein neuer Kunde mit dieser E-Mail Adresse angelegt, obwohl diese E-Mail bereits im System existiert.
<!-- email testmode--> <add key="testMode" value="true"/> <add key="testModeEmailRecipient" value="dev0@samhammer.de"/>
testMode: falls 'true' werden die E-Mails an den testModeEmailRecipient versendet
<!-- mail sending --> <add key="logFilePath" value="D:\SVN\CustomerDataImport\Logs\UserLog.log"/> <add key="smtpServer" value="mail.samhammer.de"/> <add key="from" value="ciimport@1stanswer.de"/> <add key="to" value="dev0@samhammer.de"/> <add key="bcc" value=""/> <add key="subject" value="1stAnswer Customer-Import"/> <add key="mailBodyPrefix" value="Sehr geehrte Damen und Herren, anbei erhalten Sie Informationen über den aktuellen Configurationitem-Import: Erstellt: {0} "/> <add key="mailBodySuffix" value=" Mit freundlichen Grüßen Ihr HelpDesk-Team"/>
Hier wird der E-Mail Versand konfiguriert, dabei wird nach jedem Import eine Log-File versendet.
logFilePath: Pfad zur Log-File
In diesem Konfigurationsabschnitt, kann man hinterlegen in welcher Rolle Benutzer/Kunden gespeichert werden sollen. Achtung: Techniker werden nicht berücksichtigt.
Beispiel:
<importRole> <add key="defaultUserRole" value="1;2;3;200" /> <add key="defaultCustomerRole" value="4;8;155" /> </importRole>
Mögliche Einstellungen:
Feld-Name | Info |
---|---|
defaultUserRole | Hier werden die Rollen ID's für Benutzer von der Administrations Maske von 1stAnswer eingetragen. (Screenshot siehe unten) |
defaultCustomerRole | Hier werden die Rollen ID's für Kunden von der Administrations Maske von 1stAnswer eingetragen. (Screenshot siehe unten) |
Vorgehen:
Bereits beim Import werden neuen Benutzer/Kunden eine Rolle zugewiesen. Ist der Benutzer/Kunde bereits vorhanden, dann wird keine Rolle des Users hinzugefügt. Bei einer falschen Konfiguration, wird der User übersprungen und kann im Log analysiert werden.
Beispiel:
<customAttributes> <customer> <!-- name should be the name of the attribute in xml, value the boId of the attribute --> <attribute name="attribute1">1</attribute> </customer> </customAttributes>
name: “Name des Attributes vom Kunden”
value: “boID”
CustomMappings (ab 4.0.14.20):
<!-- customMappings --> <add key="localeMapping" value="locale.csv"/> <add key="timeZoneMapping" value="timeZone.csv"/> <add key="salutationMapping" value="salutation.csv"/> <add key="countryMapping" value="country.csv" />
Locales (Sprachen) [bis 5.0]: locale.csv
Locales (Sprachen) [ab 5.1]: locale.csv
Zeitzonen: timezone.csv
Anreden: salutation.csv
Länder [ab 5.1]: Beispiel: country.csv
Die funktion ist unter “Generische Konfiguration für den Customer- und KonfigurationItemImport” beschrieben.
Durch den .csv Präprozessor ist es möglich Daten aus .csv Dateien zu importieren. Dazu wird eine .csv Datei benötigt in der die Firmendaten hinterlegt sind (Firmennummer, Firmenname,…) und eine in der die Ansprechpartner zu den Firmen hinterlegt sind (Firmennummer, Ansprechpartnernummer,…). Die Kontaktdaten können nur korrekt importiert werden, wenn zu jeder Firmennummer in der Kontaktdaten CSV eine Firmennummer in der Firmendaten CSV existiert. Darüberhinaus muss ein eindeutiges Trennzeichen die einzelnen Spalten in der .csv- Datei trennen.
Beispieldateien:
Der Präprozessor liest die Daten aus den .CSV Dateien aus und schreibt diese Daten anschließend in eine XML- Datei, die der Standardvorgabe für den Kundenimport entspricht. Anschließend werden die Daten der XML- Datei durch den Kundenimport in die Datenbank übernommen.
Der Import von .csv Dateien wird ebenfalls innerhalb des “appSettings”-Abschnitt in der App.config konfiguriert. Die Einträge werden per NANT configure Script gesetzt, sodass mitgelieferte Beispieldaten importiert werden können. Um Änderungen vorzunehmen muss die app.config angepasst werden. Dauerhafte Änderungen sind im configure Skript “configure-customerimport.xml” vorzunehmen.
<!-- csv import --> <add key="enableCSVImport" value="True" /> <add key="csvImportDir" value="D:\svn\1stAnswer5.0\FirstAnswer.CustomerImport\importcsv" /> <add key="companyFileName" value="companyData.csv" /> <add key="companyMapping" value="companynumber,companyname,street,city,ignore,zipcode" /> <add key="contactFileName" value="contactData.csv" /> <add key="contactMapping" value="contactnumber,companynumber,ignore,firstname,lastname,country,locale,salutation,businessphone,mobilephone,privatephone,businessfax,email" /> <add key="ignoreFirstLine" value="True" /> <add key="csvSeparator" value="," /> <add key="csvEncoding" value="UTF-8" /> <add key="csvArchiveDir" value="D:\svn\1stAnswer5.0\FirstAnswer.CustomerImport\backup\" /> <add key="csvTextQualifier" value=""" />
enableCSVImport: Ermöglicht den Import von .csv Dateien im Standard Customer Import. Nur wenn der Wert auf “True” gesetzt ist, können .csv Dateien importiert werden. Der Standardwert ist “False”. Möchte man .csv Dateien importieren, muss man vorher diesen Wert in der app.config anpassen.
csvImportDir: Pfad in dem die zu importierenden .csv Dateien liegen
companyFileName: Name der Firmendatendatei
companyMapping: Mapping für Spalten in der Firmendatendatei. Die Werte werden durch Komma getrennt angegeben. Die Wertebezeichnung in der app.config (z.B. companynumber) repräsentiert den entsprechenden Knoten im XML Dokument, welches für den Import verwendet wird. Für nicht zu beachtende Werte der csv Datei ist “ignore” einzutragen. Beispiel: Steht in der ersten Spalte der csv Datei die Firmennummer “12345” und trägt die Spalte die Überschrift “Firmennummer”, so muss der erste Wert, welcher in der app.config eingetragen wird “companynumber” lauten.Spalten die am Ende der csv Datei stehen und nicht relevant für den Import sind, müssen nicht (auch nicht mit ignore) eingetragen werden.
contactFileName: Name der Kontaktdatendatei
contactMapping: Mapping für Spalten in Kontaktdatendatei. Die Werte werden durch Komma getrennt angegeben. Die Wertebezeichnung in der app.config (z.B. contactnumber) repräsentiert den entsprechenden Knoten im XML Dokument, welches für den Import verwendet wird. Für nicht zu beachtende Werte der csv Datei ist “ignore” einzutragen. Beispiel: Steht in der vierten Spalte der csv Datei die Mobilfunknummer “0123/987654” und trägt die Spalte die Überschrift “Handynummer”, so muss der erste Wert, welcher in der app.config eingetragen wird “mobilephone” lauten. Spalten die am Ende der csv Datei stehen und nicht relevant für den Import sind, müssen nicht (auch nicht mit ignore) eingetragen werden.
ignoreFirstLine: Konfiguration für das Ignorieren der ersten Zeile. “True”, wenn die erste Zeile ignoriert werden soll (z.B. bei Überschriften in .csv Dateien). “False”, wenn die erste Zeile mit importiert werden soll. Es kann nur das ignorieren der ersten Zeile konfiguriert werden.
csvSeperator: Trennzeichen, welches in .csv Dateien verwendet wird um Spalten voneinander zu trennen. Das Trennzeichen muss eindeutig gewählt werden!
csvEncoding: Encoding welches für den .csv Import verwendet wird
csvArchiveDir: Pfad in dem die .csv Dateien nach erfolgreichem Import archiviert werden.
csvTextQualifier Texterkennungszeichen für den csv Import. Innerhalb von Blöcken, welche von dem konfigurierten Texterkennungszeichen umschlossen werden, wird das Trennzeichen nicht als solches beachtet
Für den CSV Präprzessor existiert kein eigenes Mapping. Es wird das Mapping des XML Imports genutzt, siehe hier