...
Info |
---|
Es wird empfohlen, den Import zunächst in einer eigenen Testumgebung durchzuführen. |
Importer installieren
Wie im oberen 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
The Die _import_configuration
Table holds some basedata for the import. Tabelle enthält als Basisinformationen des Imports
Database field | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
idEach Import has its own id. This is a GUID, you can simply generate | Jeder Import hat seine eigene ID. Dies ist eine GUID, die Sie einfach generieren können. Zum Beispiel hier https://guidgenerator.com | ||||||||||
is_active | With this flag you can activate Mit diesem Flag können Sie den Import aktivieren (1) and deactivate und deaktivieren (0) the import | ||||||||||
debug | The
| ||||||||||
frequencyThe frequency the import will be triggered | Die Häufigkeit, mit der der Import ausgelöst wird. Format: <d>.<HH>:<MM>:<ss>. You cannot define a range unter a minute, as the importer only checks one per minuteSie können keinen Bereich unter einer Minute festlegen, da der Importeur nur einen pro Minute überprüft. | ||||||||||
import_name | The name of the import. Free for use | comment | A comment for this import. Free for useDer Name des Imports. Dieser kann frei vergeben werden. | ||||||||
comment | Ein Kommentar zu diesem Import. Frei zur Verwendung, | ||||||||||
connection_information | Some ConnectionInformations the | ||||||||||
import_group | Someday you want to configure multiple imports from the same origin. These imports might contain a link to each other like as This feature was orignally designed for customer link fields within an flexobject | ||||||||||
mapping_name | This setting is only relevant in combination of an You need to make sure, that the mapping_name is unique over all of your configured imports. Otherwise the importer cannot relate the foreign_id of the importee to antony’s ids. | ||||||||||
importer_exe | The Full Path to the | ||||||||||
import_exe_args | This arguments are passed to the | ||||||||||
target_type | The type the importer should import to. This can be
| ||||||||||
import_parameter | These are some parameter the | ||||||||||
merge_fields | Sometimes you don't want to import a whole object, but only import some data from a system to an existing one. Imagine you import some orders from a shop into a flexobject. Aou have also an ERP which holds the status of this order by a the ordernumer of the order. With the Therefore the importer will check, if there is already a flexobject with the value the If you have multiple Flexobjects which are matching the condition, then ALL flexobjects will be updated. You can provide multiple fields which ALL needs to match. The field within the database is comma-separated You have multiple Flexobjects which are matching the condition, then ALL flexobjects will be updated | ||||||||||
batch_size | This sets the size of the batch the importer imports without a delay. The defaultvalue is 1. This option and the | ||||||||||
delay_between_batch | This sets the delay the importer adds on every batch, defined by | ||||||||||
suppress_create | This flag is usefull if you want to make sure, that no item will be created by the import. Use this if you only want to import some additional data from a source to an already existing dataset within antony. F.e. a generated link of your Shop or ERP |
import_configuration_mapping fields
...
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 |
Eine inkrementelle id |
foreign_source_field |
Dies ist der Feldname, den die |
AntonyImportModule
. This might be the name of a column for ODBC Importer or from a json or so on. This one is specific to the importer.exe
dem 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 |
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 importer.exe
. Each Converter needs two parameter
ConverterName: This is the name of the converter. You might provide some converter within your code or use std. one. There are two defined
Expression: Takes a C# Linq Expression to freely convert the value
IdLookup: This Converter can be used to lookup an id from the import_state. Is is usefull in combination with
import_group
ConverterParameter: The parameter the converter takes. The value depends on the converter used
Expression: The Expression to use. f.
(x)=> x.ToString().ToUpper()
Lookup: The
mapping_name
you want to lookup
geschrieben werden soll. Achten Sie darauf, dass dieses Feld nur einmal für eine Importkonfiguration zugeordnet wird. Für | |||||||||||
converter_infos | Hier können Sie Konverter konfigurieren, um die vom
|
|
|
|
|
Be sure to properly quote the QuotationMarks (“ to \”)
comment
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 |
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 hereNatü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.Int64This 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 | 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
If the given main contact isn't present within antonys import mapping, the crearted contact will be a normal main contactWenn 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 | |||||
TitleId | System.Int64 | The id of the title of the contact. You can find them in the table Die ID des Titels des Kontakts. Sie können sie in der Tabelle | |||||
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 Die ID des Bundeslandes. Sie finden sie in der Tabelle | |||||
CountryId | System.Int64 | The id of the country. You can find them in the table Die ID des Landes. Sie können sie in der Tabelle | |||||
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 Die private ID des Bundeslands. Sie finden sie in der Tabelle | |||||
CountryIdPrivate | System.Int64 | The id of the country. You can find them in the table Die private ID des Landes. Sie können sie in der Tabelle | |||||
PhonePrivate | System.String | ||||||
Phone2Private | System.String | ||||||
FaxPrivate | System.String | ||||||
Department | System.String | ||||||
Picture | Byte[] | ||||||
Birthday | System.DateTime | Be sure to place LocalTime hereStellen Sie sicher, dass Sie hier LocalTime verwenden | |||||
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 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 |
Appointment
TargetType: “antony://appointment”
Antony Mapping Field | .net Data-Type | Comments | |||||
---|---|---|---|---|---|---|---|
UID | System.Int64 | Sequence | System.Int64 | ||||
AllDay | System.Boolean | ||||||
StartDateTime | System.DateTime | LOCALTIMEDie Angaben sind hier in LocalTime! | |||||
EndDateTime | System.DateTime | LOCALTIMEDie 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, if a reminder is configuredwenn eine Erinnerung konfiguriert ist | |||||
ReminderTimeBeforeStart | System.Int64 The number of nanoseconds of the reminder time. This is some kind of technical dept | Die Anzahl der Nanosekunden der Erinnerungszeit. Die Angabe in Nanosekunden ist historisch bedingt. | |||||
ResourceIds | List`1 | The ids of the resource the appointment should be placed in. You can find them within the antony admin. Example Beispiel für
| |||||
Creating recurring appointments is not supportedDas Erstellen von wiederkehrenden Terminen wird nicht unterstützt. |
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
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>”
The Die 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 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.