Aller au contenu


Photo
- - - - -

Script Pour Modifier Uniquement L'enregistrement Courant?


  • Please log in to reply
10 réponses à ce sujet

#1 Alain38

Alain38
  • Membres
  • 6 messages
  • Genre :Homme
  • Lieu :Grenoble


Posté 23 juin 2012 - 22:44

Bonjour,
bénévole dans une association nationale je suis en train de découvrir FileMaker car c'est ce logiciel qui est utilisé au siège. Comme je fais parti des rares informaticiens de l'association je me suis porté volontaire pour tenter d'aider à l'amélioration de la gestion en créant des scripts, des tables liées, etc. Et donc, mon premier challenge est d'arriver à leur faire un petit script qui permette, lors ce qu'on crée un enregistrement correspondant à un nouvel adhérent, de lui générer un identifiant et un mot de passe pour l'accès à notre site Internet et à nos autres services.

Pour cela j'ai donc besoin de créer un petit script avec les contraintes suivantes:
- ce script ne doit s'appliquer que sur l'enregistrement actif (qui sera en mode formulaire) et surtout pas sur les autres,
- comme je travaille chez moi, et non au siège, sur une base test à moi, donc avec un nom de base différent de celui utilisé par le siège, le script doit être indépendant du nom de la base, ou du moins facile à reprendre.

Malheureusement pour moi il apparait que pour une personne qui découvre FileMaker, leur système de script soit du genre ultra-complexe. Donc j'aurais besoin d'aide pour savoir quelles commandes je dois utiliser pour arriver à mes fins. Aussi, si une bonne âme pouvait me donner la liste des commandes pour que mon traitement (que j'écrirai moi-même) puisse se limiter au seul enregistrement actif, je suis serai très reconnaissant.

Merci d'avance.

#2 fabriceN

fabriceN
  • Membres
  • PipPipPipPipPipPipPipPipPip
  • 6 212 messages
  • Genre :Homme
  • Lieu :France/Belgique
  • FM Conférence : Lyon 2007, Nice 2008, Paris 2009, Paris 2010, La Rochelle 2011, Toulouse 2012
  • FM : FMPA 9,10,11,12 / FMSA12
  • OS : OSX.6, Win7


Posté 23 juin 2012 - 22:58

Ton message est magnifiquement représentatif de la difficulté qu'éprouvent les informaticiens de formation à appréhender la simplicité de FileMaker.
En FM, c'est le contexte qui détermine le scope. Seul l'enregistrement courant (et ses enregistrements liés) peut être modifié. Tu n'as pas besoin d'adresser un Record particulier, un script modifiant une donnée le fera forcément sur l'enregistrement courant.
Fabrice Nordmann
Développeur FileMaker Certifié 8, 9, 10, 11, 12

Image IPB


Toute une gamme de services conçus spécialement pour les utilisateurs et développeurs FileMaker.

Hébergement FileMaker, optez pour un débit illimité et des prix sur mesure, adaptés à vos usages.
QuickExpertise, quand le forum ne suffit plus : ne perdez plus des heures sur un problème !
Coaching, une aide régulière pour vous permettre d'avancer dans votre projet.
1-more-tube, le premier (et seul ?) magazine vidéo en Français sur FileMaker.

mes fonctions perso sur FMfunctions.com

#3 Alain38

Alain38
  • Membres
  • 6 messages
  • Genre :Homme
  • Lieu :Grenoble


Posté 24 juin 2012 - 08:07

Ca c'est ce que je supposais. Mais alors c'est que je n'ai pas utilisé la bonne fonction de script pour affecter une valeur à mon champ "password". Parce que cela a modifié la valeur "password" de mes 3000 enregistrements. Il faut bien avouer que mes recherches sur Internet ne m'ont pas permis de trouver un seul site expliquant clairement les fonctionnalités de script. Soit c'est du Wiki, et donc on ne peut y trouver que ce qu'on sait qui existe, soit c'est du succint et peu clair. Donc je vais corriger ma demande en:
"c'est quoi la fonction pour ne modifier que la valeur de la rubrique du champ courant, et ne pas toucher au 2999 autres enregistrements?".

Pour ce qui est de la "simplicité d'utilisation" je vais éviter ce débat, qui risquerait de nous mener loin. ;-)

Merci en tous cas pour cette première réponse.

#4 Bruno S.

Bruno S.
  • Membres
  • PipPipPipPipPipPip
  • 1 127 messages
  • Genre :Homme
  • Lieu :Paris
  • FM : FMP 11 Adv., 12 Adv.
  • OS : X.10.7


Posté 24 juin 2012 - 08:52

Bonjour,

