Script-API

Aus ArcFlow Wiki
Zur Navigation springen Zur Suche springen
Diese Seite enthält Bearbeitungen, die nicht zum Übersetzen freigegeben sind.
 Script-API Nur für Administratoren
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:

  • Add-on - Kontextmenü

    Das Skript wird ausgeführt, bevor oder wenn eine Benutzeraktion über das Kontextmenü ausgeführt wird.

  • Agent - Vor Import

    Das Skript soll bei der Überwachung eines Import-Verzeichnisses durch den Agenten aufgerufen werden, bevor die Datei importiert wird.

  • Agent - Nach Import

    Das Skript soll bei der Überwachung eines Import-Verzeichnisses durch den Agenten aufgerufen werden, nachdem die Datei importiert wurde.

  • Agent - Nach Texterkennung

    Das Skript soll bei der Überwachung eines Import-Verzeichnisses durch den Agenten aufgerufen werden, nachdem die Datei importiert und der Texterkennung unterzogen wurde.

  • Anzeige - Werkzeugleiste

    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.

  • API

    Das Skript kann über die Anweisung AFRunScript() von der Programmierschnittstelle aufgerufen werden.

  • Drucker - Vor Import

    Das Skript wird vor dem Import durch einen Drucker durchgeführt.

  • Drucker - Nach Texterkennung

    Das Skript wird aufgerufen, nachdem ein Dokument über einen Drucker in ArcFlow importiert und die Texterkennung durchgeführt wurde.

  • E-Mail - Vor Import

    Das Skript wird aufgerufen bevor eine E-Mail durch den Mail-Service importiert wird.

  • E-Mail - Nach Import

    Das Skript wird aufgerufen nachdem eine E-Mail durch den Mail-Service importiert wurde.

  • Jobserver

    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.

  • Programm - Werkzeugleiste

    Das Ereignis wird durch den Benutzer durch Drücken einer Tastenkombination oder der Schaltfläche in der Werkzeugleiste ausgelöst.

  • Remote Control

    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.

  • Stempel - Vor Anzeige

    Das Skript wird vor der Anzeige des Dialogs zur Eingabe der Stempelinformationen durchgeführt.

  • Stempel - Nach Anzeige

    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.

  • Stempel - Nach Speichern

    Das Skript wird ausgeführt, nachdem der Stempel auf einem Dokument aufgebracht wurde.

  • Stempel - Feldkontrolle

    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.

  • Stempel - Tastendruck

    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.

  • Workflow-Detail - Nach Start

    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.

  • Ereignis - Nach Texterkennung

    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.

  • Ereignis - Arbeitsmappe

    Das Skript wird aufgerufen, wenn eine Aktion mit einer Arbeitsmappe durchgeführt werden soll. Die Aktion wird dem Skript übergeben.

  • Ereignis - Archiv

    Das Skript wird aufgerufen, wenn eine Aktion mit einem Archiv durchgeführt werden soll. Die Aktion wird dem Skript übergeben.

  • Ereignis - Anhangdatei

    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.

  • Ereignis - Abonnement Archiv

    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