Erstellen eigener Apps > Arbeiten mit Plugins > Beispiel für Plugin-Aktualisierung
 

Beispiel für Plugin-Aktualisierung

Das folgende Beispiel vergleicht die Version eines installierten Plugins mit der Version, die sich in einem Containerfeld in der FileMaker Pro Advanced-Datei befindet, und aktualisiert das Plugin bei Bedarf.

1. Erstellen Sie in der Lösungsdatei eine Tabelle mit dem Namen Plugin-Aktualisierung zur Speicherung von Plugin-Informationen.

2. Definieren Sie die folgenden Felder:

 

Feldname

Feldtyp

Plugin-Name

Text

Erforderliche Plugin-Version

Zahl

Installierte Plugin-Version

Formel (ungespeichert). Beispielcode siehe unter Formel für Client-Plugin-Version unten.

Status des installierten Plugins

Formel (ungespeichert). Beispielcode siehe unter Formel für aktivierten Zustand des Client-Plugins unten.

Plugin-Datei

Container

3. Erstellen Sie ein Layout mit dem Namen „Plugin-Aktualisierungsinformation“ und fügen Sie es den Feldern hinzu, die Sie in Schritt 2 definiert haben.

4. Erstellen Sie das folgende Script und nennen Sie es „Plugin installieren“:

Fehleraufzeichnung setzen [Ein]
Plugin-Datei installieren [Plugin-Aktualisierung::Plugin-Datei]
#
#Fehlerbehandlung
Wenn [Hole ( LetzteFehlerNr ) 0]
Wenn [Hole ( LetzteFehlerNr ) = 3]
Eigenes Dialogfeld anzeigen [Plugin-Aktualisierung::Plugin-Datei & " konnte nicht installiert werden. Stellen Sie sicher, dass „Lösungen dürfen Dateien installieren“ in den FileMaker Pro Advanced-Plugin-Einstellungen aktiviert ist."]
Sonst, wenn [Hole ( LetzteFehlerNr ) = 1550]
Eigenes Dialogfeld anzeigen [Plugin-Aktualisierung::Plugin-Datei & " wurde installiert, konnte aber nicht initialisiert werden."]
Sonst, wenn [Hole ( LetzteFehlerNr ) = 1551]
Eigenes Dialogfeld anzeigen [Plugin-Aktualisierung::Plugin-Datei & " konnte nicht installiert werden."]
Sonst
Eigenes Dialogfeld anzeigen ["Allgemeiner Fehler " & Hole ( LetzteFehlerNr ) & " aufgetreten bei der Installation von " & Plugin-Aktualisierung::Plugin-Datei]
Ende (wenn)
Ende (wenn)

5. Erstellen Sie das folgende Script und nennen Sie es „Plugin-Versionen prüfen“:

Gehe zu Layout ["Plugin-Aktualisierungsinformation"]
Gehe zu Datens./Abfrage/Seite [Erster]
Schleife (Anfang)
Wenn [Plugin-Aktualisierung::Installierte Plugin-Version < Plugin-Aktualisierung::Erforderliche Plugin-Version]
#Plugin muss installiert oder aktualisiert werden.
Script ausführen [Angegeben: Aus Liste ; "Plugin installieren" ;
Parameter: ]
Ende (wenn)
Gehe zu Datens./Abfrage/Seite [Nächster; Nach letztem beenden: Ein]
Schleife (Ende)

6. Erstellen Sie das folgende Script und nennen Sie es „Prüfen, ob aktiviert“:

Fehleraufzeichnung setzen [Ein]
Ergebnismenge suchen [Wiederherstellen]
#Suche nach "Aktiviert" im Feld "Status des installierten Plugins"
Wenn [Hole ( AnzahlGefundeneDatensätze ) 0]
Eigenes Dialogfeld anzeigen ["Einige erforderliche Plugins sind nicht aktiviert. Stellen Sie sicher, dass „Lösungen dürfen Dateien installieren“ in den FileMaker Pro Advanced-Plugin-Einstellungen aktiviert ist."]
Ende (wenn)

7. Erstellen Sie ein Startscript mit dem Namen „Plugin-Aktualisierungsscript“, das auf die obigen Scripts in ihrer Reihenfolge verweist, wenn die Datenbank geöffnet wird.

Script ausführen [Angegeben: Aus Liste ; "Plugin-Versionen prüfen" ;
Parameter: ]
Script ausführen [Angegeben: Aus Liste ; "Prüfen, ob deaktiviert" ;
Parameter: ]
Gehe zu Layout [Originallayout]

Formel für Client-Plugin-Version

SetzeVar (
[
PluginNamePosition = Position ( Hole ( InstallierteFMPlugins ); Plugin-Name ; 1 ; 1 );
PluginVersionStart = PluginNamePosition + Länge( PluginName ) + 1;
PluginVersionEnde = Position ( Hole ( InstallierteFMPlugins ); ";" ; PluginNamePosition ; 2 );
PluginVersionLänge = PluginVersionEnde - PluginVersionStart
];
Wenn ( MusterAnzahl ( Hole ( InstallierteFMPlugins ) ; Plugin-Name ) = 0 ; "" ; Mitte ( Hole ( InstallierteFMPlugins ) ; PluginVersionStart ; PluginVersionLänge ) )
)

Formel für aktivierten Zustand des Client-Plugins

SetzeVar (
[
PluginNamePosition = Position ( Hole ( InstallierteFMPlugins ); Plugin-Name ; 1 ; 1 );
PluginStatusStart = Position ( Hole ( InstallierteFMPlugins ); ";" ; PluginNamePosition ; 2 ) + 1;
PluginStatusEnde = Wenn ( Position ( Hole ( InstallierteFMPlugins ); "¶" ; PluginNamePosition ; 1 ) > 0; Position ( Hole ( InstallierteFMPlugins ); "¶" ; PluginNamePosition ; 1 ); Länge ( Hole ( InstallierteFMPlugins ) ) + 1 );
PluginStatusLänge = PluginStatusEnde - PluginStatusStart
];
Wenn ( MusterAnzahl ( Hole ( InstallierteFMPlugins ) ; Plugin-Name ) = 0 ;
"" ; Mitte ( Hole ( InstallierteFMPlugins ) ; PluginStatusStart ; PluginStatusLänge ) )
)

Hinweise 

Damit Plugins installiert werden, muss die Option Lösungen dürfen Dateien installieren in den Plugin-Einstellungen des Clients aktiviert sein. Weitere Informationen finden Sie unter Festlegen von Plugin-Einstellungen.

Wenn ein Plugin in den Plugin-Einstellungen des Clients deaktiviert wurde, wird es installiert, steht aber erst zur Verfügung, nachdem es vom Benutzer manuell aktiviert wurde.

Nur jeweils ein Plugin kann in einem Containerfeld gespeichert werden, aber Sie können sämtliche Plugin-Informationen anzeigen, indem Sie mehrere Plugin-Containerfelder auf einem einzigen Layout definieren.

Weiterführende Themen 

Funktion „Hole ( InstallierteFMPlugins )“

Funktion „Plugin-Datei installieren“