Blogs

Nos blogs communautaires

  1. Tableau est un puissant outils d’analyse des données et depuis peu, il est devenu possible d’y connecter nos bases de données FileMaker à l’aide d’un connecteur dédié livré avec la version 16 de FileMaker serveur. Alors que nous testions ses possibilités dans le but d’en faire profiter nos clients, nous avons eu une mauvaise surprise : […]

    Cet article QuickFix : Tableau et les séparateurs de décimales est apparu en premier sur 1-more-thing.


    Afficher la totalité du billet

  2. FileMaker Pro, beyond your normal join table, offers a unique method of storing collections, or groups, of items. You can do this with what is called a multi-key field. This isn’t to be confused with a compound-key, which is a primary key composed of multiple different values.

    Using a multi-key field we can store a collection of custom functions within our Custom Function database. This makes it possible to start the process of collecting groups of functions together and then adding a feature so we can copy them as a group.

    Of course, the trick to adding any complex functionality is to make it easy for the user while staying maintainable for us as the developers. This will be done within a standard FileMaker Popover layout object.

    This video walks through the process and parts of adding a grouping or collections based feature. While we’re adding it within the context of custom functions, this is a feature you’ll find using over and over again no matter what the database is about.

    Click the title or link to this article to view the video.


    Afficher la totalité du billet

  3. A great skill a Salesforce administrator can have in his or her back pocket is basic knowledge of the Apex programming language. This awareness empowers administrators to better understand the behavior of an application. As a result, administrators can explain underlying logic to users as well as diagnose issues without having to go to a Salesforce developer for help.

    To help Salesforce administrators explore learning Apex, I recommend writing a Hello World program. In this post, I will walk you through it. In the process, you will learn a few simple but useful programming concepts: variables, primitives, conditionals and methods.

    Using the Developer Console

    Before we can start coding our Hello World program, we need to learn how to run it. There are several ways to execute Apex in the Salesforce platform. The simplest one is using the Developer Console to execute code in an anonymous block. Let’s start by opening the console.

    1. Make sure your profile has the "Author Apex" permission enabled.
    2. Click on the gear icon, then select Developer Console. If you are in classic mode, click on your name on the top right, then select Developer Console.
    3. Once the Developer Console loads, click debug on the menu and select Open Execute Anonymous Window. You can also use the shortcut CTRL+E.
    Enter Apex Code

    Figure 1 - Execute Anonymous Window

    1. Type the following line of code:
           System.debug('Hello world!');
    
    1. Check the Open Log option.
    2. Click Execute.
    3. Once the Execution Log loads, check the Debug Only checkbox.
    4. You should see your Hello world message. Congratulations, you just wrote your first Apex program!
    Execution Log

    Figure 2 - Execution Log

    Variables

    For our next step, let’s try something a little more interesting. We will use a variable and assign "Hello World!" to it. Then, we will output the value of that variable to the debug log.

    1. Open the Execute Anonymous Window from the debug menu or using the shortcut, CTRL+E.
    2. Modify your code to look like this:
           String message = 'Hello world!';
           System.debug(message);
    
    1. Click Execute.
    2. Once the Execution Log loads, check the Debug Only checkbox.

    Notice the output is the same as the previous time we ran the code. Line 1 has two purposes —  one is declaring the variable, which tells Apex we want to create a new variable of type String. The second purpose is to set its value to "Hello world!".

    An interesting property of variables is that they are mutable. That means we can modify their content after they are created. Let’s try it. Update the code again and add one more line.

    String message = 'Hello world!';
    message = 'Hi there!';
    System.debug(message);
    

    Run the code again following the same steps as before. This time you will see "Hi there!", but "Hello World!" will not be displayed. Let’s take a look at what just happened. In line 1, we created a variable called message and assigned a value of "Hello World!" to it. Then, in line two, we assigned a new value to it, "Hi there". The new value took the place of the old one, overwriting it.

    You can also perform operations on variables. In this case, since we are dealing with Strings, we can do things like concatenation (stitching two or more strings together) or changing the casing to all caps.

    String greeting = 'Hello';
    String who = 'world';
    who = who.toUpperCase();
    String message = greeting + ' ' + who + '!';
    System.debug(message);
    
    

    When you run this code, you will see it generates a similar output as the first example. That is because we are concatenating a variable called greeting which contains the word "Hello", a space, the who variable containing "WORLD", and the exclamation point symbol. Those four things together form the phrase "Hello WORLD!".
    Are you wondering why the word "world" is all in capitals? That is because of line 3 where we call the toUpperCase() function which gives us back the same string but with all its letters capitalized.

    Primitive types

    So far, we have only used variables of type String in our examples. String variables allow you to store a collection or characters, numbers or symbols but there are other types that we can use for different purposes. For example, Integer can be used for storing whole numbers, or Double for numbers with decimals. Apex provides 12 primitive types but you can also create custom types by writing your own classes.

    List of Apex Primitives

    Blob Binary Data
    Boolean The values true or false
    Date A calendar date
    Datetime A calendar date and time
    Decimal A number that includes a decimal point
    Double A double precision floating point number
    ID A 15 or 18-digit Salesforce ID
    Integer A whole number -- between -2,147,483,648 and 2,147,483,647
    Long A large whole number -- between -263 and 263-1
    Object A generic type that can store a value of any other type
    String Any set of characters -- surrounded by single quotes
    Time A time

    Conditional statements

    In order to have your code make decisions and behave differently based on the value of a variable (or user input), you need to use a conditional statement. The most common type of conditional is the if-else statement, which is very similar to the IF() function in Salesforce formulas. Just like its formula counterpart, it has three parts: the logical test, the true block, and (optionally) the false block. If the logical test evaluates to true, the true block is executed, otherwise the false/else block is. A code block is one or more lines of code wrapped with curly brackets.

    Boolean formal = true;
    String who = 'world';
    String greeting;
    if (formal == true) {
      greeting = 'Hello';
    } else {
      greeting = 'Hi';
    }
    String message = greeting + ' ' + who;
    System.debug(message);
    

    When you run this code, you will see that it outputs "Hello world". In this case, the logical test was checking if the variable formal was equal to true. Since that is the case, it executed the first code block (line 5) which sets the variable greeting equals to "Hello". If it had not been true, it would have executed the false/else block (line 7) which would have set the greeting variable to "Hi". You can try running it again, but setting the variable formal equals to false on line 1.

    Writing Methods

    As a Salesforce administrator, you are probably already familiar with the concept of methods which are very similar to functions in validation rules and formula fields. We have also already used two methods in our examples. One was System.debug(), and the other one was String.toUpperCase(). You already know how to invoke them. Now let’s take a closer look.

    Methods represent a block of code that can be invoked (or called) from somewhere else. They are useful in many ways but have two main purposes: First, you can use methods to avoid repetition by writing your code once and calling it multiple times as needed. Second, methods make code cleaner and easier to read by allowing sections to be abstracted out.

    Let’s modify our Hello Word program to move the greeting selection logic inside a method, which we will call getGreeting().

    Boolean formal = true;
    String who = 'world';
    String greeting = getGreeting(formal);
    String message = greeting + ' ' + who;
    System.debug(message);
    
    private String getGreeting(Boolean formal) {
        if (formal == true) {
          return 'Hello';
        } else {
          return 'Hi';
        }
    }
    

    Now, if you want to quickly glance at the code, you should be able to tell at a high level what it does just by looking at the first 5 lines. If you are interested in the specifics of how the greeting is selected, you can look at lines 8 through 12 inside the method. This will make it easier for someone else to read your code or even for yourself, if in the future you want to refresh your memory on what the logic does.

    This latest variation of the code will output "Hello world" just like previous versions but the order in which the lines get executed is a little different. First lines 1 and 2 will run. Once we get to line 3, in order to get the value to store in greeting, lines 6, 7, and 8 will get executed and getGreeting() will return "Hello". Then execution continues on line 4, where "Hello world" will be stored in message. Lastly, line 5 will be executed which will output the value of message. At that point, the code is finished executing and terminates.

    Further Reading

    Congratulations, you have reached the end of this tutorial. You should now be able to read and understand the gist of the code in your org, even if you don’t know exactly what each line does. You should also be able to make simple changes to existing code with the supervision of a more experienced developer.

    If you enjoyed writing your first program and would like to learn more, you can take a look at these great resources:

    The post Hello, World! The Basics of Apex Programming appeared first on Soliant Consulting.


    Afficher la totalité du billet

  4. FileMaker Crosstab Reports

    FileMaker is very adept at creating list reports, but often you want to see your data in a grid format. This is when crosstab reports, also referred to as pivot tables or matrix reports, come in handy. A crosstab report is a way to display data from 2 or more different sources in a grid format. Luckily there are still plenty of options for doing this in FileMaker. Some methods are better for data entry, some are better for viewing, and some are better for speed and flexibility.

    Why use a Crosstab Report?

    Crosstab reports format groups of data into an easy to read grid format. If this sounds like an excel spreadsheet, that’s because it is. There is a reason people love their spreadsheets, it makes comparing values in one group with values in another group really easy. Below you can see an example of 2 reports showing the exact same data, but the crosstab report makes comparing company yearly sales much easier. This is why crosstab reports are so powerful.

    FileMaker List vs Crosstab Report

    Native FileMaker

    The example below is built all with native FileMaker and involved creating 3 globals, 3 relationships, and 3 calculations and is limited to only showing 3 companies at a time. That’s a lot of work just to show 3 columns, and not very realistic as chances are you’re going to have a lot more than 3 companies in your system. However, data entry and printing are going to be easier using this technique, and you have the advantage of not having to learn any other technologies.

    Native FileMaker Crosstab Report

    Native FileMaker Crosstab Relationship GraphFileMaker Native Crosstab Report Fields

    Web Viewer

    In this example, I’m going to build a crosstab report using HTML and CSS and display the results in a web viewer. While this version will not have any data entry involved, that is also possible using javascript to pass the data to FileMaker using either the new REST API or using FMP URLs. As you can see below we are showing 8 companies, as well as grouping the data by year and I didn’t have to make 8 of everything! All it took was 2 globals and 2 relationships, one for the year and one for the category. The best part is that I can add new categories, companies, or dates outside of 2015-2017 and it will all adjust automatically and reformat to fit the data.

    FileMaker HTML Crosstab ReportHow it’s done

    In order to build a report like this, you have to be somewhat familiar with HTML and CSS, but it’s really not too hard to learn. If you’re new to HTML I’d suggest starting with a tool like rapidtables to quickly generate the HTML required to make the table, and all the CSS. Below is an example of the output from RapidTables as well as some HTML markup to display the data properly in a web viewer. Feel free to copy and paste the code below into a web viewer to see the table; just make sure to escape any double quotes with either a slash before it or change them to single quotes.

    data: text/html, 
    <html>
    <head>
       <title>Demo</title>
    </head>
    <body>
    
    <!--START OUTPUT FROM RAPID TABLES-->
    <style>
    .demo {
       border:1px solid #C0C0C0;
       border-collapse:collapse;
       padding:5px;
    }
    .demo th {
       border:1px solid #C0C0C0;
       padding:5px;
       background:#F0F0F0;
    }
    .demo td {
       border:1px solid #C0C0C0;
       padding:5px;
    }
    </style>
    <table class="demo">
       <caption>Table 1</caption>
       <thead>
           <tr>
              <th>Header 1</th>
              <th>Header 2</th>
              <th>Header 3</th>
           </tr>
       </thead>
       <tbody>
          <tr>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
          </tr>
          <tr>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
          </tr>
       </tbody>
    </table>
    <!--END OUTPUT FROM RAPID TABLES-->
    </body>
    </html>

    Adding Your Data

    Now all you have to do is use your FileMaker skills to generate a string that resembles the data above, but replacing the headers and &nbsp; (Which stands for non-breaking space) with your data. You could do this by either using calculations or as I did in the demo file, a script to loop through the records generating all the text in a variable.

    Printing

    Printing a web viewer can be a bit of a challenge if you’ve never tried. One way to tackle this is to export the web viewer contents to the temp directory with a little extra Javascript, which when opened will open the print dialog on the user’s default browser. You can even add CSS specifically for printing which allows for more flexible printing.

    FileMaker Print Web Viewer

    Report Speed

    Using native FileMaker methods to compile lots of data can not only be slow to build but can be slow to display, especially if running the report over the WAN. Using a webviewer to generate a crosstab report has the huge benefit of being able to process and crunch all the numbers on the server because all we are doing is working with text, you can very easily script the report to run on the server and return the data in the script results. This makes running  reports lighting fast.

    Conclusion

    Building crosstab reports can be a bit of a challenge and there are many ways to tackle the problem. Different situations might require different techniques, which is why knowing multiple ways to create crosstab reports is so useful. When it comes to speed and flexibility it’s hard to beat using a web viewer, and can be great at speeding up slow reports.

    Did you know we are an authorized reseller for FileMaker Licensing?
    Contact us to discuss upgrading your FileMaker software.

    DownloadDownload FileMaker Crosstab Reports

    Please complete the form below to download your FREE FileMaker database file.

    • Name*
      First Last
    • Company
    • Phone*
    • Email*
    • Terms of Use
      • I agree
      OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime.

    Afficher la totalité du billet

  5. In Part 1 of this series, “Introducing LOgiCATOR,” I mentioned that LOgiCATOR grew out of a search interface I developed for a project several years ago. In ways we’ll briefly consider here, it wasn’t extensible, but all that has changed. As that early search interface grew into LOgiCATOR, it made a quantum leap in context independence. The […]


    Afficher la totalité du billet

  6. Trois de nos développeurs français apportent leurs retours sur les nouveautés de la plateforme FileMaker 16.

    1*KNtkpZ9-C3h-UfQeWccgIw.png

    Que pensez-vous de la nouvelle version de la plateforme ?

    Vincent Miano :
    “La nouvelle version de FileMaker apporte un grand lot de fonctionnalités supplémentaires ; certaines facilitent grandement le travail des développeurs, tandis que d’autres apportent une nouvelle façon de penser une interface (notamment grâce aux cartes, qui permettent d’afficher un modèle dans un modèle).”

    Eric Cahours :
    “Cette version apporte des changements intéressants sans pour autant modifier de façon conséquente l’interface utilisateur. FileMaker offre donc à l’utilisateur des outils puissants, variés et qui permettent de gagner encore plus en rapidité.”

    Vincent Gilet :
    “L’utilisation de la dernière version en cours de FileMaker est toujours à privilégier. En effet cette version est toujours plus efficace et le serveur a de bien meilleures performances, surtout en WebDirect.”

    Qu’attendiez-vous le plus à sa sortie ?

    Eric Cahours :
    “Les cartes qui offrent la possibilité d’ouvrir une fenêtre dans une même fenêtre. Les options de présentation s’en trouvent démultipliées.”

    Vincent Miano :
    “Parmi les nouvelles fonctionnalités apportées par FileMaker 16, celles que j’attendais le plus sont celles permettant le formatage de données au format JSON ; avec ces nouvelles fonctions, il va être désormais bien plus simple de communiquer avec toutes sortes de services Web depuis FileMaker.”

    Vincent Gilet :
    “« Carte » est également quelque chose de très intéressant. C’est une nouvelle sorte de fenêtre nativement modale, c’est-à-dire qu’il n’est pas possible de faire autre chose dans une autre fenêtre FileMaker tant que celle-ci n’est pas fermée. De plus elle peut apparaître sur un contexte totalement différent de celui en cours. Cela ouvre quelque perspective intéressante de design différent dans les développements.”

    Quels sont les avantages à utiliser FileMaker 16 ?

    Eric Cahours :
    “FileMaker 16 est plus simple à utiliser sans pour autant nuire à la sécurité puisque la nouvelle version revisite le système d’authentification et permet le cryptage du texte au niveau des rubriques.”

    Vincent Miano :
    “Cette nouvelle version va ainsi permettre de réaliser des applications complètes et modernes.”

    Olivier Devriese :
    “La plateforme FileMaker 16 apporte une avancé significative en terme de sécurité qui rassure dans un monde de plus en plus difficile sur ce plan.”

    Eric Cahours :
    “Le copier/coller des listes de valeurs qui peut représenter un gain de temps considérable.”

    Vincent Gilet :
    “Grâce à la sortie de FileMaker Pro 16, l’interaction avec les API en JSON est grandement simplifiée puisque les instructions sont natives. C’est très agréable de ne plus avoir besoin d’utiliser un plug-in pour ce genre de développement.”

    Voir aussi…

    1*GU-gBjOd63aN5FjuztliVg.pngstat?event=post.clientViewed&referrerSource=full_rss&postId=8c36709290bc

    FileMaker 16 : Nos développeurs témoignent was originally published in Lesterius FR on Medium, where people are continuing the conversation by highlighting and responding to this story.


    Afficher la totalité du billet

  7. I am excited to share with you some of the new features now that FileMaker 16 has officially been released.  In this post I thought I would start out simple and show the JSON parsing function coupled with a simple API call which allows for simpler data entry when it comes to entering in [...]

    The post Google – Auto Complete using JSON in FIleMaker 16 appeared first on The Scarpetta Group, Inc..


    Afficher la totalité du billet

  8. 9 May 2017: Today’s release of FileMaker 16 introduces new windowing options, and changes to existing windowing behavior… some of these changes are cross-platform, and one is specific to FileMaker for Windows. Demo file: FM-16-Windowing.zip (requires FM 16 or later) Cross-Platform Changes Change #1. Redesigned “New Window” dialog Note the new “Card” window style — […]b.gif?host=filemakerhacks.com&blog=62430


    Afficher la totalité du billet

  9. ModularFilemaker
    Dernier billet

    SimpleBackup is a FileMaker module to create backups or snapshots of local files.

     

    • Easy backups of local files
    • Filenames include a timestamp
    • An additional script allows to include several FileMaker files at once
    • Works in Runtime solutions
    • Create snapshots during development
    • Automate backups at the closing of files

     

     

    SimpleBackup-001-1030x786.jpg

     

     

    Download this file:
    fmstarter.com/en/simplebackup/

     

     


    Afficher la totalité du billet

  10. ipb_blog_OpenData__dataNOVA_codesPostaux.png

    Pour notre première intégration, nous allons nous intéresser aux codes postaux français, en imaginant que nous souhaitons proposer aux utilisateurs de notre solution FileMaker une liste de communes suivant le code postal saisi. Pour cela nous avons besoin de la liste des codes postaux et des communes françaises associées. En effectuant une recherche sur le site data.gouv.fr nous trouvons le jeu de données souhaité et son producteur dataNOVA.

    dataNOVA est la plateforme officielle des données ouvertes du Groupe La Poste, en nous connectant sur le site dédié nous y trouvons la description du jeu de données de la Base officielle des codes postaux dont voici le résumé :

     

    ipb_blog_OpenData__chapitre_importation.png

    Avant de savoir quel format de fichier nous allons utiliser pour l'intégration par importation du jeu de données, nous devons les étudier, cela fait partie de notre analyse avant de pouvoir prendre notre décision quand à la méthodologie à employer pour effectuer une intégration par importation.

     

    Le format CSV

    Commençons par le premier d'entre eux, le format CSV. À première vue notre choix porterait sur ce format car c'est le plus léger, seulement 1,6 Mo. Cette petite taille permettra d'effectuer un téléchargement rapide et sans gréver la bande passante.

    Le lien pour le télécharger est le suivant :

    http://datanova.legroupe.laposte.fr/explore/dataset/laposte_hexasmal/download/?format=csv&timezone=Europe/Berlin&use_labels_for_header=true

    En effectuant une importation dans FileMaker Pro, on s'aperçoit que ce fichier utilise le point-virgule comme séparateur de données et non la virgule comme le souhaiterai FileMaker. Ce qui ne nous permet pas de l'importer directement. Cela va donc nous demander un petit traitement préalable. Le traitement en question consiste à :

    1. Importer le fichier directement dans une rubrique texte ;
    2. Remplacer le point-virgule par la virgule ;
    3. Exporter le contenu de la rubrique dans un fichier texte.

    Le fichier ainsi obtenu pourra être importé de manière classique dans notre solution FileMaker. Ces opérations ne demande aucun plugin ou fonction personnalisée.

    Vous trouverez un exemple de script pour effectuer cette importation dans le fichier d'exemples.

     

    Le format EXCEL

    Le lien pour télécharger le jeu de données au format EXCEL est le suivant :

    http://datanova.legroupe.laposte.fr/explore/dataset/laposte_hexasmal/download/?format=xls&timezone=Europe/Berlin&use_labels_for_header=true

    Le format EXCEL du jeu de données proposé par dataNOVA est au format Feuille de calcul Excel 2004 XML, format non reconnu par FileMaker Pro. Nous avons donc un format EXCEL qui est en fait un format XML. Pour importer ce jeu de données il nous faudra donc créer une feuille de transformation XSL-T. Pour cela je vous suggère de lire ou relire mes billets sur l'importation de données XML.

     

    Le format JSON

    Le lien pour télécharger le jeu de données au format JSON est le suivant :

    http://datanova.legroupe.laposte.fr/explore/dataset/laposte_hexasmal/download/?format=json&timezone=Europe/Berlin

    La récupération du fichier proprement dit n'est pas difficile, nous suivons la procédure suivante :

    1. Importation du fichier directement dans une rubrique texte ; 
    2. Traitement des données JSON.

    Mais le point n°2 est plus compliqué car FileMaker Pro n'intègre pas de parser (traducteur) JSON. Il nous faut soit faire appel à un plugin tel que BaseElements Plugin (gratuit) ou MBS FileMaker Plugin (payant), soit faire appel à des fonctions personnalisées. Tout cela pour générer par une boucle toutes les données issues du fichier JSON.

     

    En conclusion

    Suite à l'analyse des trois formats de fichier proposés par dataNOVA, mon choix porte sur le format CSV, malgré la petite opération de remplacement de caractères, c'est le plus léger des trois (moins de 2 Mo) et le plus simple à mettre en œuvre via une importation classique.

    Vous trouverez dans le fichier d'exemples un script effectuant ce type d'importation.

    Ce type d'importation peut être effectuée régulièrement dans l'année pour maintenir la liste des communes et des codes postaux français à jour. Et aussi simplement qu'un clic de souris (pour une mise à jour à la demande), ou automatiquement par FileMaker Server, une fois par mois par exemple. Pour ce dernier cas, le script présent dans le fichier d'exemples ne fonctionne pas sous FileMaker Server.

     

     

    ipb_blog_OpenData__chapitre_api.png

    La documentation de l'API est disponible à l'adresse suivante, cette documentation intègre une console pour nous permettre d'effectuer des requêtes et tester ainsi les différentes options.

    L'API proposé par dataNOVA permet d'effectuer des interrogations (requêtes) en ligne pour obtenir diverses informations. L'API fonctionne sous la forme d'une adresse URL, elle est donc simple à mettre en œuvre.

    L'adresse URL de base est :

    Le paramètre dataset avec la valeur laposte_hexasmal indique à l'API que nous effectuons une requête dans le jeu de données des codes postaux.

    D'après la documentation de l'API, on peut effectuer nos interrogations en utilisant le paramètre en lui transmettant soit le nom d'une ville, soit le code postal, etc. La valeur transmise peut-être incomplète. Mais si nous souhaitant avoir un résultat plus précis et plus restreint, nous utiliserons d'autres paramètres.

     

    Rechercher le code postal correspondant à une commune

    Pour rechercher le code postal correspondand à une commune, nous utiliserons le paramètre refine.nom_de_la_commune et en lui adressant comme valeur la commune. Attention, nous utilisons ici un paramètre restrictif, il faudra envoyer le nom de la commune en majuscule, sans accent et sans apostrophe. Dans le fichier d'exemples vous trouverez un script qui effectue ces transformation.

    Nous utiliserons donc une requête comme celle-ci :

    Et nous obtenons en retour le résultat au format JSON

    {
    	"nhits":1,
    	"parameters":{
    		"dataset":[
    			"laposte_hexasmal"
    		],
    		"refine":{
    			"nom_de_la_commune":"CHARTRES"
    		},
    		"timezone":"UTC",
    		"rows":10,
    		"format":"json"
    	},
    	"records":[
    		{
    			"datasetid":"laposte_hexasmal",
    			"recordid":"1f0f84c05e42dbfa1b0d4f6780ae4552d9b9a225",
    			"fields":{
    				"nom_de_la_commune":"CHARTRES",
    				"libell_d_acheminement":"CHARTRES",
    				"code_postal":"28000",
    				"code_commune_insee":"28085"
    			},
    			"record_timestamp":"2016-05-09T13:17:00+00:00"
    		}
    	],
    	"facet_groups":[
    		{
    			"name":"nom_de_la_commune",
    			"facets":[
    				{
    					"name":"CHARTRES",
    					"path":"CHARTRES",
    					"count":1,
    					"state":"refined"
    				}
    			]
    		}
    	]
    }

     

    Le but du jeu c'est de récupérer le contenu de la valeur code_postal dont le chemin JSON est records[0].fields.code_postal.

    Le [0] correspond à la première valeur du tableau records.

    Et s'il y a plusieurs codes postaux trouvés (car il y a plusieurs communes homonymes en France) il faut alors effectuer une boucle pour générer notre liste de codes postaux correspondant à la commune recherchée. Vous trouverez dans le fichier d'exemples un script effectuant cette opération. Pour connaître le nombre d'enregistrements trouvés, nous récupérons la valeur de nhits.

    Et comme nous obtenons du JSON, nous utiliserons le plugin BaseElements pour nous permettre d'effectuer toutes ces opérations. Si vous ne l'avez pas, vous trouverez dans ce billet tous les éléments nécessaires pour le télécharger et l'installer

     

    Rechercher la commune correspondante à un code postal

    Pour rechercher la commune correspondante à un code postal, nous utiliserons le paramètre refine.code_postal et en lui adressant comme valeur le code postal. Attention, pour un code postal pouvons obtenir plus de dix communes, l'API se limite par défaut à 10 enregistrements retournés, et comme nous ne souhaitons pas effectuer plusieurs appels, nous augmenterons la limite par défaut en utilisant le paramètre rows et en lui mettant la valeur 50, qui devrait être largement suffisant.

    Nous utiliserons donc une requête comme celle-ci :

    Et nous obtenons en retour le résultat au format JSON

    {
    	"nhits":1,
    	"parameters":{
    		"dataset":[
    			"laposte_hexasmal"
    		],
    		"refine":{
    			"code_postal":"28000"
    		},
    		"timezone":"UTC",
    		"rows":50,
    		"format":"json"
    	},
    	"records":[
    		{
    			"datasetid":"laposte_hexasmal",
    			"recordid":"1f0f84c05e42dbfa1b0d4f6780ae4552d9b9a225",
    			"fields":{
    				"nom_de_la_commune":"CHARTRES",
    				"libell_d_acheminement":"CHARTRES",
    				"code_postal":"28000",
    				"code_commune_insee":"28085"
    			},
    			"record_timestamp":"2016-05-09T13:17:00+00:00"
    		}
    	],
    	"facet_groups":[
    		{
    			"name":"code_postal",
    			"facets":[
    				{
    					"name":"28000",
    					"path":"28000",
    					"count":1,
    					"state":"refined"
    				}
    			]
    		}
    	]
    }

    Comme précédemment, le but du jeu c'est de récupérer le contenu cette fois-ci de la valeur nom_de_la_commune dont le chemin JSON est records[0].fields.nom_de_la_commune.

    Le [0] correspond à la première valeur du tableau records.

    Et s'il y a plusieures communes trouvées (car il y a plusieurs communes ayant le même bureau distributeur en France) il faut alors effectuer une boucle pour générer notre liste de communes correspondantes au code postal recherché. Vous trouverez dans le fichier d'exemples un script effectuant cette opération. Pour connaître le nombre d'enregistrements trouvés, nous récupérons la valeur de nhits.

    Et comme nous obtenons du JSON, nous utiliserons le plugin BaseElements pour nous permettre d'effectuer toutes ces opérations. Si vous ne l'avez pas, vous trouverez dans ce billet tous les éléments nécessaires pour le télécharger et l'installer

     

    ipb_blog_OpenData__chapitre_base.png

    Voici le fichier d'exemples, vous y trouverez trois scripts :

    • Le premier pour la récupération de la liste des codes postaux et des communes via une importation d'un fichier CVS.
    • Le deuxième pour la récupération de la liste des codes postaux suivant une ville saisie via l'API.
    • Le troisième pour la récupération de la liste des communes suivant un code postal saisi via l'API.

    Bonne découverte !

    :excl: Le fichier est optimisé pour FileMaker Pro 14 et plus. Si vous avez une version antérieure vous perdrez uniquement de l'interface graphique… Ce fichier d'exemples ne comporte pas de fonction personnalisée.

    Fichier d'exemples : dataNOVA.zip

  11. fm-infographicp.jpgLa saga FileMaker en une infographie…

    CoreSolutions Software, Inc. via son blog, nous présente toute l'histoire de FileMaker résumée en une infographie. Pour les nostalgiques comme moi cela permet de nous remémorer les dates clefs de notre logiciel préféré…

    • 1987 - Naissance de Claris
    • 1988 - FileMaker II
      • première version à être éditée par Claris Corp.
    • 1990 - FileMaker Pro
    • 1992 - FileMaker Pro 2
      • signe la première version pour Windows
    • 1994 - FileMaker Pro Server
    • 1995 - FileMaker 3
      • architecture relationnelle
      • protocole réseau TCP/IP
    • 1997 - FileMaker 4
      • ouverture aux plugins
    • 1998 - FileMaker Pro 4 Developer Edition
      • dernière édition par Claris Corp.
      • Claris Corp. devient FileMaker, Inc.
    • 1999 - FileMaker Pro 4.1v2
      • première édition par FileMaker, Inc.
    • 1999 - FileMaker Pro 5
    • 2002 - FileMaker 6
      • dernière version à supporter Mac OS 9 et 8
    • 2004 - FileMaker Pro 7
      • multi-tables
      • multi-fenêtres
      • graphe de liens
      • variables dans les formules de calcul
      • nouvelle sécurité
      • nouveau format de fichier
    • 2005 - FileMaker 8
      • génération PDF scriptable
      • variables dans les scripts
      • panneaux à onglet
    • 2007 - FileMaker 9
      • support des sources de données MS SQL Server, MySQL et Oracle
      • formatage conditionnel
    • 2008 - Bento
    • 2009 - FileMaker 10
      • changement d'orientation de la zone d'état (verticale) qui devient barre d'outils (horizontale)
      • déclencheurs de script
    • 2010 - FileMaker Go 1.0
    • 2010 - FileMaker 11
      • outil Graphique
      • lien snapshot
      • tables externes filtrées
      • importations récurrentes
    • 2012 - FileMaker Pro 12 et FileMaker Pro 12 Advanced
      • thèmes
      • fenêtres de type modale et document
      • fonction ExecuterSQL
      • amélioration des rubriques de type conteneur et des graphiques
    • 2013 - FileMaker 13
      • WebDirect et support du HTML 5
      • développement de solution mobile amélioré
      • conception d'interface graphique améliorée
      • action pour exécuter des scripts par le serveur
      • connexion SSL 256 bit
    • 2015 - FileMaker 14
      • espace de travail de script
      • barre de boutons
      • infobulles pour les badges en mode modèle, et Gestion des solutions
    • 2016 - FileMaker 15

    Retrouver l'infographie en haute résolution directement depuis le billet du blog «Core FileMaker Blog» par Steve Malott.

    Et puisque je suis nostalgique, je ne peux résister à l'envie de vous montrer quelques ouvrages qui trainent encore sur mon bureau... Cela rappellera des bons souvenirs à certaines personnes :rolleyes:

    Fichier 09-06-2016 23 19 57.jpeg

  12. fmi_certif15.png

    FileMaker, Inc. vous propose de valider votre expertise FileMaker.

     

    Démontrez vos capacités FileMaker

    Ce diplôme officiel prouve à vos clients, à vos pairs et à votre direction que vous avez acquis les connaissances, l'expérience et les compétences essentielles en matière de développement sur la plateforme FileMaker.

    Que vous soyez consultant indépendant ou développeur interne, la certification FileMaker vous offre bien des avantages :

    • Vous développez vos connaissances et devenez un développeur aux multiples talents.
    • Vous restez informé des toutes dernières technologies FileMaker.
    • Vous vous dotez d'un avantage concurrentiel sur les autres développeurs.
    • Vous investissez dans votre carrière et augmentez votre rentabilité.
    • Vous offrez plus de crédibilité à votre entreprise.
    • Vous pouvez utiliser le logo de la certification FileMaker sur votre site Web et vos cartes de visite.
    • Vous augmentez votre visibilité sur le site Web de FileMaker (partenaires uniquement).

     

    Préparez l'examen

    Une expérience pratique de la plateforme FileMaker peut augmenter vos chances de réussir l'examen. Nous vous recommandons au moins 6 mois d'expérience en développement sur la plateforme FileMaker avant de passer l'examen.

    1. Spécifications techniques
      • Décrivez les spécifications techniques pour la plateforme FileMaker 15.
         
    2. Définition du schéma de base de données
      • Décrivez et appliquez les options de saisie automatique.
      • Identifiez les mécanismes et les comportements des options de validation, et décrivez les résultats possibles lorsqu'une option est déclenchée.
      • Utilisez une option de stockage pour atteindre un résultat souhaité.
      • Définissez le résultat d'un graphe de liens particulier, selon un scénario donné.
      • Définissez le lien approprié pour atteindre un résultat souhaité, selon un scénario donné.
      • Utilisez les sources de données SQL externes pour intégrer les données d'une source de données externe et concevoir correctement un schéma.
         
    3. Conception de modèles
      • Décrivez les conséquences de la liaison d'un modèle à une occurrence de table spécifique.
      • Identifiez la façon dont une table externe peut afficher les données distantes de plusieurs liens et certains des comportements qui peuvent être attribués à une table externe.
      • Décrivez les comportements des objets de modèle/rubrique qui peuvent être modifiés.
      • Décrivez les types et les attributs des déclencheurs de script.
      • Identifiez les conséquences du choix d'un type de déclencheur particulier, selon un scénario donné.
      • Décrivez l'utilisation d'un objet de graphique.
      • Identifiez les conséquences de la sélection ou de l'utilisation de thèmes.
      • Identifiez les propriétés, l'utilisation et les capacités des thèmes, des styles d'objet et des états.
      • Décrivez le format et le comportement des éléments de modèle.
         
    4. Utilisation de calculs
      • Identifiez la syntaxe d'expression, la logique et l'ordre des opérations.
      • Décrivez le comportement et l'utilisation des fonctions de calcul.
      • Décrivez le comportement et l'utilisation des fonctions personnalisées.
         
    5. Rédaction de scripts
      • Identifiez l'utilisation des principales techniques de conception d'algorithmes, selon un scénario donné.
      • Identifiez l'utilisation des principales fonctions de rédaction de scripts de la plateforme FileMaker.
      • Décrivez la façon dont le contexte (et les changements de contexte) peut affecter le comportement des scripts lors de la récupération ou de la mise à jour des données de tables liées ou non liées, et/ou la navigation entre les tables et les fenêtres.
      • Décrivez les éléments à prendre en compte lors de la rédaction de scripts pour un environnement multi-utilisateur.
         
    6. Sécurisation d'apps FileMaker
      • Décrivez les comptes, les jeux de privilèges et les interactions avec l'authentification.
      • Décrivez le contrôle d'accès et la gestion de la sécurité dans les apps FileMaker via les jeux de privilèges.
      • Décrivez l'utilisation du cryptage et de la protection de fichiers externes pour protéger les données FileMaker.
      • Décrivez l'utilisation de la protection de fichiers externes pour protéger les données FileMaker.
         
    7. Déploiement d'apps personnalisées via FileMaker Server
      • Décrivez les principaux éléments de l'installation, du déploiement, de la configuration, de l'administration, de la résolution des problèmes et de la surveillance de FileMaker Server.
      • Décrivez les meilleures pratiques pour la création de sauvegardes efficaces et sécurisées.
      • Décrivez les principaux éléments de la rédaction de scripts coté serveur.
         
    8. Intégration de données
      • Décrivez les formats et les méthodes d'importation de données dans des fichiers FileMaker.
      • Décrivez les formats et les méthodes d'exportation de données dans des fichiers FileMaker.
      • Décrivez les méthodes d'échange de données entre des fichiers FileMaker et d'autres sources de données.
      • Décrivez les principales sources de données dynamiques prises en charge, leur connexion et leur intégration dans une app FileMaker.
         
    9. Publication de données FileMaker sur le Web
      • Décrivez les options de publication Web disponibles pour FileMaker Server, leurs configurations, l'emplacement des composants et les options d'administration.
      • Décrivez la préparation d'une app FileMaker accessible sur le Web.
         
    10. Outils et processus de développement
      • Décrivez un éventail de techniques de développement, des fondamentales au plus avancées.
      • Décrivez les conséquences de l'utilisation de plusieurs fenêtres.
      • Décrivez les options et les processus utilisés dans la récupération de fichiers.
      • Décrivez les conséquences du contrôle de différentes fonctions visibles de l'utilisateur par le développeur.
         
    11. FileMaker Go
      • Décrivez les options de déploiement d'une app dans FileMaker Go.
      • Identifiez les conséquences uniques du développement et du déploiement d'apps personnalisées pour FileMaker Go.
      • Décrivez les fonctions uniques de FileMaker Go.

     

    icon_register_for_exam.png

    Inscrivez-vous à l'examen

    Disponible en anglais et en japonais, l'examen consiste en des questions à choix multiples.

    Les examens de certification sont proposés dans les centres d'évaluation Pearson Vue du monde entier. Lorsque vous vous inscrivez à l'examen, vous pouvez choisir le site qui vous convient le mieux.

    Inscrivez-vous auprès de Pearson VUE

    Pour plus d'informations sur l'examen, consultez les politiques de certifications.

     

    icon_certification_faqs.png

    Questions / réponses sur la certification

    Si vous avez des questions supplémentaires sur le processus de certification, consultez nos questions/réponses sur la certification.

    Consultez les questions / réponses >

     

    icon_test_dev_process.png

    Processus de développement de l'examen

    Les procédures suivies pour créer l'examen destiné aux développeurs FileMaker est conforme aux normes de l'industrie conçues pour fournir le plus haut niveau de fiabilité et de validité d'examen.

    En savoir plus >

     

    Retrouvez toutes les informations sur le site de l'éditeur :
    http://www.filemaker.com/fr/learning/certification/index.html

  13. Previously, I wrote about how to convert your solution away from the Classic theme. In this part, I discuss five FileMaker 14-exclusive changes you might want to make while updating your solution. These interface features will add professionalism, usability, and—dare I say?— “glory” to your solutions.

    Converting From Classic Glory

    Read Part 1

    Now that you’ve decided to update your layouts to a modern theme in FileMaker, there are a few things you might want to do at the same time, that don’t require any major changes to your layouts. Since you’re already touching every layout in your solution, why not take advantage of some of the new features in FileMaker 14? It makes sense to get the most bang for your buck. Here are…drumroll please…Five Things New in FileMaker 14 That Will Improve Your Interfaces (in no particular order):

    1. Hidden Scroll Bars

    Readers of this blog know I like scrollbars! I’ve written about them before, probably because they can be one of the most distinctive elements of a layout, and in FileMaker there is very little about scrollbars that can be styled. So choosing the look of the scrollbars is a major portion of deciding on a new theme. And no other theme’s scrollbar is exactly like the Classic scrollbar style. So finding something to replace it with is a bit of a challenge. Here is the layout after switching from Classic to a custom theme based on Cool:

    Before

    Well, instead of styling the scrollbar, how about hiding it altogether? This new feature is an option on fields and portals, and allows you to only show a scrollbar slider when the user’s cursor is actually scrolling. It’s the same way that scrolling works inside the FileMaker window itself—you only see a scrollbar slider when you activate the scroll wheel or perform a scrolling gesture on the mouse. This is the standard way scrolling is done on the Mac, in fact.

    Limitation: Make sure that users have scrolling capability on their mice, or this feature won’t work.

    2. Button Bar

    The new button bar object is awesome! Buttons are one of the most complex objects to style, with all the different parts and states they can have. The button bar drastically cuts down on the number of objects you need to deal with across potentially many layouts, and can even be conditionally or dynamically populated if you want. (Here’s an article from Digital Fusion describing how to create an abstracted navigation system using the button bar object.)

    Now, rather than managing a row of individual button objects when creating a navigation bar, for instance, you can use a button bar instead. A single object can take the place of five or six separate objects. Be sure to go through all the button bar parts and states and make sure they are set how you want—There are a lot of them and the format painter transfers hardly any styles from a button object to a button bar object. There may be inactive, in focus and hover states inherited from the theme that you probably will want to change to match the previous behaviour, so you’ll have to do some work setting up the first button bar.

    You can also mix a button bar with a regular button. In these examples, the Menu button is its own button, placed beside the button bar.

    Limitation: You can dynamically set a button label, but you can’t conditionally specify an icon. Also, all the buttons in the button bar get the same width, no matter how long or short their label might be. So you have to set the button width to accommodate the longest button label, including some white space on either side. This might mean that short labels (such as the “Print” button below) end up with more space than before. So make sure you are okay with buttons possibly being more spread out, and have the space for them if you switch out individual buttons for the button bar.

    3. Top Navigation Part

    The new top header navigation part keeps the most important objects (like primary navigation) accessible at the top, where users need it most. It helps prevent users from getting lost, and provides them a quick way of getting around with a minimum of window scrolling. Don’t forget to check the style for the top navigation part, it may have a fill or border that you may want to change or remove to match your layout.

    Limitation: Any background colour you set for a top navigation part stretches across the whole layout, even the inactive part (seen when the user stretches the window to the right). However, when objects on it are anchored to the top and left, the body background colour ends at the edge of the active part of the layout. When you pull the body part down with the mouse, a gray (or default layout background-coloured) gap opens up between the top navigation and the body part.

    Top Navigation Gap

    You can mitigate this by anchoring objects in the header to stretch between the left and right edges of the window. Or, create a rectangle the exact size of your top navigation part and send it to the back, and then remove any background fill colour on the top navigation part. This way, your top navigation will appear to end at the edge of the layout when objects are anchored to the top left, just like the body part.

    Neat Edge

    White rectangle is placed at the back of the top navigation part

    One final alternative is to anchor the body objects to the middle. In this case, the white body background fills the screen and no “inactive” colour is seen.

    Centered

    Body objects are anchored to the center of the layout

    4. Placeholder Text

    Who hasn’t wanted to dispense with field labels at times, especially on obvious fields, such as addresses? The user needs a text label to guide them when they’re entering data, but once a record has been filled out, it’s clear where the Street Name, City, Prov/State, and Zip Code should go. You don’t really need to devote layout space to them forever and ever. And yet, creating inline placeholder text has been too much work to maintain in the past, so I often didn’t bother with it, except when really necessary.

    Now, placeholder text is an option on the field itself. You can have field descriptors show up inside an empty field without creating a separate text object. You can even set this text dynamically by calculation if you want.

    Placeholder text

    Placeholder text is also helpful in cases where you want to guide the user to a field, without cluttering the layout with field borders, which can be distracting when there is a lot of data. Placeholder text subtly cues the user to the text entry location, without disrupting the layout once all the data has been entered.

    Limitation: Don’t do away with field labels completely. You’ll still likely need some field labels under certain circumstances, such as multiple phone numbers (e.g. home, office, mobile), or numerical data which needs to be identified to be understood.

    After

    5. Custom Theme Colours

    This is such a useful update to the colour palette! You can now drag a colour to the theme colours grid, located directly below the hex picker colour swatch. FileMaker will store the colour, and automatically create both a lighter and darker shade. This is a super easy way to create a range of hues to represent different button states (e.g. lighter on hover, darker when pressed) with literally the click of a button. You can reorder the colours by dragging the swatches around the colour grid.

    Limitation: You can’t directly remove a colour from the colour grid. You can replace an existing colour by dragging a new colour onto it, or you can drag white onto it to “clear” it (although you’ll get gray as the top colour as a result).

    Custom Theme Palette

    Conclusion

    Using or implementing one or more of these new features will definitely improve your solutions and make them more usable and polished. Whether they’ll make them glorious or not—well, that will be up to you!


    Resources

    New in 14:

    Hidden scroll bar feature
    https://community.filemaker.com/docs/DOC-6266

    Button bar
    https://community.filemaker.com/docs/DOC-6263

    Navigation parts
    https://community.filemaker.com/docs/DOC-6262

    Placeholder text
    https://community.filemaker.com/docs/DOC-6265

    Custom theme colours
    http://help.filemaker.com/app/answers/detail/a_id/14417


    Afficher la totalité du billet

    • 0
      billet
    • 0
      commentaire
    • 66
      vues

    Aucun billet pour le moment