Daten importieren und Tickets in Projekt automatisch anlegen
Herausforderung:
Sie erhalten regelmäßig Daten, die in AG-VIP zu importieren sind. Außerdem sollen direkt aus der Importdatei Tickets in einer fest definierten Bearbeitungsstufe erzeugt werden.
Lösung:
Über diesen exemplarischen Hintergrundjob lassen sich Daten zeitgesteuert in eine Adresstabelle in AG-VIP importieren und Tickets in einer fest definierten Bearbeitungsstufe erzeugen.
Vorgehensweise:
- Laden Sie sich die angehängte ZIP Datei herunter und entpacken diese.
- Wählen Sie aus dem AG-VIP START Menü den Arbeitsbereich ADMINISTRATION und gehen dort auf HINTERGRUNDPROZESSE.
- Markieren Sie die Adresstabelle, für die der Importer und Ticket erzeuger ausgeführt werden soll.
- Wählen Sie rechts den Schalter IMPORT und importieren die entpackte Musterdatei.
- Über den ÄNDERN Schalter nehmen Sie die notwendigen Anpassen am Hintergrundprozess vor. Im Makrocode sind in grün die einzelnen Parameter beschrieben.
- Im Tab ZEITPLAN stellen Sie ein, wann dieser Hintergrundjob ausgeführt werden soll.
Die wichtigsten Parameter in diesem Hintergrundjob:
' Der Datenimport läuft übermehrere Dateien in mehreren Zyklen. D.h. die Adressdaten werden durch andere Dateien ergänzt.
' Zu den Adressen kann eingeschränkt ein neues Ticket angelegt werden.
Option Explicit
MacroInclude "Standard1"
' Dateien für den Import
' strFolder gibt den Pfad für den Import an, strMask die Maske für den Import.
' Wird stFolderDone leer gelassen, dann wird die Datei nur in .bak umbenannt mit dem
' aktuellen Datum davor. Ansonsten wird die bearbeitete Datei umbenannt und verschoben.
Dim strFolder, strFolderDone, strMask, strProjekt, strBearbeitungsstufe, strImportFileName, iAnzahlSpalten, bTicketImmerAnlegen, iImportMode
strFolder = "C:\Temp\Musterfirma"
strFolderDone = "C:\Temp\Musterfirma\Done"
' Name der zu importierenden Datei. Die Wildcards * für X-Zeichen und ? für genau 1-Zeichen können verwendet werden.
strImportFileName = "Import_*"
' In den folgenden 2 Variablen wird festgelegt, wo die Tickets angelegt werden sollen.
' Ist es nicht erwünscht ein Ticket anzulegen, so setzen Sie beide Variablen auf leer --> ""
' Projektname in dem die Bearbeitungsstufe angelegt ist
strProjekt = "Katalogversand"
' Bearbeitungsstufennamen in dem das Ticket angelegt werden soll
strBearbeitungsstufe = "1. Telefonakquise"
' Import Modus
' 1 = Nur neue Datensätze
' 2 = Nur Update
' 3 = Neue ergänzen und für bestehende ein Update durchführen
' Der Abgleich erfolgt über die Angabe in der MatchDefinition in Zeile 114
const ImportNew = 1
const ImportUpdate = 2
const ImportAll = 3
iImportMode = ImportNew
' Falls dieser Wert auf true steht, wird grundsätzlich immer ein Ticket zu der Adresse in der oben angegebenen Projekttabelle/Bearbeitungsstufe angelegt.
' Steht dieser Wert auf false, wird nur ein Ticket angelegt, wenn in der Bearbeitungsstufen die in 'strBearbeitungsstufe' angegeben ist,
' nicht bereits ein Ticket zu der Adresse vorhanden ist.
bTicketImmerAnlegen = false
' Um eventuelle Leerspalten in der Importdatei am Ende zu erkennen, muss die Anzahl an Spalten angegeben werden, die in der Immportdatei existieren.
' Diese Anzahl muss NICHT der Anzahl zu importierenden Feldern entsprechen,
' sondern der Anzahl der in der Importdatei vorhandenen Spalten !
' Wenn dies nicht berücksichtigt werden soll, kann eine 0 als Wert gesetzt werden.
' (Änderungen in der Struktur der Datei können dadurch jedoch nicht mehr erfasst werden, wodurch evtl. eine falsche Importdatei verarbeitet wird).
iAnzahlSpalten = 0
' Fail on Error
' Falls dieser Wert auf true steht, wird ein Fehler ausgelöst, sofern ein Feld nicht vorhanden ist,
' oder zum Beispiel ein Kennzeichenwert nicht umgesetzt werden kann.
' Falls dieser Wert auf false steht wird ein Fehler ignoriert und der Import wird fortgesetzt.
const bFailOnError = true
' Protokoll Level
' Wird bLogActionForEachRecord auf true gesetzt wird für jeden Update/Insert in die
' Datenbank auch eine Protokollzeile erzeugt.
const bLogActionForEachRecord = true
' Weitere Anpassungen bezüglich der Feldzuordnung sind in der Klasse "ImportClass" durchzuführen (ab Zeile 108)
....
...
Function Init()
' Festlegung der Feldzuordnungen zwischen AG-VIP SQL und der Importdatei
' 1. Wert entspricht dem internen Feldnamen in AG-VIP SQL.
' 2. Wert entspricht dem Spaltennamen der Importdatei
ImportDef = Array( _
Array("NameSalutation", "anrede"), _
Array("NameFirst", "vorname"), _
Array("Name1", "vorname"), _
Array("NameLast", "nachname"), _
Array("Name2", "nachname"), _
Array("Street", "strasse"), _
Array("ZipCode", "plz"), _
Array("City", "Ort"), _
Array("CommPhone1", "telefon"), _
Array("CommPhone2", "telefon2"), _
Array("CommEmail1", "email2") _
)
Siehe auch: Hintergrundprozess Datenimport
Angehängte Dateien: