Jump to content
  • 0

Gérer Les Sources Externes Par Calcul


Agnès
 Share

Question

Bonjour,

 

A priori il n'est pas possible de "Gérer les Sources de données externes" via une variable calculée

 

Avez vous trouvé une solution pour le faire ? via Applescript, script, Plug'in ?

 

Si oui, vous pouvez le partager ?

J'aimerais bien calculer mes références de fichiers

 

Merci d'avance

 

Agnès

Link to comment
Share on other sites

Recommended Posts

  • 0

Coucou,

 

A la différence des références de chemin de fichiers/images, les sources de données qui concernent donc des sources FileMaker ou ODBC ont un impact structurel ( Occurrences de tables notamment par exemple ) sur le fichier. Elles ne peuvent donc pas être restituées par calcul, elles font partie intégrante du fichier.

 

Peut-être la séparation Data/Interface pourrait t'aider. FileMaker examine chaque référence stockée pour restituer la première trouvée. Si tu parviens à coupler ce premier circuit d'évaluation interne de FileMaker à une authentification ( zone Accès au fichier ), on pourrait imaginer un système qui désactive/active les accès vers ces autres sources selon l'utilisateur référencé, au lancement de l'application. Par voie de conséquence, tu pourrais alors re-diriger les utilisateurs vers leur propres fichiers, si cela est ton objectif. Cela suppose j'imagine un accès depuis une espèce de portail de connexion, qui conduira cette opération en amont de l'authentification sur ton fichier Interface.

 

Tout dépend de ce que tu cherches à faire.

 

[Edit: ce que je propose n'est pas fonctionnel dans la mesure où les sources de données ne sont pas associées au privilège]

Edited by Ugo
Link to comment
Share on other sites

  • 0

Hello,

 

Je cherche à faire.... oui, je cherche :)

 

En bref, j'ai 1 fichier X, dedans, entre autres, la biblio de script, de Paramètres externes, de FP,

 

Ce fichier X pilote n FichiersClients, il est masqué et "invisible" mais présent.

 

Dans mon Dossier, on retrouve

 

FichierX

FichierA

FichierB

FichierC

FichierD

FichierEtc.

 

tous les fichiers sont "pilotés" par ce fichierX

Je cherche juste à lui dire, là j'ai ouvert FichierB, donc le ExecuterSousScript_AutreFichier doit jouer un script de B, et si je passe au FichierA, il doit jouer les scripts de A

 

Malheureusement, mon expérience s'arrête (un peu) là puisque je ne peux lui dire

"exécuter le script du FichierA ou FichierB par calcul.... il à effectivement besoin de la référence au fichier... en dur :(

Et je ne peux mettre une liste de fichier en référence, car ils peuvent être tous ouvert sur le même serveur, et en même temps

 

Pour le moment je ne peux que faire un script à rallonge avec des Si qui m'agacent

Si

FichierA

ExecuterScript - Ref FichierA

Sinon Si Fichier B

ExecuterScript - Ref FichierB

 

En attendant enfin le SélectionnerFichier en pas de Script

 

Me va pas ;)

 

Je vais trouver une autre chose à tenter ;)

 

Merci à Toi, je vais relire et regarder ce qui est imaginable

 

Agnès

Link to comment
Share on other sites

  • 0

Ok ok ok :)

 

Merci dis donc ;)

 

En fait, ce qui est envisageable, c'est en sens inverse je crois

 

FichierA B C exécutent les scripts de FichierX, tout le modulable du script est dans fichier X et seul les lignes type DefinirRubrique ou ActiverModele ( propres à chaque fichiers )

ça va faire de la gym mais c'est jouable :)

 

Top :)

 

exemple histoire de :

 

-ControleAutorisation

-ControleX

-ScriptTraitementDivers

-Calcul variable et parametre

  -

--

---

--

*DefinirRubrique[Calc]

-ScriptTraitementDivers

  -

--

---

--

*ActiverModele[Calc]

-ScriptTraitementDivers

  -

--

---

--

 

tous les pas de script sans * vont être dans fichierX et remplacé dans fichierABC par ExecuterScript FichierX

 

Bref.... je file voir si c'est imaginable...  faisable et exploitable ;)

Link to comment
Share on other sites

  • 0

J'ai vu un gars faire ça de manière totalement géniale, ça a un potentiel dingue.

Il utilise pour cela des dsn (odbc) et se sert de Exécuter SQL (le pas de script)

Ça ne s'arrête pas à scotcher d'une instance à l'autre d'un même table dans différents fichiers, il peut carrément changer de table à tout moment (sa TO peut représenter tantôt une table, tantôt une autre). Délirant !

