Notre solution de catalogue d’exposition pour iPad sélectionnée en tant que solution de démonstration FileMaker iOS
Plus d’information sur la solution ici.

Notre solution de catalogue d’exposition pour iPad sélectionnée en tant que solution de démonstration FileMaker iOS
Plus d’information sur la solution ici.

Que d’énergie pour monter une exposition ! Trouver le lieu, gérer la logistique, les invitations, organiser le vernissage, la couverture presse, les produits dérivés… on en arriverait à oublier un facteur clef : le catalogue et le rôle qu’il tient dans le succès commercial de l’exposition.
En 2012 à Bâle, Suisse, se tenait l’exposition Beauty in Bitterness. Des photographies de Jean Nordmann prises au cours de missions humanitaires du CICR auxquelles il participait.

Les visiteurs pouvaient commander des photographies avec ou sans support, et à des prix variant selon différents critères qu’il eût été difficile d’expliquer sur un catalogue papier. De plus, la commande d’un tirage via un formulaire papier n’est pas spécialement agréable : le visiteur doit retenir le numéro de la photographie, puis cocher les différentes options… et laisser ses coordonnées, si possible avec une écriture lisible, et sans confidentialité.
Avec un catalogue sur iPad tel que nous l’avons conçu, le visiteur peut au contraire consulter les œuvres à tout moment, lires les informations dans sa langue, et sélectionner facilement et de manière ludique ce qu’il souhaite commander, ajouter ou retirer un exemplaire, modifier les options, et passer commande facilement…

L’application Beauty in Bitterness a été sélectionnée par FileMaker Inc. en tant que Solution de démonstration iOS, comme illustration du rôle que FileMaker Go peut jouer dans votre activité.
Vous pouvez télécharger la solution depuis le site de FileMaker.
Beauty in Bitterness requiert un iPad ainsi que FileMaker Go, disponible gratuitement sur l’App Store

L’expérience de la formation FileMaker m’a entre autre appris que parmi les nombreuses fonctions de calcul de FileMaker, il en est une qu’il est toujours difficile d’expliquer à une personne n’ayant pas de notions de programmation orientée objet.
Apparue avec la version 9 de FileMaker, la fonction Contenu (Self en anglais), est classée dans les fonctions logiques. C’est une fonction tellement particulière qu’elle a droit à un message d’erreur particulier quand vous l’utilisez dans certaines formules. Toutes les autres fonctions de calcul peuvent être utilisées dans n’importe quelle formule, mais pas celle-ci. Dans la plupart des cas, un message apparaît vous indiquant que vous ne pouvez utiliser cette fonction.

