User Tools

Site Tools


standardimport:kun

CustomerData Import

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.

Allgemein

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:

  • Felder die nicht in der XML vorhanden sind werden beim update ignoriert
  • bei einem leeren Feld in der XML wird der zugehörige Wert beim update auf “” gesetzt
  • Für jeden importierten Kunden wird das Feld dateLastImported aktualisiert auf das jetzige Datum

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:

  • FirmenNr. gefüllt, Firmenname leer → Wenn für die FirmenNr. schon eine Firma existiert wird ein neuer ASP für die vorhandene Firma angelegt. Ansonsten wird weder eine neue Firma noch ein ASP angelegt.
  • FirmenNr. und Firmenname gefüllt → Neuer ASP für bestehende Firma wird anglegt. Falls die Firma noch nicht existiert wird diese ebenfalls angelegt.
  • FirmenNr. und Firmenname leer → Es wird eine ASP ohne Firma angelegt
  • FirmenNr. und Firmenname gefüllt, aber keine Kundendaten gefüllt (ExternalContactNumber) → Es wird nur eine neue Firma ohne ASP angelegt
  • FirmenNr. leer, Firmenname gefüllt → Fehler! Es wird weder ein ASP noch eine Firma angelegt.

Am Ende eines jeden Imports wird eine E-Mail versendet, in welcher der Ablauf des Imports protokolliert ist:

  • wie viele Kunden wurden importiert
  • wurden Kunden evtl. nicht importiert; aus welchem Grund wurden sie nicht importiert.

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).

Beispiel

ab Version 5.1.7

Erweitert um Benutzer, Firmen und Firmenbeziehungen

Kann nun folgende Daten importieren:

  • Kunden
  • Benutzer
  • Firmen (inkl. Beziehungen)

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

customers_maxmoeglichefelder4.1.xml

Felder im Import

Tag "customer"

Feld-NameInfo
companynumberDie von Ihnen vergebene Firmennummer. (Pflichtfeld)
companynameDer Name der Firma.
parentiddie companynumber der zugeordneten Vaterfirma
streetDie Straße, wo sich die Firma befindet.
cityDie Stadt in der sich die Firma befindet.
zipcodeDie Postleitzahl der Stadt in der sich die Firma befindet.
emailDie E-Mail Adresse der Firma.
statusGü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.
countryDas Land indem sich die Firma befindet (Iso-Code oder Wert aus Mapping).

Tag "attributes" (der Firma)

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.

Tag "contactperson"

Feld-NameDatentypInfo
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.
email 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).

Tag "attributes" (des Ansprechpartners)

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.

Konfiguration

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.

App.config

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

Rollenkonfiguration (ab Version 5.7)

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-NameInfo
defaultUserRoleHier werden die Rollen ID's für Benutzer von der Administrations Maske von 1stAnswer eingetragen. (Screenshot siehe unten)
defaultCustomerRoleHier 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.

CustomAttributeConfig.xml

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”

Mappings

CustomMappings (ab 4.0.14.20):

  • der Import bietet die Möglichkeit für die Zeitzone, Anrede, Sprache und Land (ab 5.1) ein CustomMapping abzubilden
  • dies geschieht mit Hilfe einer csv-Datei
  • der Pfad zur Datei kann in der App.Config angeben werden
  • sollte kein Mapping konfiguriert sein wird es ignoriert und die DefaultRoutine verwendet (falls vorhanden, siehe Feldbeschreibungen)
  • Nutzen: somit können später bei Customisierungen Werte vom Kunden mit den internen 1stAnswer Werten verknüpft werden
<!-- 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" />

Beispielmappings

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

Präprozessor für .csv Dateien

Ab 5.5.1.0

Die funktion ist unter “Generische Konfiguration für den Customer- und KonfigurationItemImport” beschrieben.

Bis 5.5.0.0

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:

companyData.csv

contactData.csv

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.

App.config

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="&quot;" />

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

Mapping

Für den CSV Präprzessor existiert kein eigenes Mapping. Es wird das Mapping des XML Imports genutzt, siehe hier

Generische Konfiguration für den Customer- und KonfigurationItemImport

standardimport/kun.txt · Last modified: 2014/03/21 12:14 (external edit)