Link to comment
Share on other sites

  • 0

euh.... là, comme ça.... ton post s’arrête là, ... comme ça, là...... euh :rolleyes:

 

ok, tu connais aussi celui qui a trouvé comment écrire les scripts à la volée, sans forcément que le fichier soit sur serveur ni avec internet ?

Link to comment
Share on other sites

  • 0

Ok,

 

De plus, à moins que ceci ait évolué, je pense que ma proposition n'était pas valable puisque FileMaker doit rechercher toutes les sources de données accessibles, sans liaison au privilège. Donc te proposera nécessairement une authentification sur le premier fichier trouvé si l'authentification du fichier X n'est pas accessible sur le fichier A.

Link to comment
Share on other sites

  • 0

En fait, ce qui est envisageable, c'est en sens inverse je crois

 

tous les pas de script sans * vont être dans fichierX et remplacé dans fichierABC par ExecuterScript FichierX

 

 

Peut-etre, pour moi ça dépend où se trouve la Logique. Visiblement elle est dans A, B ou C

Link to comment
Share on other sites

  • 0

Bonjour,

 

fmp : // [[account:password@]netaddress]/databasename[?script=scriptname[&param=scriptparameter][&$variablename=value ]]

 

Ça ne ferait pas l'affaire ? 

Link to comment
Share on other sites

  • 0

Hello,

 

Oui la logique est dans A B C

Ma logique est surtout, comment faire pour externaliser mes scripts sans entrer dans une galère sans nom.

 

Merci Vincent pour ta piste, j'ai beau le lire dans tout les sens mais ça ne me parle pas du tout, je veux bien que tu en développes l'idée et surtout le résultat que cela peut donner

 

Merci

 

Agnès

Link to comment
Share on other sites

  • 0

Bonjour Agnès,

 

Pour le résultat, voici 4 fichiers en PJ nommés Fichier X, Fichier A... :bien:

 

Le principe est de remplacer le "Perform Script" par "Open URL".

Le schéma URL permet d'ouvrir un fichier même local (depuis la version 13v2) et de lui faire jouer un script, d'y ajouter un paramètre et d'y rajouter des variables. Du coup tu peux "construire" les URL dynamiquement pour jouer les scripts sur les fichiers définis eux aussi dynamiquement.

 

Pour plus d'info sur le schéma URL voici deux liens :

 

Vincent

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Fichiers XABC.zip

Link to comment
Share on other sites

  • 0

Ohlalala :) je m'emballe pas je m'emballe pas je m'.... je m'emballe complet ;)

 

C'est Vincent y gagne :):)

 

Bon, je sais que je suis passée à coté de SQL et de openUrl, mais je vais le rattraper mon retard, grave :)

 

Aucun besoin de reférence au fichier, c'est plus que top...

 

Grand merci d'avoir pris le temps de l'exemple et des liens

 

Agnès

Link to comment
Share on other sites

  • 0

ok ok :)

 

premier essai en remaniant tes fichiers, top top, le bouton est dans A, il lance le script qui lui dit d'aller dans X et qui revient dans A, résultat top

2eme, ouverture via Go, marche nickel

 

Je cherche a tester pour une première le Web direct ;)

 

A priori le nom des scripts devient calculables et là c'est une belle cerise ( que les fouines et les oiseaux se régalent dans mon jardin !!! )

 

Ou est le loup ????

 

Qui s'en sert déjà comme script unique pour tous les boutons d'une appli pour ensuite éxecuter tel ou tel script dynamiquement ??

Link to comment
Share on other sites

  • 0

 

 

Merci Vincent !

Je trouve le topic d'iSolutions bien plus parlant que l'aide FileMaker....

Et je ne conaissais pas l'usage du $.

Link to comment
Share on other sites

  • 0

Bonjour à tous :)

Géniale la solution avec la fonction "Ouvrir URL" !!! :bien: (merci Vincent)

Perso, dans un ancien projet (Fmp 9 si mes souvenirs sont bons), j'avais trouvé une solution en utilisant les alias et AppleScript (environnement Mac "only" donc).

L'idée était de n'utiliser qu'un seul chemin d'accès en dur, pointant vers un alias générique, pour tous les fichiers externes, disposés dans des sous-dossiers, un peu dans ce style :



alias_generique.fp7/contacts/    alias_generique.fp7    contacts.fp7/organisations/    alias_generique.fp7    organisations.fp7/taches/    alias_generique.fp7    taches.fp7