De plus, elle ne prend pas de paramètre, ce qui est assez rare (mais pas unique ! Alea par exemple n’en prend pas non plus)
Au caractère abstrait de cette fonction s’ajoute pour les francophones une difficulté de traduction. Self veut dire “soi-même”, mais on peut en Anglais parler du self d’un tiers (c’est d’ailleurs un concept de psychanalyse inventé par Winnicott).
Plus loin dans l’Histoire de la psychanalyse, Freud parlait du “Moi” (concept très différent mais autre traduction possible de la fonction de calcul – juste pour redescendre un peu. Entre parenthèses le “Moi” freudien est déjà une traduction très controversée de “Ich”, qui signifie littéralement “Je”, qui pour le coup serait une traduction inappropriée de la fonction)
Beaucoup de détours me direz-vous ? Pas tant que ça je crois. Car ces différents concepts (que je ne détaille pas ici mais que rien ne vous empêche d’explorer en suivant les liens) permettent d’approcher la fonction Contenu et ses évolutions. Car oui, vous avez bien lu, à cette complexité conceptuelle s’ajoutent les évolutions de cette fonction, qui est devenu beaucoup plus puissante au fil des versions.
Telle qu’apparue avec FileMaker 9, on peut dire que la traduction française (Contenu) était plus pertinente que la VO (Self). En effet, la fonctionnalité se résumait à peu de chose.
Il n’était alors possible d’utiliser cette fonction que dans deux situations :
Je vous passe le détail de deux bugs qui m’avaient fort énervé (et qui n’ont pas été réglés avec les mises à jour de FileMaker 9 mais seulement en FileMaker 10), mais en gros ils rendaient l’utilisation de Contenu impossible, et dans bien des cas celle du formatage conditionnel également. (Pour les historiens que ça intéresse vraiment, je suis prêt à développer mais le simple fait d’évoquer ces bugs titille mon ulcère)
Donc, si tout avait bien marché, qu’aurions-nous pu faire avec ça dès la version 9 ?
Pour comprendre ces utilisations, il faut se demander qui exécute le calcul, ou plutôt qui demande à l’exécuter. Dans le cas de l’auto-entrée, c’est la rubrique qui demande l’évaluation de la formule afin de définir son propre résultat, Contenu retourne donc le contenu de la rubrique avant l’évaluation du calcul. (Si la rubrique contient 1, alors Contenu + 1 = 2). De même, si l’objet de modèle contient la date du jour (indépendamment de la nature de cet objet, un symbole de modèle, une rubrique de fusion, une rubrique classique…), la formule ObtenirDate ( Contenu )) > Dossier ::dateLimite permettra de formater l’objet si la date limite du dossier est dépassée.
Note : il ne faut pas confondre Contenu et Obtenir ( ContenuRubriqueActive ). Cette dernière fonction renvoie exclusivement le contenu de la rubrique dans laquelle est le curseur, il n’y a pas d’auto-référence induite dans cette fonction.
Avec FileMaker 10, outre le fait que les deux principaux bugs (ceux de l’ulcère) ont été réglés, la fonction a gagné en puissance. Sa traduction (Contenu) est devenue désuète, même si elle n’a pas changé pour ne pas dérouter les quelques utilisateurs qui ne l’étaient pas encore.
Self est désormais porteuse de deux pointeurs. L’un au contenu, comme avant, et l’autre à la rubrique en tant qu’élément de structure de la base de données. (Si vous n’avez rien compris à cette phrase, c’est normal. Moi-même, je ne suis pas très sûr… mais nous sommes en psychanalyse, souvenez-vous…)
Il faut ici rappeler que FileMaker 10 a également apporté deux fonctionnalités majeures et complémentaires : Définir Rubrique par nom (action de script), et ObtenirNomRubrique (fonction de calcul). Vous trouverez de nombreux exemples d’utilisation dans cet excellent article.
Or, si l’on s’amuse à créer une fonction personnalisée (FileMaker Pro Advanced requis) telle que Moi ( _parametre ), avec la formule suivante : ObtenirNomRubrique ( _parametre ), et que l’on utilise cette fonction dans la formule d’un calcul auto-entré d’une rubrique :
Moi ( Contenu )
Que croyez-vous qu’on obtiendra ?
La logique vue précédemment voudrait que Contenu pointe vers le contenu de la rubrique, et le transmette à la fonction qui, essayant d’extraire un nom de rubrique à partir d’un paramètre n’ayant rien à voir avec un nom de rubrique, retournerait un beau point d’interrogation.
Concrètement, si une rubrique MaTable ::MaRubrique contient
“Ça va ? vous suivez toujours ?”
et que la formule d’auto-entrée est
Moi ( Contenu )
on aurait pu penser, puisque la fonction s’appelle contenu, que la fonction Moi évaluerait le calcul :
ObtenirNomRubrique ( “Ça va ? vous suivez toujours ?” )
et qu’elle n’aurait pas su répondre à cette question, car il n’existe pas de rubrique de ce nom.
Or -c’est là que ça devient subtil- le résultat de la fonction sera bien :
MaTable ::MaRubrique
En utilisant la fonction Contenu comme paramètre de la fonction personnalisée, on envoie en fait deux informations de natures différentes : le contenu de la rubrique et l’identité de la rubrique. Selon le traitement effectué ensuite par la fonction personnalisée, l’une ou l’autre de ces informations sera traitée.
En réalité, c’est la fonction ObtenirNomRubrique qui est ici “magique” puisqu’elle traite une autre information que celle qu’on croyait passer. Mais il est remarquable que Self puisse passer cette information.
Un petit saut dans le futur, ou plutôt dans mes rêves (c’est une expression, il serait curieux de commencer un article en parlant de psychanalyse et de le terminer en rêvant de FileMaker 13 !)
Self est donc capable de représenter des entités différentes (une rubrique, un objet de modèle), et de référencer des informations de natures différentes (une valeur, un élément de structure de la base de données). Autrement dit cette fonction a de sérieux atouts qui pourraient régler des problèmes que nous rencontrons quand nous développons nos solutions FileMaker.
C’est tout pour aujourd’hui, notre séance s’arrête là. Ça n’est pas remboursé. 🙂

