Script-API: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „<languages /> <translate> <!-- <title>Script-API</title> --> <table class=BigTable bgcolor="#242A34"> <tr> <td class="BigTitle" colspan="2" align="ce…“ |
Jens (Diskussion | Beiträge) Neue Funktionen in der Werkzeugleiste hinzugefügt |
||
Zeile 89: | Zeile 89: | ||
<li><b>[[file:DE_BtnCompile.gif]] Skript speichern und übersetzen</b> | <li><b>[[file:DE_BtnCompile.gif]] Skript speichern und übersetzen</b> | ||
<p>Das Skript wird gespeichert und übersetzt. Hat das Skript noch keinen Namen, muss dieser in einem Dialog angegeben werden. Das Ergebnis der Übersetzung wird in der Statuszeile angezeigt. Fehler bei der Übersetzung werden in einem Fenster angezeigt. </p> | <p>Das Skript wird gespeichert und übersetzt. Hat das Skript noch keinen Namen, muss dieser in einem Dialog angegeben werden. Das Ergebnis der Übersetzung wird in der Statuszeile angezeigt. Fehler bei der Übersetzung werden in einem Fenster angezeigt. </p> | ||
</li> | |||
<li><b>[[file:DE_BtnRun.gif]] Skript starten</b><p>Das aktuell ausgewählte Skript wird durchgeführt. Auf diese Weise kann ein Skript einfach getestet werden. Es gilt zu beachten, dass kein Kontext vorhanden ist, also keine globalen Variablen gefüllt sind, wie es zum Beispiel bei der Ausführung aus dem Kontextmenü heraus der Fall ist.</p> | |||
</li> | |||
<li><b>[[file:DE_BtnOdbc.gif]] Testen von ODBC-Verbindungen</b><p>Diese Schaltfläche öffnet ein weiteres Fenster im Editorbereich. Hier können beim ODBC-Datenquellen-Administrator eingetragene Datenquellen ausgewählt, wenn notwendig ein Benutzer und Kennwort eingetragen und eine Verbindung hergestellt werden. Anschließend wird die Datenstruktur angezeigt. Auf der rechten Seite kann eine ODBC-Anweisung eingegeben werden. Nach der Ausführung können die gefundenen Datensätze in der darunterliegenden Liste begutachtet werden.</p> | |||
</li> | </li> | ||
Aktuelle Version vom 18. Oktober 2023, 11:21 Uhr
![]() |
|
Script-API | ![]() |
Programmierung von Skripten |
Mit der Script-API kann ein ArcFlow-Benutzer mit Administrationsrechten eine Prozedur schreiben, die an unterschiedlichen Stellen in ArcFlow hinterlegt werden kann. Innerhalb des Skripts hat der Programmierer Zugriff auf die meisten API-Funktionen und viele CONZEPT 16-Prozedurbefehle. Die API-Funktionen, die aufgerufen werden können, sind mit dem Symbol , alle anderen mit dem Symbol
markiert. Eine Liste der nicht verwendbaren CONZEPT 16-Prozedurbefehle befindet sich am Ende dieses Abschnitts.
Mit Hilfe der Skripten können individuelle Verarbeitung an verschiedenen Punkten der Standardverarbeitung von ArcFlow durchgeführt werden. So können zum Beispiel nach einem Import eines Archivs detailierte Überprüfungen durchgeführt werden, um das Archiv einer oder mehreren Arbeitsmappen zuzuordnen.
Der Editor zum Schreiben von Skripten wird über den Menüpunkt Datei / Script-API starten aufgerufen. Der Aufruf startet einen weiteren ArcFlow-Client, an dem eine Anmeldung des Benutzers erfolgen muss.
Alle Funktionen des Editors werden über die Werkzeugleiste aufgerufen. Folgende Funktionen stehen zur Verfügung:
Neues Skript anlegen
Der Benutzer muss in einer Auswahlliste das Ereignis auswählen, wo das Skript aufgerufen wird. Anschließend wird eine Vorlage des Skripts erzeugt.
vorhandenes Skript öffnen
In einem Auswahldialog kann der Benutzer ein bereits geschriebenes Skript auswählen, dass dann geöffnet wird. In der ersten Spalte der Auswahlliste wird angezeigt, ob das Skript bereits geöffnet ist. Ein geöffnetes Skript kann nicht noch einmal geöffnet werden.
Über weitere Schaltflächen kann ein ausgewähltes Skript gelöscht oder exportiert werden. Ebenso kann ein extern vorliegendes Skript importiert oder alle vorhandenen Skripte exportiert werden. In einem anschließenden Auswahldialog kann die Datei bzw. das Verzeichnis angegeben werden.
ausgewähltes Skript schließen
Das angezeigte Skript wird geschlossen. Ist das Skript noch nicht gespeichert, erfolgt eine entsprechende Abfrage.
ausgewähltes Skript speichern
Das angeeigte Skript wird gespeichert. Ist noch kein Name für das Skript vorhanden, muss ein Name angegeben werden. Der Name des Skripts muss eindeutig sein.
ausgewähltes Skript unter anderem Namen Speichern
Das Skript wird unter einem anderen Namen gespeichert. Der Name wird in einem Dialog angegeben. Der Name des Skripts muss eindeutig sein.
letzten Vorgang rückgängig machen
Mit dieser Schaltfläche wird die letzte Aktion rückgängig gemacht.
letztes Rückgängig wieder herstellen
Wurde versehentlich eine Aktion rückgängig gemacht, die dennoch durchgeführt werden sollte, kann diese mit dieser Schlatfläche wieder hergestellt werden.
markierten Bereich löschen
Der markierte Bereich wird aus dem Skript entfernt.
markierten Bereich ausschneiden und
markierten Bereich kopieren
Der markierte Bereich wird in die Windows-Zwischenablage verschoben bzw. kopiert.
Text an Cursorposition einfügen
Der Inhalt der Windows-Zwischenablage wird an der Cursorposition eingefügt. In ein Skript können nur Textinformationen eingefügt werden.
aktuelles Datum an Cursorposition einfügen
Das aktuelle Systemdatum wird an der Cursorposition eingefügt.
Skript durchsuchen
Über der Statuszeile des Editors wird ein Eingabe-Objekt angezeigt, in dem ein Suchbegriff eingegeben werden kann. Über die Schaltflächen
und
kann bestimmt werden, ob die vorhergehende oder die nächste Position des Suchbegriffs ausgehend vom Cursor angesprungen werden soll. Wird die Option "Ganze Wörter" angegeben, wird nicht nach Wortbestandteilen gesucht. Die Zeile kann über die Schaltfläche
wieder entfernt werden.
zu bestimmter Zeile im Skript springen
Über der Statuszeile des Editors wird ein Eingabe-Objekt angezeigt, in dem eine Zeilennummer angegeben werden kann. Durch Drücken der Schaltfläche
springt der Cursor in diese Zeile. Das Eingabefeld kann über die Schaltfläche
wieder entfernt werden.
Skript durchsuchen und Text ersetzen
Über der Statuszeile des Editors wird die Suchen-Funktion eingeblendet. Darüber hinaus kann ein Text angegeben werden, durch den der gesuchte Text ersetzt wird. Die Ersetzung erfolgt entweder für die markierte Fundstelle (
) oder für alle Fundstellen (
). Die Zeile kann über die linke Schaltfläche
wieder entfernt werden. Die rechte Schaltfläche entfernt nur die Eingaben für das Ersetzen.
zum vorigen Skript wechseln und
zum nächsten Skript wechseln
Mit diesen Schaltflächen können die geöffneten Skripte durchgeblättert werden.
zum zuvor angesehenen Skript wechseln
Mit dieser Schaltfläche wird zu dem zuvorangesehenen Skript zurück gesprungen.
Skript speichern und übersetzen
Das Skript wird gespeichert und übersetzt. Hat das Skript noch keinen Namen, muss dieser in einem Dialog angegeben werden. Das Ergebnis der Übersetzung wird in der Statuszeile angezeigt. Fehler bei der Übersetzung werden in einem Fenster angezeigt.
Skript starten
Das aktuell ausgewählte Skript wird durchgeführt. Auf diese Weise kann ein Skript einfach getestet werden. Es gilt zu beachten, dass kein Kontext vorhanden ist, also keine globalen Variablen gefüllt sind, wie es zum Beispiel bei der Ausführung aus dem Kontextmenü heraus der Fall ist.
Testen von ODBC-Verbindungen
Diese Schaltfläche öffnet ein weiteres Fenster im Editorbereich. Hier können beim ODBC-Datenquellen-Administrator eingetragene Datenquellen ausgewählt, wenn notwendig ein Benutzer und Kennwort eingetragen und eine Verbindung hergestellt werden. Anschließend wird die Datenstruktur angezeigt. Auf der rechten Seite kann eine ODBC-Anweisung eingegeben werden. Nach der Ausführung können die gefundenen Datensätze in der darunterliegenden Liste begutachtet werden.
Hilfe zur Script-API aufrufen
Die ArcFlow-Hilfe wird aufgerufen und die Seite der Skript-API angezeigt.
Prozedurinformationen anzeigen
In einem Fenster werden Informationen zum aktuellen Skript angezeigt.
Vorgehen beim Schreiben eines Skripts
Um ein eigenes Skript zu schreiben, muss zunächst über die Schaltfläche ein neues Skript angelegt werden. In der Auswahl muss einer der Skripttypen ausgewählt werden. Folgende Typen stehen zur Verfügung:
-
Das Skript wird ausgeführt, bevor oder wenn eine Benutzeraktion über das Kontextmenü ausgeführt wird.
-
Das Skript soll bei der Überwachung eines Import-Verzeichnisses durch den Agenten aufgerufen werden, bevor die Datei importiert wird.
-
Das Skript soll bei der Überwachung eines Import-Verzeichnisses durch den Agenten aufgerufen werden, nachdem die Datei importiert wurde.
-
Das Skript soll bei der Überwachung eines Import-Verzeichnisses durch den Agenten aufgerufen werden, nachdem die Datei importiert und der Texterkennung unterzogen wurde.
-
Das Skript wird durch eine Tastenkombination oder durch Drücken einer Schaltfläche in der Werkzeugleiste ausgelöst. Innerhalb des Skripts kann die Anzeige eines anderen Archivs ausgelöst werden.
-
Arbeitsmappen - Dynamische Mappenunterteilung
Das Skript wird ausgeführt, wenn die betreffende Arbeitsmappe ausgewählt wird. Es kann eine temporäre Mappenstruktur erzeugen und die der Arbeitsmappe zugeordneten Archive in dieser Mappenstruktur anzeigen.
-
Das Skript kann über die Anweisung AFRunScript() von der Programmierschnittstelle aufgerufen werden.
-
Das Skript wird vor dem Import durch einen Drucker durchgeführt.
-
Das Skript wird aufgerufen, nachdem ein Dokument über einen Drucker in ArcFlow importiert und die Texterkennung durchgeführt wurde.
-
Das Skript wird aufgerufen bevor eine E-Mail durch den Mail-Service importiert wird.
-
Das Skript wird aufgerufen nachdem eine E-Mail durch den Mail-Service importiert wurde.
-
Das Skript wird durch einen Job duch den Jobserver durchgeführt.
-
Mappenfeldgruppe - Vor Anzeige
Das Skript wird ausgeführt, bevor eine Mappenfeldgruppe einer Arbeitsmappe angezeigt wird.
-
Popup-Liste füllen (Arbeitsmappenfeld)
In diesem Ereignis wird der Inhalt einer Popup-Liste gefüllt. Der Inhalt dient zur Auswahl eines Werten für ein Mappenfeld.
-
Popup-Liste füllen (allgemein)
Das Skript wird aufgerufen, wenn eine allgemeine Popup-Liste (zum Beispiel in einem Stempel) mit Werten gefüllt werden muss.
-
Das Ereignis wird durch den Benutzer durch Drücken einer Tastenkombination oder der Schaltfläche in der Werkzeugleiste ausgelöst.
-
Das Skript kann mit Hilfe der Application Remote Control aufgerufen werden.
-
Schnittstelle zur Arbeitsmappenzuweisung
Das Skript soll innerhalb einer Schnittstellen-Verarbeitung aufgerufen werden.
-
Stapelscan - Nach Texterkennung
Das Skript wird ausgeführt, nachdem die Texterkennung von einem Stapelscan durchgeführt wurde. Das Skript wird für jede Anhangdatei aufgerufen.
-
Das Skript wird vor der Anzeige des Dialogs zur Eingabe der Stempelinformationen durchgeführt.
-
Das Skript wird nach dem Beenden des Dialogs zur Eingabe der Stempelinformationen durchgeführt. Der Stempel ist zu diesem Zeitpunkt noch nicht beim Dokument gespeichert.
-
Das Skript wird ausgeführt, nachdem der Stempel auf einem Dokument aufgebracht wurde.
-
Die Informationen in einem Stempel werden über einen Dialog eingegeben. Das Skript wird ausgeführt, wenn der Eingabefokus in das nächste Eingabe-Objekt in diesem Dialog wechselt.
-
Das Skript wird aufgerufen, wenn während der Anzeige eines Stempel-Dialogs eine Funktionstaste gedrückt wird.
-
Transferverzeichnis - Vor Import
Das Skript wird durchgeführt, wenn in einem überwachten Verzeichnis eine Datei für den Import vorhanden ist.
-
Transferverzeichnis - Nach Import
Das Skript wird durchgeführt, wenn die Datei aus dem überwachten Verzeichnis importiert wurde.
-
Transferverzeichnis - Nach Texterkennung
Das Skript wird durchgeführt, nachdem ein Dokument über ein Transferverzeichnis in ArcFlow importiert und die Texterkennung durchgeführt wurde.
-
Das Skript wird ausgeführt nach dem das entsprechende Workflow-Detail gestartet wurde.
-
Workflow-Detail - Nach Fertigstellung
Das Skript wird nach der Fertigstellung eines Workflow-Details aufgerufen.
-
Das Skript wird nach einer Texterkennung aufgerufen. Dieser Aufruf ist unabhängig vom Importweg und wird auch dann ausgelöst, wenn das Dokument nach dem Import verändert wird.
-
Das Skript wird aufgerufen, wenn eine Aktion mit einer Arbeitsmappe durchgeführt werden soll. Die Aktion wird dem Skript übergeben.
-
Das Skript wird aufgerufen, wenn eine Aktion mit einem Archiv durchgeführt werden soll. Die Aktion wird dem Skript übergeben.
-
Das Skript wird aufgerufen, wenn eine Aktion mit einer Anhangdatei durchgeführt werden soll. Die Aktion wird dem Skript übergeben.
-
Ereignis - Abonnement Arbeitsmappe
Das Skript wird aufgerufen, wenn eine Abonnementbenachrichtigung von einer Arbeitsmappe gesendet oder angezeigt werden soll. Die Aktion wird dem Skript übergeben.
-
Das Skript wird aufgerufen, wenn eine Abonnementbenachrichtigung von einem Archiv gesendet oder angezeigt werden soll. Die Aktion wird dem Skript übergeben.
-
Ereignis - Abonnement Anhangdatei
Das Skript wird aufgerufen, wenn eine Abonnementbenachrichtigung von einer Anhangdatei gesendet oder angezeigt werden soll. Die Aktion wird dem Skript übergeben.
Je nach Verwendungszweck wird ein anderes Skript-Gerüst erzeugt, das über alle notwendigen Kopfeinträge verfügt. Das entsprechende Skript muss, nachdem es gespeichert und übersetzt wurde, an der betreffenden Stelle eingetragen werden. Zur Überprüfung, ob und wann das Skript aufgerufen wird, kann die Anweisung (siehe CONZEPT 16 Hilfe) verwendet werden. Das Skript wird an dieser Stelle angehalten und ein Fenster wird angezeigt. Das Skript wird nach dem Schließen des Fensters fortgeführt.
Das automatisch erzeugte Skript darf in seinem Funktionskopf nicht verändert werden. Die Markierung im Text wird durch das Skript des Programmierers ersetzt. Es muss ein logischer Wert zurückgegeben werden. Weitere Übergabewerte und Rückgabewerte werden in Variablen übergeben. Die verwendeten Variablen werden bei den entsprechenden Skripten erläutert.
Die verwendete Sprache entspricht der CONZEPT 16-Programmiersprache. Die Online-Dokumentation von CONZEPT 16, (siehe CONZEPT 16 Hilfe) , enthält eine Liste der Befehle und Anwendungsbeispiele. Innerhalb der Skripten können nicht alle CONZEPT 16-Befehle verwendet werden. Eine Liste der nicht zugelassenen Befehle befindet sich am Ende dieses Abschnitts.
Nachdem das Skript geschrieben ist, muss es gespeichert und übersetzt werden. Skripte, die gespeichert aber nicht übersetzt sind, führen bei ihrem Aufruf zu einem Fehler. Konnte ein Skript nicht übersetzt werden, wird die vorherige Übersetzung aufgerufen.
Systemvariablen
In jedem Skript stehen verschiedene Variablen zur Verfügung. Die Variablen sind bei den entsprechenden Ereignissen aufgeführt. Unabhängig vom Ereignis stehen die Variablen gAfActParentDlg vom Typ handle, gAfUserName vom Typ alpha und gAfScriptRunFrom zur Verfügung. Die Variablen enthalten den Deskriptor des aktuellen ArcFlow-Fensters, das Kürzel des angemeldeten Benutzers und das aufrufende Ereignis.
Der Deskriptor wird benötigt, wenn eigene Fenster modal zum ArcFlow-Fenster angezeigt werden sollen.
WinDialogBox(gAfActParentDlg,...);
Der Benutzer kann verwendet werden, um zum Beispiel Addons nur bestimmten Benutzern zugänglich zu machen.
return(StrCnv(gAfUserName,_StrUpper) = 'ADMIN');
Der Inhalt der Variablen mit dem aufrufenden Ereignis kann mit entsprechenden Konstanten sAfScriptRunFrom... verglichen werden.
switch (gAfScriptRunFrom) { case sAfScriptRunFromAddonAbm : ... case sAfScriptRunFromAddonArc : ... ... }
Funktionen
Ein Skript kann in mehrere Funktionen aufgeteilt werden. Die Funktionen können innerhalb des Skripts aufgerufen werden. Das Aufrufen von Funktionen aus anderen Skripten ist nicht möglich. Werden Definitionen (Konstanten) oder Funktionen in mehreren Skripten benötigt, können diese in dem Skript "AFStandardInclude" definiert werden. Das Skript wird in alle anderen Skripte inkludiert.
Unzulässige Befehle
Folgende CONZEPT 16-Befehle können nicht in Skripten verwendet werden:
Bin*() | Befehle für binäre Objekte |
Call() | |
CallOld() | |
CteOpen() | Statt dessen kann der Befehl AFCteOpen() verwendet werden. |
DbaControl() | Datenbankbefehle |
DbaInfo() | |
DbaKeyRebuild() | |
DbaLicense() | |
DbaLog() | |
Dbg*() | Debugger-Befehle |
Dde*() | DDE-Befehle |
Dta*() | Transaktionsbefehle |
ErrCall() | |
File*() | Dateibefehle |
Fld*() | Feldbefehle, statt dessen können die Befehle AFFld...() und AFFldDef...() verwendet werden. |
Key*() | Schlüsselbefehle |
Link*() | Verknüpfungsbefehle |
OEM*() | OEM-Kit-Befehle |
Ppc*() | Befehle für das PpcObject |
ProcAdvertise() | |
Rec*() | Datensatzbefehle |
Sbr*() | Teildatensatzbefehle |
Sel*() | Selektionsbefehle |
SysGetArg() | |
SysGetEnv() | |
SysTime() | |
Tapi*() | TAPI-Befehle |
TextCopy() | |
TextCreate() | |
TextDelete() | |
TextInfoAlpha() | |
TextInfoDate() | |
TextInfoTime() | |
TextOpen() | Statt dessen kann der Befehl AFTextOpen() verwendet werden. |
TextRead() | Statt dessen kann der Befehl AFTextRead() verwendet werden. |
TextWrite() | Statt dessen kann der Befehl AFTextWrite() verwendet werden. |
Urm*() | Benutzerbefehle |
User*() | |
WinAdd() | |
WinAddByName() | |
WinDialog() | |
<nobr>WinDialogResult()</nobr> | |
WinEvt*() | Ereignisbefehle |
WinFocus*() | Fokusbefehle |
WinGantt*() | GanttGraph-Befehle |
WinHalt() | |
WinInfo() | |
WinLst*() | DataList-Befehle |
WinMenu*() | Menü-Befehle |
WinMsd*() | Befehle der Mehrfachselektion |
WinOpen() | Statt dessen kann die Anweisung AfWinOpen() verwendet werden. |
WinRtf*() | RtfEdit-Befehle |
WinSearch*() | Befehle zur Suche von Oberflächen-Objekten |
WinTree*() | TreeView-Befehle |
WinUpdate() | |
WinUserEvent() | |
With() | |
Wse*() | Web-Schnittstellen-Befehle |