Le mieux est que tu nous détaille le script que tu as écrit.
A priori, sans script en boucle, le seul moyen de modifier toutes les enregistrement est un Remplacer par, qu'il ne faut donc pas utiliser dans ton cas.
A moins que la rubrique en cause soit une rubrique globale.

Pour modifier 1 enregistrement :

Activer modèle concerné
DéfinirRubrique (tartrique ; ton calcul)
Valider enregistrement

Et c'est tout. Ceci dit il faut voir le contexte.

#5 michel

michel
  • Membres
  • PipPipPipPipPipPipPip
  • 2 134 messages
  • Genre :Homme
  • Lieu :Lyon France
  • FM Conférence : Honfleur 2005, Poitiers 2006, Lyon 2007, Nice 2008, Paris 2010, Toulouse 2012
  • FM : FMP-5 à 12A, FMS-6 à 12A, FmGo
  • OS : OSX 10.6.8 , iOs5


Posté 24 juin 2012 - 12:10

Bonjour,

Sous réserve de bien comprendre, je vois deux pistes.

1) Un seul et même script sert à créer un nouvel adhérent et en profite pour créer un identifiant et mot de passe. On n'a pas de problème de choix de la fiche puisque de facto c'est celle qu'on est en train de créer.

2) On applique le script à une fiche créée. Par sécurité on peut commencer le script en isolant la fiche.
Tout sélectionner
Ignorer fiche
Activer fiches ignorées.


Pour infos FileMaker :
https://fmdev.filemaker.com
http://www.cqfd-fmp.fr/
http://www.librairie-filemaker.com
http://www.leblogfm.fr
http://blog.fmp-formation.com
Michel Lansard
MacBookPro - FMP 1 à FMP12 Advanced - 24 ans de Fmp
Editomac - FBA + FTN + Trainer
Conseil, développement, formation, soutien à distance,
ebooks, cahiers pratiques et fiches astuces FileMaker,...
Editomac
Blog Fmp
Librairie FileMaker

#6 T.O.

T.O.
  • Membres
  • PipPipPipPipPipPip
  • 854 messages
  • Genre :Homme
  • Lieu :Mons, Belgium
  • Intérêts :0% !!!
  • FM Conférence : Honfleur 2005, Poitiers 2006, Paris 2009, Toulouse 2012
  • FM : Fmp11-12 & FM13, version night
  • OS : Mac OSX 5/6/7 # W7


Posté 24 juin 2012 - 12:55

Et donc, mon premier challenge est d'arriver à leur faire un petit script qui permette, lors ce qu'on crée un enregistrement correspondant à un nouvel adhérent, de lui générer un identifiant et un mot de passe pour l'accès à notre site Internet et à nos autres services.


A la lecture de ce qui précède, une solution ultra simple est possible.
Dans FileMaker lors de la création d'un enregistrement, certaines rubriques de ce dernier peuvent être remplies de data par défaut (date de création, constante fixe,... ou le résultat d'un calcul).
Il n'est donc pas nécessaire d'éditer un script pour cela. Le script serait nécessaire s'il fallait appliquer ce traitement à posteriori, sur des enregistrements existants ou dans une table enfant, liée. Et même dans ce cas, il est possible de s'en affranchir.

Je conseille donc de jeter un oeil sur la création d'une rubrique ( dans ton cas: mot de passe, identifiant ) et les options associées.
Exemple:
Si par défaut, la Rubrique "identifiant"= email du membre
Définir une rubrique 'identifiant' comme du texte.
Cliquer sur options
Choisir l'onglet " Entreé automatique "
Cocher résultat de calcul
Dans la fenêtre de calcul, faire le calcul nécessaire. Dans notre cas, sélectionner la rubrique email
Valider
Décocher la case " Ne pas remplacer......"

Voilu ! du moins si cette approche est suffisante pour tes besoins ! on se base ici sur la table des adhérents.

Bon dimanche

théo
"Never walk alone..."
Théo MUNDELE,
Filemaker Developper
MCS Consulting Services
mcsconsulting.skype

#7 Alain38

Alain38
  • Membres
  • 6 messages
  • Genre :Homme
  • Lieu :Grenoble


Posté 24 juin 2012 - 15:08

Bonjour,

Le mieux est que tu nous détaille le script que tu as écrit.
A priori, sans script en boucle, le seul moyen de modifier toutes les enregistrement est un Remplacer par, qu'il ne faut donc pas utiliser dans ton cas.
A moins que la rubrique en cause soit une rubrique globale.

Pour modifier 1 enregistrement :

Activer modèle concerné
DéfinirRubrique (tartrique ; ton calcul)
Valider enregistrement