Voici une très courte vidéo qui répond à une question fréquemment posée sur les forums FileMaker.
La problématique est :
“J’ai un calcul que je voudrais utiliser comme critère d’un lien, mais le lien ne fonctionne pas car le calcul est non mémorisé.”
Or, s’il est connu qu’une rubrique non indexable (dont les calculs non mémorisés) ne peuvent être utilisés comme destination d’un lien, leur faculté d’être utilisés comme source de ce lien est souvent sous-estimée.
Dans cette vidéo, nous montrons comment établir un lien comme celui-ci.
L’exemple est le suivant :
Nous cherchons à afficher une table externe des employés actifs (en fonction de la date actuelle). Comme l’utilisation de la date actuelle sous-entend un calcul non mémorisé, on ne peut a priori pas utiliser ce critère dans le lien.
Vous retrouverez cette technique et d’autres sur le graphique des liens dans cette vidéo de 1-more-tube.

Une fonction de calcul cachée de FileMaker 12 déchaîne les passions sur le web. Elle permet de capter le timestamp actuel en milisecondes, et en UTC (GMT) !
Dans cette vidéo, nous aborderons quelques possibilités d’utilisation et livrerons un exemple avec -enfin !- une technique de double clic qui fonctionne.
Mise à jour : FileMaker 13 vient d’officialiser cette fonction, nommée Obtenir ( HeureActuelleUTCMillisecondes )

La nouveauté la plus marquante de FileMaker 12 est a priori le nouveau rendu des modèles.
Il est vrai que l’interface des solutions FileMaker commençait à dater un peu, et il est certain que ces nouveaux modèles permettent de concevoir des intefaces plus modernes.
Néanmoins, la grande nouveauté en termes d’interface ne réside peut-être pas là…
Le protocole d’URL fmp :// permet désormais d’exploiter des interactions entre le webviewer et vos données.
Combiné à des langages web modernes tels que jQuery et CSS, ce protocole permet à votre solution de s’habiller d’une interface élégante, moderne et efficace.
Vous pouvez gérer le drag’n’drop et les gestes en général (oui, les gestes ! y compris sur FileMaker Go !), présenter des tableaux dont vous contrôlez l’aspect (titre des colonnes, colonnes redimensionnables…), des tirettes (sliders), ou pourquoi pas un agenda.
Les possibilités sont vertigineuses.

Fidèle a son engagement pour la communauté FileMaker, 1-more-thing apporte à nouveau son soutien à la FM Conférence qui se tiendra à Toulouse, du 18 au 20 Octobre 2012
Hormis notre sponsoring, Fabrice Nordmann y présentera deux sessions :
Nous espérons vous voir nombreux dans la ville rose !
Le hashtag de la conférence : #fmconf

FileMaker 12 permet (enfin !) d’afficher/masquer des onglets en les activant par script, sans devoir recourir à des stratagèmes (ou “bidouilles”) pour empêcher l’utilisateur d’activer un autre onglet, et sans scripts compliqués pour revenir à l’onglet précédemment sélectionné.
Voici donc une vidéo explicative, et un petit fichier avec une technique toute simple à mettre en œuvre dans votre propre solution.

Finally! FileMaker 12 provides a clean method to control tab switching by script and therefore to show/hide layout objects conditionnally, without requiring tricks like overlappling objects or complex scripts to reset the original tab.
Here is a video and a very simple technique file, extremely easy to reproduce in your own solution.

