Allgemein
Auf dieser Seite erfahren Sie, wie sie das Import Modul konfigurieren können.
Die Konfiguration ist derzeit nur über die Datenbank möglich. Damit werden technische Kentnisse über die Funktion relationaler Datenbanken vorausgesetzt!
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 > Produkte
und 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 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 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 Diese Funktion wurde ursprünglich für Kundenverknüpfungsfelder innerhalb eines Flexobjects entwickelt. |
mapping_name | Diese Einstellung ist nur in Verbindung mit einer 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 |
import_exe_args | Diese Argumente werden an die |
target_type | Der Typ, in den importieren werden soll. Dies kann sein
|
import_parameter | Dies sind einige Parameter, die der |
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 | Hier wird die Verzögerung festgelegt, die der Importer zwischen den Batches (siehe |
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 | An incremental id |
foreign_source_field | This is the fieldname the |
antony_target_field | This is the field of your configured For customFields you need to know the <ID> of the field. The easiest way to get this is to open the flexobject in layout mode and copy it from the properties view. |
converter_infos | Here you can configure converters to convert the values provided by the
An example could be [ { "ConverterName":"Expression", "ConverterParameter":"(x) => new int[] { 73, (int.Parse(x.ToString())) }" } ] Be sure to properly quote the QuotationMarks (“ to \”) |
comment | A comment. This can be filled by you to still understand the mapping in 2 days. |
import_configuration_id | The ImportId of the importer. This one is the link to the |
List Antony Fields
Of course you want to configure the mapping of the fields to the according antony fields. Therefore you need to know the name of the fields antony provides. You can find them here
Contact
TargetType: “antony://contact”
Antony Mapping Field | .net Data-Type | Comments |
---|---|---|
MainContactId | System.Int64 | This is the id of antonys main contact, if the contact wants to be a subcontact. Normally you wont have this present within the foreign system - So you need to map them. Therefore you can use the build in Converter “IdLookup” and provide the [{ "ConverterName": "IdLookup", "ConverterParameter": "integra"}] If the given main contact isn't present within antonys import mapping, the crearted contact will be a normal main contact |
TitleId | System.Int64 | The id of the title of the contact. You can find them in the table |
Company | System.String | |
Firstname | System.String | |
Lastname | System.String | |
Street | System.String | |
Zipcode | System.String | |
City | System.String | |
State | System.Int64 | The id of the state. You can find it them in the table |
CountryId | System.Int64 | The id of the country. You can find them in the table |
Phone | System.String | |
Phone2 | System.String | |
Fax | System.String | |
System.String | ||
Mobile | System.String | |
Homepage | System.String | |
Comment | System.String | |
StreetPrivate | System.String | |
ZipcodePrivate | System.String | |
CityPrivate | System.String | |
StatePrivate | System.Int64 | The id of the state. You can find it them in the table |
CountryIdPrivate | System.Int64 | The id of the country. You can find them in the table |
PhonePrivate | System.String | |
Phone2Private | System.String | |
FaxPrivate | System.String | |
Department | System.String | |
Picture | Byte[] | |
Birthday | System.DateTime | Be sure to place LocalTime here |
ContactGroup | System.Boolean | This is a write only property. If you pass a contact group here the contact will be added to the given contact group. The present contact will not be removed from existing ones |
Customfields of contacts can be added by placing |
Appointment
TargetType: “antony://appointment”
Antony Mapping Field | .net Data-Type | Comments |
---|---|---|
UID | System.Int64 | |
Sequence | System.Int64 | |
AllDay | System.Boolean | |
StartDateTime | System.DateTime | LOCALTIME! |
EndDateTime | System.DateTime | LOCALTIME! |
Subject | System.String | |
Location | System.String | |
Description | System.String | |
Label | System.Int64 | |
Status | System.Int64 | |
IsPrivate | System.Boolean | |
HasReminder | System.Boolean | True, if a reminder is configured |
ReminderTimeBeforeStart | System.Int64 | The number of nanoseconds of the reminder time. This is some kind of technical dept. |
ResourceIds | List`1 | The ids of the resource the appointment should be placed in. You can find them within the antony admin. Example [{"ConverterName":"Expression","ConverterParameter":"(x) => new int[] { 73, (int.Parse(x.ToString())) }"}] |
Creating recurring appointments is not supported. |
Flexobjects
The importer is also able to import flexobjects, which are configured within your environment. As a flexobject only contains CustomFields you need to look them up. They can be added by placing Field_n
within the antony_field. The n
is the id of the customfield itselve. You can either grab is from antonys visual editor or the table instance_customfields
TargetType: “antony://flexobject/<type_id>”
The type_id is the id of the type of the flexobject itselve. You can find it in the table flexobject
Conclusion
The import is a powerful but complex tool to import any data from an external datasource. You can also write a custom importer to grab data from your custom source.
If you have troubles to get your import up an running, please contact us.