Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Es wird empfohlen, den Import zunächst in einer eigenen Testumgebung durchzuführen.

Importer installieren

Wie im Artikel Kontinuierlicher Datenimport beschrieben, wird eine Importer.exe benötigt. Diese kann selbst geschrieben werden. Für die meisten Fälle bietet antony aber Standard-Importer an. Diese können im Hub manuell installiert werden. Dazu auf im Hub auf Umgebungsverwaltung > Produkteund den Punkt Produkt installieren aufklicken und den Namen des gwünschten Importers angeben.

  • AntonyDataImportCsv

  • AntonyDataImportMsSql

  • AntonyDataImportMySql

  • AntonyDataImportOdbc

  • AntonyDataImportOracle

_import_configuration

Die _import_configuration Tabelle enthält als Basisinformationen des Imports

Database field

Description

id

Jeder Import hat seine eigene ID. Dies ist eine GUID, die Sie einfach generieren können. Zum Beispiel hier https://guidgenerator.com

is_active

Mit diesem Flag können Sie den Import aktivieren (1) und deaktivieren (0)

debug

Das AntonyImportModul erstellt Dateien, die von der Importer.exe interpretiert werden. Die Importer.exe liest diese Dateien und erzeugt eine Ausgabedatei. Wenn das debug-Flag gesetzt (1) ist, werden diese beiden Dateien nicht nach dem Vorgang nicht entfernt. Sie finden sie unter %TEMP%\AntonyImporter des Benutzers, unter dem die Dienste laufen. Üblicherweise finden Sie sie unter C:\Windows\Temp\AntonyImporter

Note

Diese Dateien werden nicht entfernt, wenn debug = 1 ist. Seien Sie vorsichtig, da Ihr Festplattenspeicherplatz ein Problem werden könnte.

frequency

Die Häufigkeit, mit der der Import ausgelöst wird.

Format: <d>.<HH>:<MM>:<ss>. Sie können keinen Bereich unter einer Minute festlegen, da der Importeur nur einen pro Minute überprüft.

import_name

Der Name des Imports. Dieser kann frei vergeben werden.

comment

Ein Kommentar zu diesem Import. Frei zur Verwendung,

connection_information

Die Verbindungsinformationen, die Importer.exe im Rahmen des Vorgangs erhält. Dies kann einen ConnectionString oder eine API-Adresse oder etwas anderes enthalten.

Die konkrete Information, die dort abgelegt wird ist abhängig vom verwendeten Importer

import_group

Manchmal möchten Sie mehrere Importe aus demselben Ursprung (z.B. ERP) konfigurieren. Diese Importe können einen Link zueinander enthalten, wie z.B. eine CustomerId innerhalb einer Bestellung. In diesem Fall müssen Sie die beiden Importe dieselbe ImportGroup aufweisen. Der Importer macht die Mappings mit den dann in den Importern verfügbar. Mit einem Converter Lookup können Sie die ID des foreignSystem in die antony ID übersetzen.

Diese Funktion wurde ursprünglich für Kundenverknüpfungsfelder innerhalb eines Flexobjects entwickelt.

mapping_name

Diese Einstellung ist nur in Verbindung mit einer import_group relevant. Wenn sie gesetzt ist, können Sie auf den Status eines anderen Imports innerhalb der importer.exe unter diesem Namen zugreifen.

Sie müssen darauf achten, dass der mapping_name für alle Ihre konfigurierten Importe eindeutig ist. Andernfalls kann der Importeur die foreign_id des Importeurs nicht mit den ids von antony in Verbindung bringen.

importer_exe

Der vollständige Pfad zur importer.exe, die vom AntonyImportModul ausgeführt wird. Beispielsweise "C:\Program Files\antony Groupware GmbH\AntonyDataImportOdbc\antony.DataImport.Odbc.exe"

import_exe_args

Diese Argumente werden an die importer.exe übergeben. Die Verwendung ist abhängig von den Fähigkeiten der verwendeten importer.exe

target_type

Der Typ, in den importieren werden soll. Dies kann sein

  • "antony://kontakt" für einen Kontakt

  • "antony://appointment" für einen Termin

  • "antony://flexobject/<typeId>" für ein FlexObject. Die typeId ist die ID des Flexobject-Typs. Siehe Tabelle "flexobject" für weitere Informationen.

import_parameter

Dies sind einige Parameter, die der importer.exe erhalten kann, um konfiguriert zu werden. Wie diese Parameter verwendet werden, ist abhängig von der verwendeten importer.exe. Dies kann beispielsweise eine SQL-Query sein.

merge_fields