Grâce à FMSDIFM de 1-more-thing, (FileMaker Server, Do It For Me), FileMaker devient une vraie solution performante dans le cloud.
Au-delà des nouveautés mises en avant par FileMaker lors de la sortie de FileMaker 12, voici LA révolution dans la conception de solutions FileMaker.
Comme vous le verrez, il est désormais possible de déléguer les tâches gourmandes en ressources à FileMaker Server, permettant des gains de performances prodigieux. le consultant FileMaker peut ainsi proposer des vraies solutions sur le cloud, avec les avantages d’une interface FileMaker, et des performances telles qu’on les connaît quand on travaille sur un poste local. Même avec FileMaker Go !
D’autre part, cette technologie maison permet de développer des scripts décontextualisés (finis, les changements de modèles, ouvertures de fenêtres, mémorisation des onglets…). Cela permet non seulement un gain de performances encore accru, mais élimine les effets inesthétiques des ouvertures de fenêtres sous iOS ou sous Windows.
Le meilleur dans tout ça : FMSDIFM (FileMaker Server, Do It For Me) est offert à tous nos clients en hébergement !

FileMaker 10 a apporté une nouvelle fonction (ObtenirNomRubrique/GetFieldName) et une nouvelle action de script (Définir rubrique par nom/Set field by name), qui permettent au développeur de s’affranchir du nom des rubriques et de développer de manière beaucoup plus dynamique.
Problème : il n’est pas toujours simple de calculer le nom de la rubrique cible (Définir rubrique par nom), ou d’extraire un élément du nom de la rubrique retourné par ObtenirNomRubrique.
En effet, ces fonctions travaillent sur le nom complet de la rubrique : table ::rubrique, alors que les fonctions Obtenir(NomRubriqueActive) et Obtenir(NomTableRubriqueActive) renvoient respectivement le nom de la table et le nom de la rubrique, mais à condition que la rubrique ait été activée auparavant (ce qui implique notamment qu’elle soit présente sur le modèle courant)
Voici donc un ensemble de fonctions qui permettent facilement d’extraire (fm.field.get) ou de composer (fm.field.set) le nom de la rubrique, y compris en tenant compte des multivaluées.

Avec la sortie de FileMaker 12, la fonction ExecuterSQL permet au développeur FileMaker de formuler des requêtes complexes beaucoup plus facilement qu’avec le graphique des liens et des calculs.
Un autre -immense- avantage des requêtes SQL est qu’elle sont exécutées indépendamment du contexte. Il n’est donc plus nécessaire, dans un script, de multiplier les changements de modèles ou ouvertures de fenêtres, coûteux en temps de chargement et inesthétiques en FileMaker Go ou sous Windows.
Et puis, il y a cet immense avantage par rapport aux plugins : la fonction est compatible avec FileMaker Go !
Tout est pour le mieux donc, mais il existe des limites à cette “magie”.
C’est sur cette dernière limite que nous nous penchons aujourd’hui, parce qu’elle semble être la seule sur laquelle nous puissions influencer à court terme.
Car fort heureusement, nous sommes humains (enfin, je ne peux le garantir pour vous, mais en ce qui me concerne, c’est une certitude). Or homo sapiens est très doué pour l’apprentissage, et en particulier avec un sujet aussi “simple” que SQL. Sérieusement, les rudiments de SQL (ceux que l’on utilise pour 95% des requêtes) s’apprennent en quelques minutes. Personnellement, quand je sèche, je regarde ici.
Il existe aussi de nombreux forums dédiés à SQL, où certains ont déjà publié des requêtes compliquées. Ainsi, si je n’ai aucune idée de la manière de sélectionner les factures de 2009 à 2012, regroupées par mois et classée par montant décroissant… je pose ma question littéralement sur Google. Si j’ai la chance de parler l’anglais, je la pose en Anglais pour plus de réponses. Et il est rare que je ne trouve pas une réponse toute faite ou approchant sensiblement.
Mais puisqu’il faut s’y mettre, autant essayer un peu par soi-même. Et vous le verrez, on arrive très vite à quelque chose.
Seulement, au bout de quelques requêtes plus ou moins péniblement formulées, vous vous rendrez compte que :
Pour pallier à ces deux “problèmes”, qui encore une fois ne viennent pas de la technique mais de nous-mêmes, j’ai publié une fonction personnalisée qui devrait nous aider à nous lancer.
Voici comment l’utiliser :
sql.match ( _requestedFieldName ; _matchFieldName ; _match )
Le plus simple est de l’utiliser en combinaison avec la fonction ObtenirNomRubrique, afin de ne pas dépendre du nommage.
Exemple : sql.match( ObtenirNomRubrique ( PotDeConfiture ::ID ) ; ObtenirNomRubrique ( PotDeConfiture ::fruit ) ; "Abricot" )
renverra une liste des ID (séparés par des retours chariot) des Pots de confiture d’abricot
Ah ! un dernier détail. Afin de pouvoir observer la requête effectivement exécutée, une variable $sql.match.query sera déclarée.
Nom de la table Et puis, je ne résiste pas au plaisir de vous signaler cette autre fonction fm.basetable.name. Ceci résout un manque que je trouvais patent depuis de nombreuses années : la possibilité de connaître par calcul le nom de la table représentée par une occurrence de table.
Alors ? on s’y met ? Joyeux SQL à tous !
Avant-dernière vidéo gratuite de présentation de FileMaker 12. Un peu de tout sur ce qui n’a pas été abordé dans les précédentes.
Dans la vidéo suivante que nous publierons cette semaine, vous comprendrez pourquoi FileMaker 12 est une révolution. Tenez-vous prêts.