Et c'est tout. Ceci dit il faut voir le contexte.


Merci. C'était effectivement le fait que j'avais utiliser un "remplacer rubrique" plutôt qu'un "définir rubrique". Là cela semble mieux marcher.

#8 Alain38

Alain38
  • Membres
  • 6 messages
  • Genre :Homme
  • Lieu :Grenoble


Posté 24 juin 2012 - 15:10

A la lecture de ce qui précède, une solution ultra simple est possible.
Dans FileMaker lors de la création d'un enregistrement, certaines rubriques de ce dernier peuvent être remplies de data par défaut (date de création, constante fixe,... ou le résultat d'un calcul).
Il n'est donc pas nécessaire d'éditer un script pour cela. Le script serait nécessaire s'il fallait appliquer ce traitement à posteriori, sur des enregistrements existants ou dans une table enfant, liée. Et même dans ce cas, il est possible de s'en affranchir.

Je conseille donc de jeter un oeil sur la création d'une rubrique ( dans ton cas: mot de passe, identifiant ) et les options associées.
Exemple:
Si par défaut, la Rubrique "identifiant"= email du membre
Définir une rubrique 'identifiant' comme du texte.
Cliquer sur options
Choisir l'onglet " Entreé automatique "
Cocher résultat de calcul
Dans la fenêtre de calcul, faire le calcul nécessaire. Dans notre cas, sélectionner la rubrique email
Valider
Décocher la case " Ne pas remplacer......"

Voilu ! du moins si cette approche est suffisante pour tes besoins ! on se base ici sur la table des adhérents.

Bon dimanche

théo


Merci pour la suggestion. Mais comme la formule est un peu complexe pour créer les identifiants (afin d'être sur que deux personnes n'ont pas la même) et les mots de passe, les calculs à effectuer se font difficilement en une seule ligne. Donc je vais continuer sur l'option "script".

#9 Alain38

Alain38
  • Membres
  • 6 messages
  • Genre :Homme
  • Lieu :Grenoble


Posté 24 juin 2012 - 16:32

Bon,
cela mériterait peut-être un fil différent, mais comme c'est à propos du même script je la pose en continuation de celui-là. En effet je progresse à grands pas mais là j'affronte un petit problème de gestion de fenêtres d'alerte. J'ai défini ma rubrique "username" comme ne devant pas contenir de doublons, et je vais la remplir en automatique en utilisant le nom et le prénom de la personne pour créer l'identifiant. Voici donc le code que j'ai écrit pour cette portion du script:
Gestion erreurs[non]
Boucle
    Définir Variable [$ident; <ma formule>]
    Définir Rubrique [username; $ident]
    Valider enr./req. [sans fenêtre]
    Fin de boucle si [Obtenir(DernièreErreur) = 0]
    ...
Fin de boucle

Avec le "gestion erreurs [non]" j'espérais qu'à la validation de l'enregistrement (demandé "sans fenêtre" pour la même raison) je n'aurais pas la fenêtre me signalant un problème mais que je continuerais directement la boucle. Sauf que cela n'a pas marché. Non seulement j'ai eu une fenêtre "voulez vous accepter le doublon?" mais en plus j'ai eu une fenêtre "voulez-vous continuer le scripts?".

Ai-je un moyen de me débarasser de ces deux fenêtres parasite?

Merci d'avance.

#10 T.O.

T.O.
  • Membres
  • PipPipPipPipPipPip
  • 854 messages
  • Genre :Homme
  • Lieu :Mons, Belgium
  • Intérêts :0% !!!
  • FM Conférence : Honfleur 2005, Poitiers 2006, Paris 2009, Toulouse 2012
  • FM : Fmp11-12 & FM13, version night
  • OS : Mac OSX 5/6/7 # W7


Posté 24 juin 2012 - 18:02

Gestion erreurs[non]
Gestion erreurs[oui] -------> on dit à Filemaker que c'est nous qui gérons les erreurs !!!
Boucle
Définir Variable [$ident; <ma formule>]
Définir Rubrique [username; $ident]
Valider enr./req. [sans fenêtre]
Fin de boucle si [Obtenir(DernièreErreur) = 0]
...
Fin de boucle
[/CODE]



"Never walk alone..."
Théo MUNDELE,
Filemaker Developper
MCS Consulting Services
mcsconsulting.skype

#11 Alain38

Alain38
  • Membres
  • 6 messages
  • Genre :Homme
  • Lieu :Grenoble


Posté 24 juin 2012 - 18:05

OK. Merci. J'avais compris à l'envers donc. Effectivement là cela marche nettement mieux. Je vais donc pouvoir envoyer mon travail à Paris pour que le siège teste tout cela...