Een app op maat maken > Werken met plug-ins > Voorbeeld van update van plug-in
 

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 in een containerveld in het FileMaker Pro Advanced-bestand bevindt en wordt de plug-in zo nodig bijgewerkt.

1. Maak in het oplossingsbestand een tabel Update plug-in om er informatie over de plug-in in op te slaan.

2. Definieer de volgende velden:

 

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

3. Maak een lay-out met de naam Plug-ininformatie bijwerken en voeg er de velden aan toe die u in stap 2 hebt gedefinieerd.

4. Maak het volgende script en noem het Plug-in installeren:

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 plug-in::Plug-inbestand & " kan niet worden geïnstalleerd. Controleer of de optie 'Oplossingen toestaan om bestanden te installeren' in de FileMaker Pro Advanced-voorkeuren voor plug-ins is ingeschakeld."]
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

5. Maak het volgende script en noem het Plug-inversies controleren:

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

6. Maak het volgende script en noem het Inschakeling controleren:

Foutafvanging instellen [Aan]
Zoekopdracht uitvoeren [Herstellen]
#"Ingeschakeld" zoeken in het veld Toestand van geïnstalleerde plug-in
If [Get (GevondenTelling) 0]
Aangepast dialoogvenster tonen ["Sommige vereiste plug-ins zijn niet ingeschakeld. Controleer of de optie 'Oplossingen toestaan om bestanden te installeren' in de FileMaker Pro Advanced-voorkeuren voor plug-ins is ingeschakeld."]
End If

7. 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:

Script uitvoeren [Opgegeven: Uit lijst ; "Plug-inversies controleren" ;
Parameter: ]
Script uitvoeren [Opgegeven: Uit lijst ; "Inschakeling controleren" ;
Parameter: ]
Ga naar lay-out [originele lay-out]

Berekening van versie van clientplug-in

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

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.

Verwante onderwerpen 

Get (GeïnstalleerdeFMPlugins) functie

Plug-inbestand installeren functie