Einführung
Skript's, welche beim Start der Anwendung ausgeführt, oder im Hintergrund arbeiten sollen, müssen das ICommonPlugin-Interface implementieren.
Dieses Interface stellt alle nötigen Informationen Bereit, um das starten und beenden des Skript's mit der Anwendung zu synchronisieren.
Ablauf
Start
1. | Die Anwendung wird gestartet und der Skript wird aus dem Autostart Ordner geladen und kompiliert. |
2. | Die Benutzeroberfläche der Anwendung wird initialisiert und die Funktion Initialize wird aufgerufen. Host ist dabei vom Typ Styletronix.Auftragsverwaltung.MainApp und gibt eine Referenz zum Start-Formular an. |
3. | Der Wert Plugin_HasConfigMenu() wird abgefragt. Falls das Skript mit true antwortet wird ein der Add-In liste der Auftragsverwaltung eine Schaltfläche "Einstellungen" angezeigt. Wird diese geklickt wird die Funktion ShowConfigMenu() aufgerufen. |
Ende
1. | Der Benutzer schließt die Auftragsverwaltung |
2. | Die Funktion ShutDownRequest() wird aufgerufen. Das Skript muss mit Shutdown_Result antworten. Falls cancel auf true festgelegt wurde, bricht die Auftragsverwaltung das beenden ab und Zeigt die Meldung Message an. Wenn cancel auf false gesetzt wird, setzt die Auftragsverwaltung das beenden fort. |
3. | Sobald alle Skript's mit Shutdown_Result.Cancel=false geantwortet haben, wird bei allen Skript's die Funktion ShutDown() aufgerufen. Skript's müssen nun alle aktionen durchführen, die zum beenden erforderlich sind und mit true antworten. Gibt ein Skript false zurück, wird das beenden abgebrochen. In diesem Fall kann es sein, dass manche Skript's bereits beendet wurden, andere aber immer noch aktiv sind. Dies ist kein normaler Zustand, soll aber Datenverlust durch Probleme beim Shutdown vermeiden. |
Interface
Assembly: Styletronix.AuftragsverwaltungV2.IPC
Public Interface ICommonPlugIn
Inherits IPluginDetails
Sub Initialize(ByVal Host As Object)
Structure Shutdown_Result
Dim Cancel As Boolean
Dim Message As String
End Structure
Function ShutDown() As Boolean
Function ShutDownRequest() As Shutdown_Result
Sub ShowConfigMenu()
ReadOnly Property Plugin_HasConfigMenu() As Boolean
End Interface