Manchmal möchte man nicht ein ganzes Objekt importieren, sondern nur einige Daten aus einem System in ein bestehendes importieren. Stellen Sie sich vor, Sie importieren Bestellungen in ein Flexobjekt. Sie haben nun ebenfalls ein ERP-System, dass den Status dieser Bestellung über die Bestellnummer der Bestellung festhält. Mit den merge_fields können Sie den Import so konfigurieren, dass dieser Status an das bereits vorhandene Flexobjekte angefügt wird.

Dazu prüft der Importer, ob es bereits ein Flexobject mit dem Wert gibt, den die importer.exe im Feld merge_fields angibt. Ist dies der Fall, wird dieses Flexobject durch den Import aktualisiert. Andernfalls wird ein neues Flexobjekt erzeugt

Wenn Sie mehrere Flexobjects haben, die der Bedingung entsprechen, werden ALLE Flexobjects aktualisiert. Sie können auch mehrere Felder angeben. Die Felder in der Datenbank sind durch Kommas getrennt

batch_size

Hier wird die Größe des Stapels festgelegt, den der Importer ohne Verzögerung importiert. Der Standardwert ist 1. Diese Option und die Option delay_between_batch sind nützlich, wenn Sie große Datensätze importieren (sagen wir mal big = >200). In diesem Fall wird Antony 200 einzelne Erstellungs- und Aktualisierungsvorgänge durchführen, was sich auf die Leistung und Stabilität Ihrer gesamten Installation auswirken wird.

delay_between_batch

