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-instellingen voor plug-ins."]
        Else If [Get(LaatsteFout) = 1550]
            Aangepast dialoogvenster tonen [Update plugin::Plug-inbestand & " is geïnstalleerd, maar kan niet worden geïnitialiseerd."]
        Else If [Get(LaatsteFout) = 1551]
            Aangepast dialoogvenster tonen [Update plugin::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 [ Wissen: Altijd ]
        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-inbestand 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-instellingen 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
Laat (
    [
    Plug-inNaamPositie = Positie (Get (GeïnstalleerdeFMPlug-ins); Plug-inNaam ; 1 ; 1 );
    Plug-inVersieStart = Plug-inNaamPositie + Lengte( Plug-inNaam ) + 1;
    Plug-inVersieEinde = Positie ( Get(GeïnstalleerdeFMPlug-ins); ";" ; Plug-inNaamPositie ; 2 );
    Plug-inVersieLengte = Plug-inVersieEinde - Plug-inVersieStart
    ];
    If ( PatroonAantal ( Get (GeïnstalleerdeFMPlug-ins) ; Plug-inNaam ) = 0 ; "" ; Midden ( Krijg(GeïnstalleerdeFMPlug-ins) ; Plug-inVersieStart ; Plug-inVersieLengte ) )
)

Berekening van ingeschakelde status van clientplug-in

Kopiëren
Laat (
    [
    Plug-inNaamPositie = Positie ( Get(GeïnstalleerdeFMPlug-ins); Plug-in Naam ; 1 ; 1 );
    Plug-inStatusStart = Positie ( Get(GeïnstalleerdeFMPlug-ins); ";" ; Plug-inNaamPositie ; 2 ) + 1;
    Plug-inStatusEinde = If ( Positie ( Get(GeïnstalleerdeFMPlug-ins); "¶" ; Plug-inNaamPositie ; 1 ) > 0; Positie ( Get(GeïnstalleerdeFMPlug-ins); "¶" ; Plug-inNaamPositie ; 1 ); Lengte( Get(GeïnstalleerdeFMPlug-ins) ) + 1 );
    Plug-inStatusLengte = Plug-inStatusEinde - Plug-inStatusStart
    ];
    If ( PatroonAantal ( Get (GeïnstalleerdeFMPlug-ins) ; Plug-in Naam ) = 0 ;
    "" ; Midden ( Get(GeïnstalleerdeFMPlug-ins) ; Plug-inStatusStart ; Plug-inStatusLengte ) )
)

Opmerkingen 

  • Om plug-ins te kunnen installeren of bijwerken, moet de optie Oplossingen toestaan om bestanden te installeren in de plug-ininstellingen van de client zijn geselecteerd. Zie Plug-in-instellingen wijzigen.
  • Als in de plug-in-instellingen van de client een plug-in is uitgeschakeld, zal deze worden geïnstalleerd, maar pas toegankelijk zijn 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.