Office Manager Entwickler-Support

Arbeitsabläufe mit eigenen Befehlen automatisieren

Hier wird beschrieben, wie Sie den einzelnen Dokumenttypen (Adobe Acrobat, MS Word u.a.) neue Funktionen hinzufügen können. Diese benutzerdefinierten Befehle sind nur sichtbar bzw. verfügbar, wenn ein dem Typ entsprechendes Dokument in der Archivtabelle markiert ist. Alternativ können auch allgemeingültige Befehle hinzugefügt werden.

Um einem Dokumenttypen einen neuen Befehl hinzuzufügen

  • wählen Sie bitte im Menü Ansicht | Optionen | Dokumenttyp.
  • Markieren Sie links den gewünschten Dokumenttyp und wechseln Sie auf die Seite Befehle.
  • Klicken Sie oberhalb der Liste auf den Schalter Neu.
  • Markieren Sie bitte Benutzerdefinierte Steuerung und klicken Sie auf Erweitert.
  • Wählen Sie die Option Makro-Steuerung und die gewünschte Skriptsprache. Für die folgenden Beispiele bitte "OmAPI".

1. Daten aus einer Excel-Tabelle lesen

Sie verwalten Excel-Dateien mit Auftragsdaten im Office Manager. Der Kundename und die Rechnungsnummer sollen aus dem Excel-Dokument gelesen und in die Archivattribute übernommen werden. Die Daten stehen in der Tabelle Auftragsdaten xls in den Zellen B:10 und B:14. Der Befehlsname ist beispielsweise "ExcelReadCell" und die Bezeichnung "Auftragsdaten holen...". Makro excelreadcell.omac:

# (Quelltextkommentare werden wie hier mit dem Doppelkreuz eingeleitet)
# Funktion in archivierten Dokus verbieten
{RaiseError:Funktion in archivierten Dokumenten nicht erlaubt,{Self:DocTable}=DOCARCH}

# Zellen auslesen und in die internen Variablen pvKunde und pvRNr schreiben
{ExcelGetCell:{CurrDocFileName},Auftragsdaten,2,10,pvKunde,Auftragsdaten,2,14,pvRNr}

# mit den gelesenen Daten arbeiten, z.B. den Text "Kunde " vor den Kundennamen schreiben
{SetPrivVar:pvKunde=Kunde {GetPrivVar:pvKunde}}

# Sicherheitsrückfrage, bei Abbrechen wird das Makro beendet
{MessageDlg:Daten übernehmen?{Chr:13}{GetPrivVar:pvKunde}{Chr:13}{GetPrivVar:pvRNr}}

# Daten in OM-Archiv übernehmen
{DBSetField:Document,NAME={GetPrivVar:pvKunde},DOCNO={GetPrivVar:pvRNr}}

Wenn ein Excel-Dokument in der Tabelle markiert ist, dann kann der Anwender den Befehl Auftragsdaten holen im Menü Dokument wählen. Die Attribute werden nach einer Sicherheitsrückfrage aktualisiert. Alternativ kann dies auch automatisch beim Import ausgeführt werden, siehe Definition von Import-Verzeichnissen. Das Makro wird dazu in einer *.omac-Datei gespeichert und mit dem Befehl {ExecuteMacroFile:datei.omac} bei Nach Speichern ausgeführt.

2. OCR-Texterkennung manuell ausführen

Die Texterkennung wird i.d.R. direkt nach dem Scannen ausgeführt, dafür sind keine Makros erforderlich. Sie können dem Dokumentenmenü aber auch einen Befehl für den manuellen Aufruf der OCR-Texterkennung hinzufügen:

{MessageDlg:OCR-Texterkennung ausführen?}
{AddSysTask:1100,{Doc:DocID},5}

Nach Wahl des Befehles und Bestätigung mit OK wird die eingestellte OCR im Hintergrund ausgeführt. Dieses Makro können Sie auch mit Hilfe einer Toolup-Datei installieren.

3. Acrobat-OCR verwenden, Beispiel für Tastaturmakro