Hier wird die Verzögerung festgelegt, die der Importer zwischen den Batches (siehe batch_size wartet. Die Angabe ist in ms.

suppress_create

Dieses Flag ist nützlich, wenn Sie sicherstellen wollen, dass durch den Import kein neues Element erzeugt werden soll. Benutzen Sie dies, wenn Sie nur zusätzliche Daten aus einer Quelle in einen bereits bestehenden Datensatz in antony importieren wollen. Z.B. das obige Beispiel des Bestellstatus aus dem ERP

import_configuration_mapping fields

Diese Tabelle enthält die Konfiguration des Imports, wie die "provides"-Felder der "importer.exe" auf das "antony"-Feld abgebildet werden.

Database field

Description

id

Eine inkrementelle id

foreign_source_field

Dies ist der Feldname, den die importer.exe dem AntonyImportModul zur Verfügung stellt. Dies kann der Name einer Spalte für den ODBC-Importer oder einer json-Spalte oder ähnlichem sein.

Die Felder sind Abhängig vom verwendeten Importer.

antony_target_field

Dies ist das Feld des von Ihnen konfigurierten target_type (siehe unten), in das das foreign_source_field geschrieben werden soll. Achten Sie darauf, dass dieses Feld nur einmal für eine Importkonfiguration zugeordnet wird.

Für customFields müssen Sie die <ID> des Feldes kennen. Am einfachsten erhalten Sie diese, indem Sie das Flexobjekt im Layoutmodus öffnen und sie aus der Eigenschaftenansicht kopieren. Der Name lautet entsprechend Field_<ID>

converter_infos

Hier können Sie Konverter konfigurieren, um die vom Importer.exebereitgestellten Werte zu konvertieren. Diese sind für kleine Umformungen wie “ToUpper”, “Split” oder sonstiges gedacht. Jeder Konverter benötigt zwei Parameter

  • ConverterName: Dies ist der Name des Konverters. Es sind standardmäßig zwei Konverter definiert

  • Expression: Nimmt einen C# Linq-Ausdruck, um den Wert frei zu konvertieren. Beispiel:

Code Block
languagejson
[{"ConverterName":"Expression","ConverterParameter":"(x) => x.ToUpper()"}]
  • IdLookup: Dieser Konverter kann verwendet werden, um eine Id aus dem import_state nachzuschlagen. Er ist nützlich in Kombination mit import_group für zum Beispiel Ansprechpartner Mappings. Beispiel:

Code Block
languagejson
[{ "ConverterName": "IdLookup", "ConverterParameter": "integra"}]

Achten Sie darauf, dass die Eingabe korrekt gequoted wird (" zu \")

comment

Ein Kommentar. Dieser kann von Ihnen ausgefüllt werden, um das Mapping noch in 2 Tagen zu verstehen.

import_configuration_id

Die Id des Imports. Dies ist der Link zur Tabelle _import_configuration

List Antony Fields

Natürlich wollen Sie die Zuordnung der Felder zu den entsprechenden antony-Feldern konfigurieren. Dazu müssen Sie die Namen der Felder kennen, die antony zur Verfügung stellt. Sie können sie hier finden

Contact

TargetType: “antony://contact”

Antony Mapping Field

.net Data-Type

Comments

MainContactId

System.Int64

Dies ist die Id von antonys' Hauptkontakt, wenn der Kontakt ein Unterkontakt sein möchte. Normalerweise ist diese im Fremdsystem nicht vorhanden, denn dort sind natürlich nur die Ids des jeweiligen Fremdsystems enthalten.

Zum Mappen können Sie den eingebauten Konverter IdLookup verwenden und den mapping_name des entsprechenden Imports angeben. Der Importer wird antonys MainContactId automatisch auflösen.

Code Block
languagejson
[{ "ConverterName": "IdLookup", "ConverterParameter": "integra"}]

Wenn der angegebene Hauptkontakt nicht im Importmapping enthalten ist, wird der neue Kontakt als normaler Hauptkontakt angelegt

Damit das IdLookup funktioniert müssen die Importe in der selben import_group sein

TitleId

System.Int64

Die ID des Titels des Kontakts. Sie können sie in der Tabelle type_title finden

Company

System.String

Firstname

System.String

Lastname

System.String

Street

System.String

Zipcode

System.String

City

System.String

State

System.Int64

Die ID des Bundeslandes. Sie finden sie in der Tabelle type_state

CountryId

System.Int64

Die ID des Landes. Sie können sie in der Tabelle type_contry finden

Phone

System.String

Phone2

System.String

Fax

System.String

Email

System.String

Mobile

System.String

Homepage

System.String

Comment

System.String

StreetPrivate

System.String

ZipcodePrivate

System.String

CityPrivate

System.String

StatePrivate

System.Int64

Die private ID des Bundeslands. Sie finden sie in der Tabelle type_state

CountryIdPrivate

System.Int64

Die private ID des Landes. Sie können sie in der Tabelle type_contry finden

PhonePrivate

System.String

Phone2Private

System.String

FaxPrivate

System.String

Department

System.String

Picture

Byte[]

Birthday

System.DateTime

Stellen Sie sicher, dass Sie hier LocalTime verwenden

ContactGroup

System.Boolean

Wenn Sie hier eine Kontaktgruppe angeben, wird der Kontakt zu der angegebenen Kontaktgruppe hinzugefügt. Der aktuelle Kontakt wird nicht aus den bestehenden Gruppen entfernt.

Benutzerdefinierte Felder von Kontakten können hinzugefügt werden, indem Feld_n in das Feld antony_field eingetragen wird. Das n ist die ID des benutzerdefinierten Feldes selbst. Sie können es entweder aus dem visuellen Editor von antony oder aus der Tabelle instance_customfields übernehmen

Appointment

TargetType: “antony://appointment”

Antony Mapping Field

.net Data-Type

Comments

UID

System.Int64

AllDay

System.Boolean

StartDateTime

System.DateTime

Die Angaben sind hier in LocalTime!

EndDateTime

System.DateTime

Die Angaben sind hier in LocalTime!

Subject

System.String

Location

System.String

Description

System.String

Label

System.Int64

Status

System.Int64

IsPrivate

System.Boolean

HasReminder

System.Boolean

True, wenn eine Erinnerung konfiguriert ist

ReminderTimeBeforeStart

System.Int64

Die Anzahl der Nanosekunden der Erinnerungszeit.

Die Angabe in Nanosekunden ist historisch bedingt.

ResourceIds

List`1

Die IDs der Kalender, in die der Termin gelegt werden soll. Sie finden sie im Administator, wenn Sie sich dort die Spalte Ideinblenden lassen.

Beispiel für converter_infos, welche Termin im Kalender 73 und dem zugeordneten Feld eintragen.

Code Block
languagejson
[{"ConverterName":"Expression","ConverterParameter":"(x) => new int[] { 73, (int.Parse(x.ToString()))  }"}]

Das Erstellen von wiederkehrenden Terminen wird nicht unterstützt.

Flexobjects

Der Importer kann auch Flexobjekte importieren, die in Ihrer Umgebung konfiguriert sind. Da ein Flexobjekt nur CustomFields enthält, müssen Sie diese nachschlagen. Sie können hinzugefügt werden, indem man Field_n innerhalb des antony_field platziert. Das n ist die ID des Customfields selbst. Sie können sie entweder aus dem visuellen Editor von antony oder aus der Tabelle instance_customfields abrufen

TargetType: “antony://flexobject/<type_id>”

Die type_id ist die ID des Typs des Flexobjects selbst. Sie finden sie in der Tabelle flexobject

Fazit

Der Import ist ein leistungsstarkes, aber komplexes Werkzeug zum Importieren beliebiger Daten aus einer externen Datenquelle. Sie können zu den Standardimportern auch einen benutzerdefinierten Importer schreiben, um Daten aus Ihrer benutzerdefinierten Quelle zu holen.

Wenn Sie Probleme haben, Ihren Import zum Laufen zu bringen, kontaktieren Sie uns bitte.