In den Fällen in denen die Komplexität den jetzigen Rahmen sprengt, lässt sich nun noch die Verarbeitung oder auch Vervollständigung mit Hilfe eines VBA-Skriptes nachbessern bzw. überhaupt durchführen.
Das System führt dabei auf Wunsch zu den 3 Zeitpunkten, nämlich bevor der Import startet, während jedes Datei-Importes und nachdem der Import durchgeführt worden ist, 3 angebbare VBA-Skripte durch. Damit man die Möglichkeit hat, einen Import-Vorgang in einem großen Skript zu verarbeiten, ist die Möglichkeit Parameter zu übergeben, integriert worden.
Im obigen Beispiel wird das vba-Script fa_import jeweils mit entsprechenden Parametern aufgerufen. Wie üblich und vereinbarungsgemäß sollten dabei „private“ Parameter mit „p_“ anfangen. Das garantiert keine Überschneidung mit vom System verwendeten Namen.
Fa_import_Test hat folgenden Inhalt:
option explicit
' Binärer Import ins Formulararchiv
dim owner
dim p_status
dim fam_ref_vorg
dim p_referenz
dim belegnummer
dim klassnummer
dim referenz
owner = Aeins.ScriptParam( "owner" )
p_status = Aeins.ScriptParam( "p_status" )
if p_status = 2 then
' das A.eins-System stellt die Aufbereitung der Referenznummer per Datenbank-Funktion zur Verfügung
' Der A.eins-Anwender hat im Archiv-Mananger die Möglichkeit eine eigene Datenbank-Funktion einzurichten,
' deshalb muss hier nun diese Datenbank-Funktion zunächst ermittelt werden
p_referenz = Aeins.ScriptParam( "p_ref" )
Aeins.jpp_new "x1" , "JFA_Manager"
Aeins.jpp_in "x1", "Merkmal" , p_referenz
fam_ref_vorg = Aeins.jpp_do( "x1" , "GetMerkmal" )
Aeins.jpp_delete "x1"
' Aufbereitet wird nun die Belegreferenz mittels dieser Datenbank-Funktion. Die Funktion erwartet als
' Parameter die Belegnummer und die Klassennummer
' Die Belegnummer steht in der JVARS-Variable "2", die Klassennummer in der JVARS-Variable "1" bereit
belegnummer = Aeins.JVARS_GET(owner , "2")
klassnummer = Aeins.JVARS_GET(owner , "1")
Aeins.jpp_new "x2", "JDBX"
Aeins.jpp_in "x2", "sql" , "select " & fam
_ref_vorg & "(" & klassnummer & "," & belegnummer & ") as Referenz"
Aeins.jpp_do "x2" , "exec"
Aeins.jpp_in "x2", "col", "Referenz"
Aeins.jpp_in "x2", "fld", "LDB_TRANSFER$VC"
referenz = CStr(Aeins.jpp_do( "x2", "get" ))
Aeins.jpp_delete "x2"
' 3 : Belegreferenz
Aeins.JVARS_SET owner, "3" , referenz
end if
if p_status = 1 then
' Aeins.QuitApp( 0 )
end if
if p_status = 3 then
end if
Das Script demonstriert
•die Verwendung der Ereignisse.
•Wie man die Aufbereitung der Referenz-Nummer einfach nutzen kann
Bemerkenswert ist das Kommando Aeins.QuitApp( zahl ), wobei eine Zahl ungleich 0 dem Import-Skript signalisiert das der Import zu beenden ist bzw. nicht durchgeführt werden soll.
Die Übergabe der Kerndaten erfolgt durch JVARS. Die Kerndaten werden zunächst durch die Kriterien der Verschlagwortung versucht zu ermitteln. Das ergibt ein gewisses Resultat. Dieses wird an das VBA-Script übergeben, kann von diesem wie gewünscht aufbereitet werden und wird dann retour an den Import zur weiteren Verarbeitung bzw. Behandlung zurückgegeben.
Damit steht also eine frei programmierbare Erweiterung des Imports zur Verfügung!