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 des fichiers est sélectionnée dans les réglages de 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 modèle [ "Informations de mise à jour de plug-in" ]
    Afficher enreg/requête/page [ Premièr(e) ]
    Boucle [ Purge: Systématique ]
        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écifié: Depuis 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 des fichiers est sélectionnée dans les réglages de 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écifié: Depuis liste ; "Vérifier les versions de plug-in" ;
    Paramètre: ]
    Exécuter script [ Spécifié: Depuis 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 réglages de plug-in du client. Consultez la section Modification des réglages de plug-ins.
  • Si un plug-in a été désactivé dans les réglages 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.