Donc, à l'intérieur de chaque sous-dossier (ici "contacts", "organisations" et "taches") il y a le fichier Fmp externe original à ouvrir puis un alias de ce même fichier qui a été renommé avec le nom de l'alias générique figurant à la racine du dossier des fichiers externes.

 

Un petit script AppleScript se chargeait donc de dupliquer l'alias "alias_generique.fp7", correspondant au fichier externe à ouvrir, à la racine du dossier des fichiers externes en écrasant par la même le précédent fichier "alias_generique.fp7" qui y figurait.

 

Le script Fmp ouvrait toujours l'alias générique situé à la racine du dossier des fichiers externes, mais celui-ci pointait vers un fichier Fmp original différent suivant celui qu'on souhaitait ouvrir.

 

Une petite table dans la base Fmp me permettait de stocker les noms et chemins d'accès de chaque fichier externe et de son alias associé.

 

Bon, je l'avoue, c'est un peu usine à gaz et cela demande un travail de préparation qui peut s'avérer fastidieux, surtout pour un grand nombre de fichiers externes (j'avais même conçu un petit script AS pour générer les alias "alias_generique.fp7" de chaque fichier de manière automatique), mais bon, au final, ça fonctionnait plutôt bien ! :bien:

 

La piste proposée par Vincent me paraît du coup magique à côté de ces solutions pour le moins acrobatiques qu'on était obligé de chercher...

 

:)

Link to comment
Share on other sites

  • 0

Dites, à priori OpenURL existe depuis la v6....

Il n'y a pas énormément de doc dessus, ni de post

Je m'en suis toujours uniquement servi pour afficher une page Web :blush:

 

 

Elle a changé ?

 

Est elle capable de lancer un pas de script, Façon

FMP :/ /~/databasename ? script=scriptnamed & param=hello& ScriptStep = SetFieldByName

 

Je peux rèver ?

Mais déjà que je puisse lancer un script par son nom c'est du bonheur

Je vais en refaire ma base tiens ;)

Link to comment
Share on other sites

  • 0

Bonjour,

 

Bien vu Vincent, comme quoi tous les chemins mènent à Rome, j'avais utilisé les prémices en 11/Go pour un scanner avec le protocole fp7script mais c'est vrai que c'est bien plus dynamique désormais.

Il faudrait tout de même un jour que je bazarde ma version 11 et que j'active la 13 pour voir ;)

Link to comment
Share on other sites

  • 0

Il faudrait tout de même un jour que je bazarde ma version 11 et que j'active la 13 pour voir ;)

 

Clair ;) jette la 11 ;)

 

Dites,

(...)ScriptName=Dialogue&Param=MonParametre (...)

 

Si MonParametre contient le signe = le parametre n'est pas transmis, comment y remedier ( autre que par un remplacement lors du passage et un remplacement à l'arrivée ?

Comment avoir la liste des caractères que l'on va dire interdit ?

faut il quotter les parametre ?

 

Merci

 

Agnès

Link to comment
Share on other sites

  • 0

RÔôhhhh

 

J'arrête ma base :bye:

 

t'as raison !

 

mais OpenUrl, ça m'ouvre un horizon ( je te laisse voir Google ;) )

Link to comment
Share on other sites

  • 0

De mon côté j'ai toujours un lanceur en FM11 que j'utilise avec ce protocole ( fmp7 : // ). C'est bien pratique pour lancer des fichiers à partir d'une liste, avec des utilisateurs/mots de passe différents, pour faire des tests et du débogage.

 

@Agnès

Tu peux quand même passer paramètres et variables, relancer d'autres scripts de l'autre côté, (je viens de voir ton dernier post), oui les caractères interdits... ! 

Link to comment
Share on other sites

  • 0

Agnès,

Dans une URL, les paramètres n'ont pas besoin d'être "quotés". Par contre il faut protéger au moins le & et le = puisqu'ils sont utilisés dans la syntaxe. L'encodage URL de ces caractères est donc indispensable.

Link to comment
Share on other sites

  • 0

c'est ce que j'ai cru comprendre, à priori les espaces sont bien restitués mais le = bloque, je vais regarder les caractères interdits sauf si tu / vous me confirmez qu'il y a juste le & et le = !

 

Merci Tous !!

 

M'en fiche, je vais refaire ma base de données, va être une bombe ;)

Link to comment
Share on other sites

  • 0

Certainement, c'est ce que je me suis dit tout à l'heure, et je suis direct partie faire un tour sur ton site

Et je ne l'ai pas vue ( mais j'en ai regardé d'autres ;) )

Tu as changé de voix entre la 11 et la 13, très rigolo :)

 

Tu peux m'aiguiller et me diriger sur celle qui traite de OpenUrl ?

 

Merci !

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...