Office Manager Entwickler-Support

Dokumente nach außen kopieren

Das Archivierungsprogramm "Office Manager" enthält einige Standardfunktionen, um Dokumente nach außen zu kopieren. Sie finden diese im Menü Start | Verwenden | Senden.

  • Wenn Sie beispielsweise mehrere Dokumente in der Archivtabelle markieren und anschließend den Befehl Senden an andere wählen, dann werden die Dateien in den gewünschten Zielordner kopiert. Hierbei wird keine Verzeichnisstruktur angelegt, die Dateien befinden sich alle im Hauptordner.
  • Mit Senden an CD können Sie diese auf eine DVD oder CD brennen, hierbei wird eine Verzeichnisstruktur auf dem Datenträger erstellt.

Dokumente in eine Verzeichnisstruktur kopieren

Das folgende Skript ermöglicht das Kopieren der Dokumente in eine Verzeichnisstruktur. Der Hauptordner wird vom Anwender gewählt, die Struktur der Unterverzeichnisse und der Dateiname ergibt sich aus vorgegebenen Datenfeldern.

Das Skript ist auch ein Beispiel für die Mischung der Sprachen VBScript und OmAPI.

dim omapp
dim omArchive
dim omDocDS

set omapp = CreateObject("om.OfficeManagerApp")
set OmArchive = omapp.Archive
set omDocDS = omapp.Archive.DatasetDocument

' Zielverzeichnis abfragen...
omapp.ExecuteOmMacroLine("{SetPublVar:MainPath={ExecDirDlg:Zielverzeichnis wählen}}")

' nur ausführen, wenn der Anwender im Dialog auf OK geklickt hat
if omapp.ExecuteOmMacroLine("{GetPublVar:MainPath}") <> "" then

  ' zum ersten Dokument springen
  omDocDS.First

  ' Schleife durch alle Dokumente
  while not omDocDS.EoF
    ' die Zielstruktur ergibt sich hier aus dem Projekt und der Kategorie
    ' Sie können die Variablen {Doc:Project}\{Doc:Category} Ihren Wünschen anpassen
    omapp.ExecuteOmMacroLine("{SetPublVar:DestPath={GetPublVar:MainPath}{Doc:Project}\{Doc:Category}}")
    ' Zieldateiname ist hier der gleiche Name, wie im Archiv: {Doc:FileName,File}
    omapp.ExecuteOmMacroLine("{SetPublVar:DestFileName={GetPublVar:DestPath}\{Doc:FileName,File}}")
    ' Testausgabe des Zielpfades: omapp.ExecuteOmMacroLine("{MessageDlg:{GetPublVar:DestPath,Validate}}")
    omapp.ExecuteOmMacroLine("{CreateDir:{GetPublVar:DestPath,Validate},0}{CopyDocFile:{GetPublVar:DestFileName,Validate}}")
    ' zum nächsten Dokument wechseln
    omDocDS.Next
    omArchive.SelectFocusedDocument
  Wend

end if

' aufräumen:

set omDocDS = Nothing
set omArchive = Nothing
set omapp = Nothing

Mehrfache Dateinamen

Wenn die Zielstruktur nicht der Verzeichnisstruktur im Archiv entspricht, können Dateinamen mehrfach vorkommen. Um dem vorzubeugen, können Sie z.B. die eindeutige Schlüsselnummer {Doc:DocID} für den Dateinamen verwenden.

Skript-Anpassungen

Sie können das Skript an Ihre eigenen Anforderungen anpassen, zum Beispiel:

1. Das Zielverzeichnis ist immer "C:\Export\".

Ersetzen Sie die Zeile
omapp.ExecuteOmMacroLine("{SetPublVar:MainPath={ExecDirDlg:Zielverzeichnis wählen}}")
durch
omapp.ExecuteOmMacroLine("{SetPublVar:MainPath=C:\Export\}")

2. Die Struktur soll sich aus dem Datenfeld "Kunde" ergeben.

Ersetzen Sie die Zeile
omapp.ExecuteOmMacroLine("{SetPublVar:DestPath={GetPublVar:MainPath}{Doc:Project}\{Doc:Category}}")
durch
omapp.ExecuteOmMacroLine("{SetPublVar:DestPath={GetPublVar:MainPath}{Doc:Kunde}}")

3. Der Dateiname soll der Nummer entsprechen.

Ersetzen Sie die Zeile
omapp.ExecuteOmMacroLine("{SetPublVar:DestFileName={GetPublVar:DestPath}\{Doc:FileName,File}}")
durch
omapp.ExecuteOmMacroLine("{SetPublVar:DestFileName={GetPublVar:DestPath}\{Doc:DOCNO}.{Doc:FileName,FileExt}}")