Daten importieren und Tickets in Projekt automatisch anlegen

Markus Grutzeck [Grutzeck Software GmbH]
18.02.2019 06:58

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:

  1. Laden Sie sich die angehängte ZIP Datei herunter und entpacken diese.
  2. Wählen Sie aus dem AG-VIP START Menü den Arbeitsbereich ADMINISTRATION und gehen dort auf HINTERGRUNDPROZESSE.
  3. Markieren Sie die Adresstabelle, für die der Importer und Ticket erzeuger ausgeführt werden soll.
  4. Wählen Sie rechts den Schalter IMPORT und importieren die entpackte Musterdatei.
  5. Über den ÄNDERN Schalter nehmen Sie die notwendigen Anpassen am Hintergrundprozess vor. Im Makrocode sind in grün die einzelnen Parameter beschrieben.
  6. 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: importer_ticket_erzeugen.zip

Tags: Hintergrundjob, Import, Tickets, Tickets erzeugen
Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich