Voorbeeld van update van plug-in

In het volgende voorbeeld wordt de versie van een geïnstalleerde plug-in vergeleken met de versie die zich bevindt in een containerveld in het FileMaker Pro-bestand en wordt de plug-in zo nodig bijgewerkt.

  1. Maak in het bestand van de app op maat een tabel met de naam Update plug-in om hier gegevens van de plug-in in op te slaan.
  2. Definieer de volgende velden:
  3. Veldnaam

    Veldtype

    Naam van plug-in

    tekst

    Vereiste versie van plug-in

    getal

    Geïnstalleerde plug-inversie

    berekening (niet-opgeslagen). Bijvoorbeeld code; raadpleeg Berekening van versie van clientplug-in hieronder.

    Toestand van geïnstalleerde plug-in

    berekening (niet-opgeslagen). Bijvoorbeeld code; raadpleeg Berekening van ingeschakelde status van clientplug-in hieronder.

    Plug-inbestand

    container

  4. Maak een lay-out met de naam Plug-ininformatie bijwerken en voeg er de velden aan toe die u in stap 2 hebt gedefinieerd.
  5. Maak het volgende script en noem het Plug-in installeren:
    Kopiëren
    Foutafvanging instellen [Aan]
    Plug-inbestand installeren [Update plug-in::Plug-inbestand]
    #
    #Omgaan met fouten
    If [Get (LaatsteFout) ≠ 0]
        If [Get (LaatsteFout) = 3]
            Aangepast dialoogvenster tonen [Update plugin::Plug-inbestand & " kan niet worden geïnstalleerd. Controleer of de optie 'Oplossingen toestaan om bestanden te installeren' is ingeschakeld in de FileMaker Pro-voorkeuren voor plug-ins."]
        Else If [Get (LaatsteFout) = 1550]
            Aangepast dialoogvenster tonen [Update plug-in::Plug-inbestand & " is geïnstalleerd, maar kan niet worden geïnitialiseerd."]
        Else If [Get (LaatsteFout) = 1551]
            Aangepast dialoogvenster tonen [Update plug-in::Plug-inbestand & " kan niet worden geïnstalleerd."]
        Else
            Aangepast dialoogvenster tonen ["Er is een algemene fout " & Get (LaatsteFout) & " opgetreden bij de installatie van " & Update plug-in::Plug-inbestand]
        End If
    End If
  6. Maak het volgende script en noem het Plug-inversies controleren:
    Kopiëren
    Ga naar lay-out ["Plug-ininformatie bijwerken"]
    Ga naar record/verzoek/pagina [Eerste]
    Loop
        If [Update plug-in::Geïnstalleerde plug-inversie < Update plug-in::Vereiste plug-inversie]
            #Plug-in moet worden geïnstalleerd of bijgewerkt.
            Script uitvoeren [Opgegeven: Uit lijst ; "Plug-in installeren" ;
            Parameter: ]
        End If
        Ga naar record/verzoek/pagina [Volgende; Afsluiten na laatste: Aan]
    End Loop
  7. Maak het volgende script en noem het Inschakeling controleren:
    Kopiëren
    Foutafvanging instellen [Aan]
    Zoekopdracht uitvoeren [Herstellen]
    #"Ingeschakeld" zoeken in het veld Toestand van geïnstalleerde plug-in
    If[Get (GevondenTelling) < Get (TellingTotaalaantalRecords)]
        Aangepast dialoogvenster tonen ["Sommige vereiste plug-ins zijn niet ingeschakeld. Controleer of de optie 'Oplossingen toestaan om bestanden te installeren' is ingeschakeld in de FileMaker Pro-voorkeuren voor plug-ins."]
    End If
  8. Maak een opstartscript met de naam Script voor bijwerken van plug-in, waarin wordt verwezen naar de hiervoor vermelde scripts, in de scriptvolgorde, wanneer de database wordt geopend:
    Kopiëren
    Script uitvoeren [Opgegeven: Uit lijst ; "Plug-inversies controleren" ;
    Parameter: ]
    Script uitvoeren [Opgegeven: Uit lijst ; "Inschakeling controleren" ;
    Parameter: ]
    Ga naar lay-out [originele lay-out ; Animatie: Geen ]

Berekening van versie van clientplug-in

Kopiëren
Let (
    [
    PluginNaamPositie = Position (Get (GeïnstalleerdeFMPlugins); Pluginnaam ; 1 ; 1);
    PluginVersieStart = PluginNaamPositie + Length(Pluginnaam) + 1;
    PluginVersieEinde = Positie (Get (GeïnstalleerdeFMPlugins); ";" ; PluginNaamPositie ; 2);
    PluginVersieLengte = PluginVersieEinde - PluginVersieStart
    ];
    If (PatternCount (Get (GeïnstalleerdeFMPlugins) ; Pluginnaam) = 0 ; "" ; Middle (Get (GeïnstalleerdeFMPlugins) ; PluginVersieStart ; PluginVersieLengte))
)

Berekening van ingeschakelde status van clientplug-in

Kopiëren
Let (
    [
    PluginNaamPositie = Position (Get (GeïnstalleerdeFMPlugins); Pluginnaam ; 1 ; 1);
    PluginStaatStart = Position (Get (GeïnstalleerdeFMPlugins); ";" ; PluginNaamPositie ; 2) + 1;
    PluginStaatEinde = If (Position (Get (GeïnstalleerdeFMPlugins); "¶" ; PluginNaamPositie ; 1) > 0; Position (Get (GeïnstalleerdeFMPlugins); "¶" ; PluginNaamPositie ; 1); Length (Get (InstalledFMPlugins)) + 1);
    PluginStaatLengte = PluginStaatEinde - PluginStaatStart
    ];
    If (PatternCount (Get (GeïnstalleerdeFMPlugins) ; Pluginnaam) = 0 ;
    "" ; Middle (Get (GeïnstalleerdeFMPlugins) ; PluginStaatStart ; PluginStateLength))
)

Opmerkingen 

  • Om plug-ins te kunnen installeren of bijwerken, moet de optie Oplossingen toestaan om bestanden te installeren in de plug-invoorkeuren van de client zijn geselecteerd. Raadpleeg Plug-invoorkeuren instellen.
  • Als in de plug-invoorkeuren van de client een plug-in is uitgeschakeld, zal deze worden geïnstalleerd, maar pas toegankelijk zijn voor FileMaker Pro nadat de plug-in handmatig door de gebruiker wordt ingeschakeld.
  • In elk containerveld kan slechts één plug-in worden opgeslagen, maar u kunt alle informatie over de plug-in weergeven door in één lay-out meerdere plug-incontainervelden te maken.