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-Datei befindet, und aktualisiert das Plugin bei Bedarf.

  1. Erstellen Sie in der Datei der eigenen App eine Tabelle mit dem Namen Plugin-Aktualisierung zur Speicherung von Plugin-Informationen.
  2. Definieren Sie die folgenden Felder:
  3. 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

  4. Erstellen Sie ein Layout mit dem Namen „Plugin-Aktualisierungsinformation“ und fügen Sie es den Feldern hinzu, die Sie in Schritt 2 definiert haben.
  5. Erstellen Sie das folgende Script und nennen Sie es „Plugin installieren“:
    Kopieren
    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-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)
  6. Erstellen Sie das folgende Script und nennen Sie es „Plugin-Versionen prüfen“:
    Kopieren
    Gehe zu Layout ["Plugin-Aktualisierungsinformation"]
    Gehe zu Datens./Abfrage/Seite [Erster]
    Schleife (Anfang) [ Löschen: Immer ]
        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)
  7. Erstellen Sie das folgende Script und nennen Sie es „Prüfen, ob aktiviert“:
    Kopieren
    Fehleraufzeichnung setzen [Ein] 
    Ergebnismenge suchen [Wiederherstellen]
    #Suche nach "Aktiviert" im Feld "Status des installierten Plugins" 
    Wenn [Hole ( AnzahlGefundeneDatensätze ) < Hole ( AnzahlDatensätzeGesamt )] 
        Eigenes Dialogfeld anzeigen ["Einige erforderliche Plugins sind nicht aktiviert. Stellen Sie sicher, dass „Lösungen dürfen Dateien installieren“ in den FileMaker Pro-Plugin-Einstellungen aktiviert ist."] 
    Ende (wenn)
  8. Erstellen Sie ein Startscript mit dem Namen „Plugin-Aktualisierungsscript“, das auf die obigen Scripts in ihrer Reihenfolge verweist, wenn die Datenbank geöffnet wird.
    Kopieren
    Script ausführen [Angegeben: Aus Liste ; "Plugin-Versionen prüfen" ;
    Parameter: ]
    Script ausführen [Angegeben: Aus Liste ; "Prüfen, ob aktiviert" ;
    Parameter: ]
    Gehe zu Layout [Originallayout ; Animation: Keine ]

Formel für Client-Plugin-Version

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

Formel für aktivierten Zustand des Client-Plugins

Kopieren
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 ( ElementeAnzahl ( 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. Siehe Ändern 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.