Exemple de mise à jour de plug-in

L'exemple suivant compare la version d'un plug-in installé avec la version se trouvant dans une rubrique Conteneur du fichier FileMaker Pro et met à jour le plug-in, le cas échéant.

  1. Dans le fichier d'app personnalisée, créez une table portant le nom Mise à jour de plug-in pour stocker les informations du plug-in.
  2. Définissez les rubriques suivantes :
  3. Nom de rubrique

    Type de rubrique

    Nom du plug-in

    Texte

    Version de plug-in requise

    Nombre

    Version de plug-in installée

    Calcul (non stocké). Pour visualiser un exemple de code, consultez la section Calcul de version de plug-in client ci-dessous.

    Etat du plug-in installé

    Calcul (non stocké). Pour visualiser un exemple de code, consultez la section Calcul d'état d'activation de plug-in client ci-dessous.

    Fichier de plug-in

    Conteneur

  4. Créez un modèle nommé Informations de mise à jour de plug-in, puis ajoutez-y les rubriques définies à l'étape 2.
  5. Créez le script suivant et attribuez-lui le nom Installer le plug-in :
    Copier
    Gestion erreurs [Oui]
    Installer le fichier de plug-in [Mise à jour de plug-in::Fichier de plug-in]
    #
    #Gérer les erreurs
    Si [Obtenir ( DernièreErreur ) ≠ 0]
        Si [Obtenir ( DernièreErreur ) = 3]
            Ouvrir boîte dial. person. [Mise à jour de plug-in::Fichier de plug-in & " n'a pas pu être installé. Assurez-vous que l'option Autoriser les solutions à installer les fichiers est sélectionnée dans les préférences plug-in de FileMaker Pro."]
        Sinon si [Obtenir ( DernièreErreur ) = 1550]
            Ouvrir boîte dial. person. [Mise à jour de plug-in::Fichier de plug-in & " a été installé, mais n'a pas pu être initialisé."]
        Sinon si [Obtenir ( DernièreErreur ) = 1551]
            Ouvrir boîte dial. person. [Mise à jour de plug-in::Fichier de plug-in & " n'a pas pu être installé."]
        Sinon
            Ouvrir boîte dial. person. ["Une erreur générale " & Obtenir ( DernièreErreur ) & " s'est produite lors de l'installation de " & Mise à jour de plug-in::Fichier de plug-in]
        Fin de si
    Fin de si
  6. Créez le script suivant et attribuez-lui le nom Vérifier les versions de plug-in :
    Copier
    Activer le modèle ["Informations de mise à jour de plug-in"]
    Afficher enreg/requête/page [Premièr(e)]
    Boucle
        Si [Mise à jour de plug-in::Version de plug-in installée < Mise à jour de plug-in::Version de plug-in requise]
            #Le plug-in doit être installé ou mis à jour.
            Exécuter script [Spécifique: Dans la liste ; "Installer le plug-in" ;
            Paramètre:]
        Fin de si
        Afficher enreg/requête/page [Suivant(e); Sortie après dernière: Oui]
    Fin de boucle
  7. Créez le script suivant et attribuez-lui le nom Vérifier l'activation :
    Copier
    Gestion erreurs [Oui]
    Exécuter la recherche [Rétablir]
    #Rechercher "Enabled" dans la rubrique Etat du plug-in installé
    Si [Obtenir ( NombreEnregTrouvés ) < Obtenir ( NombreEnregTotal )]
        Ouvrir boîte dial. person. ["Certains plug-ins requis ne sont pas activés. Assurez-vous que l'option Autoriser les solutions à installer les fichiers est sélectionnée dans les préférences plug-in de FileMaker Pro."]
    Fin de si
  8. Créez un script de démarrage nommé Script de mise à jour de plug-in référençant les scripts ci-dessus dans l'ordre lorsque la base de données est ouverte :
    Copier
    Exécuter script [Spécifique: Dans la liste ; "Vérifier les versions de plug-in" ;
    Paramètre:]
    Exécuter script [Spécifique: Dans la liste ; "Vérifier l'activation" ;
    Paramètre:]
    Activer modèle [modèle d'origine ; Animation: Aucune]

Calcul de version de plug-in client

Copier
Definir (
    [
    PositionNomPlugin = Position ( Obtenir ( PluginsFMInstallés ); Nom du Plug-in ; 1 ; 1 );
    DébutVersionPlugin = PositionNomPlugin + Longueur( Nom du Plugin ) + 1;
    FinVersionPlugin = Position ( Obtenir ( PluginsFMInstallés ); ";" ; PositionNomPlugin ; 2 );
    LongueurVersionPlugin = FinVersionPlugin - DébutVersionPlugin
    ];
    Si ( Occurrences ( Obtenir (PluginsFMInstallés) ; Nom du plugin ) = 0 ; "" ; Extrait ( Obtenir ( PluginsFMInstallés ) ; DébutVersionPlugin ; LongueurVersionPlugin ) )
)

Calcul d'état d'activation de plug-in client

Copier
Definir (
    [
    PositionNomPlugin = Position ( Obtenir ( PluginsFMInstallés ); Nom du Plug-in ; 1 ; 1 );
    DébutEtatPlugin = Position ( Obtenir ( PluginsFMInstallés ); ";" ; PositionNomPlugin ; 2 ) + 1;
    FinEtatPlugin = Si ( Position ( Obtenir ( PluginsFMInstallés ); "¶" ; PositionNomPlugin ; 1 ) > 0; Position ( Obtenir ( PluginsFMInstallés ); "¶" ; PositionNomPlugin ; 1 ); Longueur( Obtenir ( PluginsFMInstallés ) ) + 1);
    LongueurEtatPlugin = FinEtatPlugin - DébutEtatPlugin
    ];
    Si ( Occurrences ( Obtenir (PluginsFMInstallés) ; Nom du Plugin ) = 0 ;
    "" ; Extrait ( Obtenir ( PluginsFMInstallés ) ; DébutEtatPlugin ; LongueurEtatPlugin ) )
)

Remarques 

  • Pour que les plug-ins puissent être installés, l'option Autoriser les solutions à installer des fichiers doit être sélectionnée dans les préférences de plug-in du client. Consultez la section Définition des préférences des plug-ins.
  • Si un plug-in a été désactivé dans les préférences de plug-in du client, il est installé, mais n'est pas accessible tant qu'il n'a pas été manuellement activé par l'utilisateur.
  • Un seul plug-in peut être stocké dans chaque rubrique Conteneur, mais vous pouvez afficher toutes les informations de plug-in en créant plusieurs rubriques Conteneur de plug-in sur un même modèle.