Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/18/21 in Posts

  1. fabriceN

    Trop fier

    La consécration
    2 points
  2. Bonjour, Je vois deux méthodes pour répondre à cette demande : La première consiste à journaliser les connexions à l'ouverture et à la fermeture de la base, via des scripts, pour alimenter une table avec les comptes qui ouvrent et ferment la base avec la fonction Obtenir ( NomCompte ). Un inconvénient à cette méthode : lorsqu'un utilisateur plante ou arrête brutalement FileMaker Pro, on ne sait plus facilement s'il est connecté ou non… La deuxième méthode consiste à utiliser l'Admin API de FileMaker Server. Plus fiable. https://help.claris.com/fr/admin-api-guide/ https://VOTRE_SERVEUR/fmi/admin/apidoc/#operation/clients
    2 points
  3. La deuxième méthode proposée par @David Julot est beaucoup plus fiable, mais attention : gros risque de sécurité : il faudra malheureusement stocker le mot de passe de la console d'admin quelque part. Il faut donc faire très attention. En dehors de toutes les méthodes pour empêcher un compte sans accès intégral d'accéder à ce mot de passe, je préconiserais de développer ce mécanisme dans un système séparé : soit dans un autre fichier FileMaker encrypté, mais de préférence dans un web service totalement séparé.
    1 point
  4. Bonjour, Je vous propose deux exemples de scripts et la base d'exemple jointe. Premier script : Gestion erreurs [ Oui ] # Définir variable [ $jsonContacts ; Valeur: "" ] Définir variable [ $nbContacts ; Valeur: Decompte ( Contacts::uuid ) ] Si [ $nbContacts > 0 ] Activer enregistrements liés [ Afficher uniquement les enregistrements liés ; De la table : “Contacts” ; Utilisation du modèle : “Contacts” (Contacts) ] Boucle Fin de boucle si [ Definir ( $i = $i + 1 ; $i > $nbContacts ) ] Afficher enreg/requête/page [ Avec boîte de dialogue: Non ; $i ] Définir variable [ $jsonContacts ; Valeur: JSONSetElement ( $jsonContacts ; [ "[" & $i - 1 & "].civilite" ; Contacts::Civilite ; JSONString ] ; [ "[" & $i - 1 & "].nom" ; Contacts::Nom ; JSONString ] ; [ "[" & $i - 1 & "].prenom" ; Contacts::Prenom ; JSONString ] ) ] Fin de boucle Activer modèle [ modèle d'origine ; Animation: Aucune ] Fin de si Définir variable [ $jsonSociete ; Valeur: JSONSetElement ( "" ; [ "societe" ; Societes::Societe ; JSONString ] ; [ "adresse" ; Societes::Adresse ; JSONString ] ; [ "code_postal" ; Societes::CodePostal ; JSONString ] ; [ "ville" ; Societes::Ville ; JSONString ] ; [ "contacts" ; $jsonCon… ] Définir rubrique [ Societes::résultat_JSON ; $jsonSociete ] Fin de script [ Résultat de texte: ] Deuxième script : Gestion erreurs [ Oui ] # Définir variable [ $jsonContacts ; Valeur: "" ] Définir variable [ $contacts.liste ; Valeur: ExecuterSQL ( "SELECT Civilite, Nom, Prenom " & "FROM Contacts " & "WHERE uuidSociete =? " ; "" ; "" ; Societes::uuid ) ] Définir variable [ $contacts.nb ; Valeur: DecompteValeurs ( $contacts.liste ) ] Boucle Fin de boucle si [ Definir ( $i = $i + 1 ; $i > $contacts.nb ) ] Définir variable [ $contacts.donnees ; Valeur: ObtenirValeur ( $contacts.liste ; $i ) ] Définir variable [ $contacts.donnees ; Valeur: Substituer ( $contacts.donnees ; "," ; ¶ ) ] Définir variable [ $jsonContacts ; Valeur: JSONSetElement ( $jsonContacts ; [ "[" & $i - 1 & "].civilite" ; ObtenirValeur ( $contacts.donnees ; 1 ) ; JSONString ] ; [ "[" & $i - 1 & "].nom" ; ObtenirValeur ( $contacts.donnees ; 2 ) ; JSONString ] ; [ "[" & $i - 1 & "].prenom" ; ObtenirValeu… ] Fin de boucle Définir variable [ $jsonSociete ; Valeur: JSONSetElement ( "" ; [ "societe" ; Societes::Societe ; JSONString ] ; [ "adresse" ; Societes::Adresse ; JSONString ] ; [ "code_postal" ; Societes::CodePostal ; JSONString ] ; [ "ville" ; Societes::Ville ; JSONString ] ; [ "contacts" ; $jsonCon… ] Définir rubrique [ Societes::résultat_JSON ; $jsonSociete ] Fin de script [ Résultat de texte: ] Et la base exemple : Exemple tableau JSON.fmp12
    1 point
×
×
  • Create New...