Die Vollversion von Adobe Acrobat (nicht Reader) beinhaltet eine leistungsfähige OCR-Texterkennung. Leider kann diese nicht automatisiert (von anderer Software aufgerufen) werden. Das Makro acrobat-ocr-tastatur.omac simuliert die Benutzereingaben, um die entsprechenden Menüfunktionen aufzurufen. Dieses Vorgehen ist für den produktiven Einsatz nur bedingt zu empfehlen, es ist aber ein gutes Beispiel für ein Tastaturmakro. Beachten Sie bitte auch, dass Sie das Makro eventuell für unterschiedliche Acrobat-Versionen anpassen müssen, weil die Kurztasten für Menübefehle abweichen können.

4. Kommentar in PDF-Dokument einfügen

Nur für Enterprise-Version. Eingescannte Belege sollen einen Kommentar "Posteingang" mit dem aktuellen Datum erhalten. Der Befehlsname ist z.B. "AddComment" und die Bezeichnung "Eingangsstempel..." Makro pdf-eingangsstempel.omac:

{MessageDlg:Eingangsstempel hinzufügen?}
{PdfAddComment:{Doc:FileName},1,1,10,10,20,50,20,50,clRed,0,1,Posteingang,Eingegangen{Chr:13}{Date:Now,dd.mm.yyy}}

Wenn ein Acrobat-Dokument in der Tabelle markiert ist, dann kann der Anwender den Befehl Eingangsstempel im Menü Dokument wählen. Der Kommentar wird nach einer Sicherheitsrückfrage erstellt. Alternativ kann dies auch automatisch nach dem Scan ausgeführt werden. Fügen Sie dazu die zweite Zeile des Makros im gewünschten Scanprofil auf Seite Makros bei Nach Speichern ein.

5. Acrobat-Dokumente zusammenfassen, Sonderfall!

Die in der Tabelle markierten PDF-Dokumente sollen in eine neue PDF-Datei zusammengefasst werden. Der Anwender klickt den Befehl Bearbeiten | PDF zusammenfassen an und wählt den Zieldateinamen im Dialogfenster aus.

Makro:

{MergeDocuments:{ExecSaveDlg:Acrobat (*.pdf)|*.pdf},0,Selected}

Wenn Sie die Enterprise-Version verwenden und eine Acrobat-Vollversion installiert ist, dann können die Dateien alternativ auch mit Acrobat-Funktionen zusammengestellt werden:

{AcroExchMergeDocuments:{ExecSaveDlg:Acrobat (*.pdf)|*.pdf},0,Selected}

Sonderfall

Dieser Befehl ist nur für Acrobat Acrobat-Dokumente gültig und würde normalerweise für den entsprechenden Dokumenttyp definiert. Hier ist aber zu beachten, dass der Befehl nur einmal für alle markierten Dokumente ausgeführt werden darf, er fasst ja alle markierten in ein neues Dokument zusammen. Es ist daher erforderlich, den Befehl in der unsermenu.ini einzutragen.
Sie können folgendes Toolup für die automatische Installation verwenden: pdf-kombinieren.omini

Siehe auch ausführliche Beschreibung im Web-Log.

 

6. DDE-Steuerung am Beispiel von MegaCAD

Der Office Manager enthält erweiterte Funktionen für die CAD-Zeichnungsverwaltung mit AutoCAD, Inventor und MegaCAD. Die Zeichnungen anderer CAD-Systeme können verwaltet und archiviert werden. Erweiterte Funktionen sind mit Skripten realisierbar.

Das folgende Beispielmakro startet MegaCAD, wartet bis es bereit ist und öffnet dann eine DDE-Verbindung. Es werden DDE-Befehle zum Öffnen der Zeichnung und zum Einlesen eines vom Office Manager erstellten Schriftkopfes gesendet. Eine ausführlichere Beschreibung dieses Makros finden Sie auch in der Dokumentation. Makro megacad-schriftkopf.omac:

{ShellExecute:{CurrApplExe},,3,WaitForInputIdle}
{DDEOpenLink:MegaCAD_3D,System,Synchron}
{DDESendMacro:"PrtLoad ""{CurrDocFileName}""","CDLRead ""{MegaCreateFrame:G:\DMS\Template\ZNGKOPF.CDL}"""}
{DDECloseLink}