Vous l’avez attendue, la voici ! Enfin une petite présentation vidéo des graphiques de FileMaker 11.
A travers quelques exemples, nous montrons ici certaines possibilités proposées par l’outil graphique de FileMaker 11.
Nous pointons également certains défauts de ces graphiques. Une prochaine vidéo réservée aux abonnés, illustrera plus en profondeur ces problèmes et proposera des solutions.

Dans cette nouvelle vidéo gratuite, nous abordons une des nouveautés les plus utiles de FileMaker 11 : les liens snapshot.
Un snapshot permet de mémoriser un ensemble d’enregistrements dans une vue particulière (modèle, mode d’affichage, tri…)
Découvrez comment les liens snapshots peuvent vous être utiles.

Pour ce quatrième épisode vidéo sur FileMaker 11, je traite (ou maltraite) les variables de fusion.
Autant prévenir d’emblée, je ne suis pas tendre avec cette fonctionnalité.
Mais restons positifs : demain, nous aborderons les liens Snapshot, au sujet desquels nous sommes au contraire très enthousiastes.

Dans ce troisième épisode gratuit sur FileMaker 11, nous abordons les déclencheurs.
Les nouveaux déclencheurs de la 11 sont :
Comme toujours, n’hésitez pas à laisser vos commentaires, surtout s’ils sont positifs ! 😉

Voici la deuxième vidéo de notre série consacrée à FileMaker 11.
Pendant près d’une demi-heure, nous examinons l’impact de la nouvelle architecture “Cocoa” de la version Mac, nous observons les plus importants changements dans l’interface, mais nous abordons aussi certains détails pour lesquels il n’existe pas de documentation.
Regardez cette video pour profiter à plein de FileMaker 11.
N’hésitez pas à laisser un commentaire ci-dessous !

FileMaker 11 est sorti il y a quelques minutes, mais voici déjà une vidéo d’une demi-heure qui en présente les principales fonctionnalités en Français dans le texte.
Dans les jours qui viennent, de nombreuses vidéos seront publiées ici même, afin d’aller plus dans les détails.
N’hésitez pas à laisser un commentaire ci-dessous.

On entend beaucoup sur les nouveaux conteneurs, mais il faut faire la part des choses. Il y a certes le stockage externe -la nouveauté principale- mais aussi tout le reste, des modifications sur ce que l’on connaissait déjà.
Il faut voir cette vidéo pour se remettre les idées en place.