Beispielskript - Remote Control
![]() |
|
Beispielskript - Remote Control | |
Beispielskript für den Aufruf über die Application Remote Control |
Das folgende Skript kann über die Application Remote Control aufgerufen werden. Die entsprechenden Einstellungen vorausgesetzt, wird über die Parameter des Aufrufs eine Arbeitsmappe identifiziert, die dann in ArcFlow angezeigt wird.
Voraussetzungen:
Die Einstellungen der Application Remote Control müssen vorhanden sein. Zudem muss mindestens ein Mappenfeld für eine Arbeitsmappe definiert sein. Die Mappe wird über den Inhalt dieses Mappenfeldes gefunden, d.h. das entsprechende Mappenfeld muss gefüllt sein. Soll zum Beispiel aus einem ERP-System die Arbeitsmappe eines Kunden aufgerufen werden, kann bei den Kunden-Arbeitsmappen ein Mappenfeld "CustomerNo" definiert werden und durch einen Datenabgleich mit der Nummer aus dem ERP-System gefüllt werden.
Aufruf der Remote Control
Ist das Skript in ArcFlow geschrieben und übersetzt worden, kann es mit folgendem Aufruf durchgeführt werden:
AF_RmtControl.exe /USER=admin /PASSWORD= /ACTION=OPEN_DIALOG /FNC=AFArcFileShowByScript /SCRIPT=ShowAbm /DOCTYPE=<Name des Mappenfelds> /DOCNO=<Inhalt des Mappenfelds> /DOCID=
Bei unserem Beispiel mit der Kundennummer würde /DOCTYPE=CustomerNo und in /DOCNO die Kundennummer aus dem ERP-System übergeben werden.
![]() |
Bei dem Aufruf muss der Name des Mappenfeldes übergeben werden, nicht der Anzeigename (siehe Archivablage / Mappenfelder). |
Sind zwei Arbeitsmappen mit dem gleichen Feldinhalt vorhanden, wird auf die erste gefundene Mappe positioniert.
// ***************************************************************** // Remote control // ***************************************************************** // Input variables: // gAFRmtCtrlDocType : alpha; // Doc type // gAFRmtCtrlDocNo : alpha; // Doc no. // gAFRmtCtrlId : alpha; // No. // gAFRmtCtrlOptions : int; // FLAGS // Output variables: // gAFAbmId : int; // Workfolder no. // gAFArcNr : alpha(12); // Archive no. // gAFArcFileNr : int; // Attachment file no. // ***************************************************************** // main function main ( /* void */ ) : logic; // Return of the script local { tErr : int; tCteList : handle; tCteItem : handle; } { tCteList # AfCteOpen(_CteList); tErr # AFAbmLstGetByAbmFld(gAFRmtCtrlDocType,gAFRmtCtrlDocNo,tCteList); if (tErr != _ErrOk) { // Fehler beim Lesen der Mappenfelder WinDialogBox(gAFActParentDlg,'ArcFlow-Skript: ShowAbm','Fehler beim Lesen der Mappenfelder. ' + sAFCRLF + 'Mappenfeld: ' + gAFRmtCtrlDocType + sAFCRLF + 'Wert: ' + gAFRmtCtrlDocNo + sAFCRLF + 'Fehler: ' + CnvAI(tErr),_WinIcoError,_WinDialogOk,0); } else { </p> <p> if (tCteList->CteInfo(_CteCount) = 0) { WinDialogBox(gAFActParentDlg,'ArcFlow-Skript: ShowAbm','Keine Arbeitsmappe gefunden.' + sAFCRLF + 'Mappenfeld: ' + gAFRmtCtrlDocType + sAFCRLF + 'Wert: ' + gAFRmtCtrlDocNo,_WinIcoInformation,_WinDialogOk,0); gAFAbmId # 0; gAFArcNr # ''; gAFArcFileNr # 0; } else { tCteItem # tCteList->CteRead(_CteFirst); gAFAbmId # CnvIA(tCteItem->spName); gAFArcNr # ''; gAFArcFileNr # 0; } } tCteList->AFCteCloseAll(); // Return: True => continue processing; False => cancel processing return(True) }