{"id":16279,"date":"2023-12-20T23:36:27","date_gmt":"2023-12-20T23:36:27","guid":{"rendered":"https:\/\/www.directimpactsolutions.com\/nouvelle-option-de-purge-pour-laction-de-script-boucle-loop-de-filemaker\/"},"modified":"2024-06-01T01:34:42","modified_gmt":"2024-06-01T01:34:42","slug":"nouvelle-option-de-purge-pour-laction-de-script-boucle-loop-de-filemaker","status":"publish","type":"post","link":"https:\/\/www.directimpactsolutions.com\/fr\/nouvelle-option-de-purge-pour-laction-de-script-boucle-loop-de-filemaker\/","title":{"rendered":"Nouvelle option de purge pour l&rsquo;action de script \u201cBoucle\u201d \/ \u201cLoop\u201d de FileMaker"},"content":{"rendered":"<p>Selon les notes de mise \u00e0 jour de FileMaker Pro de Claris <a href=\"https:\/\/help.claris.com\/en\/pro-release-notes\/content\/index.html\">pour la version 20.3.1<\/a>,<\/p><blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>L&rsquo;option Purge comprend les trois valeurs suivantes :<br\/>1. Syst\u00e9matique : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, le lien est purg\u00e9 avec les donn\u00e9es de jointure.<br\/>2. Minimale : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, les donn\u00e9es minimales sont purg\u00e9es.<br\/>3. Diff\u00e9r\u00e9e : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, les donn\u00e9es et les donn\u00e9es de lien ne sont purg\u00e9es qu&rsquo;apr\u00e8s avoir quitt\u00e9 la boucle.<\/p><\/blockquote><p>Qu&rsquo;est-ce que cela signifie et quel est l&rsquo;impact sur vos solutions FileMaker ?<\/p><div class=\"wp-block-uagb-image uagb-block-57ea04ef wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/flush-option.png\" alt=\"\" width=\"242\" height=\"119\" title=\"\" loading=\"lazy\" role=\"img\"><\/figure><\/div><p>La nouvelle option de <strong>purge<\/strong> pour l\u2019action de script Boucle<\/p><h2 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:400\">Comprendre les liens et les donn\u00e9es de jointure<\/h2><p>Nous pouvons utiliser les liens pour r\u00e9cup\u00e9rer et afficher des donn\u00e9es provenant de tables li\u00e9es.<\/p><p>Dans ce sc\u00e9nario, consid\u00e9rez le lien comme un tunnel allant de l&rsquo;enregistrement actuel de la table courante \u00e0 la table li\u00e9e, ce qui nous aide \u00e0 localiser les enregistrements li\u00e9s.<\/p><p>Chaque fois qu&rsquo;un lien est \u00e9tabli, FileMaker l&rsquo;utilise pour identifier les enregistrements li\u00e9s, interroger les donn\u00e9es li\u00e9es et mettre en cache le r\u00e9sultat de la requ\u00eate. Ces donn\u00e9es d&rsquo;enregistrements li\u00e9s mises en cache sont appel\u00e9es <em>donn\u00e9es de jointure<\/em>.<\/p><p>Si nous mettons \u00e0 jour la valeur de l&rsquo;une des rubriques utilis\u00e9es du c\u00f4t\u00e9 gauche du lien, FileMaker devra r\u00e9tablir le lien (trouver \u00e0 nouveau des enregistrements li\u00e9s) et interroger \u00e0 nouveau les donn\u00e9es de jointure (r\u00e9cup\u00e9rer \u00e0 nouveau les donn\u00e9es des enregistrements li\u00e9s via le lien).<\/p><p>Par exemple, j&rsquo;ai un lien illustr\u00e9 dans la capture d&rsquo;\u00e9cran ci-dessous. Elle est utilis\u00e9e pour afficher une liste d&rsquo;enregistrements li\u00e9s dans une table externe. Sur le c\u00f4t\u00e9 gauche de la relation, j&rsquo;utilise un champ global, zgtProjectCategoryFilter, pour n&rsquo;afficher que les enregistrements li\u00e9s dont la cat\u00e9gorie de projet correspond.<\/p><div class=\"wp-block-uagb-image uagb-block-1aa4e22c wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/relationship.png ,https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/relationship.png 780w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/relationship.png 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/relationship.png\" alt=\"\" class=\"uag-image-16166\" width=\"830\" height=\"626\" title=\"\" loading=\"lazy\" role=\"img\"><\/figure><\/div><p>Une relation utilis\u00e9e pour un portail filtrable<\/p><p>Dans le mod\u00e8le, l&rsquo;utilisateur peut d\u00e9finir la valeur de zgtProjectCategoryFilter sur l&rsquo;une des trois valeurs \u00e0 l&rsquo;aide de ces boutons :<\/p><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"318\" height=\"78\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/buttons.png\" alt=\"\" class=\"wp-image-16169\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/buttons.png 318w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/buttons-300x74.png 300w\" sizes=\"auto, (max-width: 318px) 100vw, 318px\" \/><\/figure><p>Chaque fois qu&rsquo;un utilisateur modifie la valeur, FileMaker doit vider les donn\u00e9es de jointure mises en cache, r\u00e9tablir le lien et interroger \u00e0 nouveau les donn\u00e9es de jointure pour que la table externe affich\u00e9e sur le mod\u00e8le puisse obtenir l&rsquo;effet de \u00a0\u00bb filtrage \u00ab\u00a0.<\/p><h2 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:400\">Implication sur les performances<\/h2><p>Maintenant que nous comprenons les relations et les donn\u00e9es de jointure, quelles sont les implications de la nouvelle option de vidage ?<\/p><p>Imaginez que vous ayez un script qui tourne en boucle. Chaque fois qu&rsquo;il boucle, il met \u00e0 jour un champ sur le c\u00f4t\u00e9 gauche d&rsquo;une relation. Imaginez que cette rubrique soit utilis\u00e9e dans plusieurs liens et qu&rsquo;une grande quantit\u00e9 de donn\u00e9es de jointure soit r\u00e9cup\u00e9r\u00e9e par l&rsquo;interm\u00e9diaire de ces liens. Par d\u00e9faut, FileMaker effectue une purge et une nouvelle requ\u00eate chaque fois que la rubrique de gauche est mise \u00e0 jour. Cela peut avoir de s\u00e9rieuses r\u00e9percussions sur les performances de votre solution, en particulier si elle est ex\u00e9cut\u00e9e sur un r\u00e9seau \u00e9tendu\/WAN (regardez <a href=\"https:\/\/youtu.be\/FrrNzlxgbHU?si=4vVOCBso0M3ou_ew\">cette vid\u00e9o<\/a> pour comprendre pourquoi).<\/p><p>Avant la version 20.3.1, nous disposions d&rsquo;un certain contr\u00f4le, mais limit\u00e9, sur le moment o\u00f9 FileMaker mettait \u00e0 jour les donn\u00e9es de jointure (avec l&rsquo;action de script Actualiser la fen\u00eatre), mais pas lorsqu&rsquo;il s&rsquo;agit d&rsquo;une boucle qui d\u00e9finit les rubriques utilis\u00e9es dans les liens. Dans le cas d&rsquo;un sc\u00e9nario en boucle, FileMaker proc\u00e8de toujours \u00e0 une actualisation et \u00e0 une nouvelle interrogation, quelle que soit la n\u00e9cessit\u00e9.<\/p><p>Avec la version 20.3.1, cette nouvelle fonctionnalit\u00e9 permet aux d\u00e9veloppeurs de contr\u00f4ler le moment o\u00f9 FileMaker doit r\u00e9tablir le lien et actualiser les donn\u00e9es de jointure. Elle nous permet d&rsquo;\u00e9viter les op\u00e9rations de purge co\u00fbteuses lorsqu&rsquo;elles ne sont pas n\u00e9cessaires.<\/p><p>Jetons un second coup d&rsquo;\u0153il aux notes de mise \u00e0 jour ; cette fois, vous devriez disposer d&rsquo;un peu plus de contexte :<\/p><blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>L&rsquo;option Purge comprend les trois valeurs suivantes :<br\/>1. Syst\u00e9matique : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, le lien est purg\u00e9 avec les donn\u00e9es de jointure.<br\/>2. Minimale : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, les donn\u00e9es minimales sont purg\u00e9es.<br\/>3. Diff\u00e9r\u00e9e : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, les donn\u00e9es et les donn\u00e9es de lien ne sont purg\u00e9es qu&rsquo;apr\u00e8s avoir quitt\u00e9 la boucle.<\/p><\/blockquote><p>L&rsquo;option <em>Syst\u00e9matique<\/em> est celle que nous avions avant cette version et c&rsquo;est l&rsquo;option par d\u00e9faut. Si vous ouvrez une solution FileMaker utilisant la version 20.3.1+ de FileMaker Pro pour la premi\u00e8re fois, toutes les options de vidange de la boucle seront d\u00e9finies sur <em>Syst\u00e9matique<\/em>. Cette option n&rsquo;est pas utilis\u00e9e lorsque c&rsquo;est n\u00e9cessaire, mais lorsqu&rsquo;elle peut l&rsquo;\u00eatre.<\/p><p><em>Diff\u00e9r\u00e9e<\/em> est rapide. Son comportement est simple : il essaiera de ne rien purger avant de sortir de la boucle. Il n&rsquo;y aura qu&rsquo;une seule purge, au total, \u00e0 la fin.<\/p><p><em>Minimum<\/em> est un peu myst\u00e9rieux. Au moment de la publication de cet article, il n&rsquo;y a pas de documentation officielle sur cette fonctionnalit\u00e9 autre que ce qui est cit\u00e9 ci-dessus. Le nom semble indiquer que cette option fait quelque chose d&rsquo;intelligent pour minimiser la quantit\u00e9 de donn\u00e9es de jointure purg\u00e9es pendant la boucle. Sur la base de mes tests, je pense que son comportement se situe entre <em>Syst\u00e9matique<\/em> et <em>Diff\u00e9r\u00e9e<\/em>; <em>Minimale<\/em> essaie d&rsquo;effectuer le moins de purge possible, \u00e0 moins que d&rsquo;autres actions de script dans la boucle ne requi\u00e8rent une actualisation des liens.<\/p><h2 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:400\">Tests de comportement et de performance<\/h2><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\">M\u00e9thode de test<\/h3><p>Pour tester cette fonctionnalit\u00e9, j&rsquo;ai utilis\u00e9 un sc\u00e9nario similaire \u00e0 celui que j&rsquo;ai d\u00e9crit ci-dessus : un champ qui fait partie de neuf relations diff\u00e9rentes est mis \u00e0 jour de mani\u00e8re r\u00e9p\u00e9t\u00e9e.<\/p><p>Dans l&rsquo;exemple pr\u00e9c\u00e9dent, je n&rsquo;ai montr\u00e9 qu&rsquo;une seule relation avec le champ global. En r\u00e9alit\u00e9, j&rsquo;en ai neuf.<\/p><div class=\"wp-block-uagb-image uagb-block-408afd79 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/nine-relationships.png ,https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/nine-relationships.png 780w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/nine-relationships.png 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/nine-relationships.png\" alt=\"\" class=\"uag-image-16172\" width=\"433\" height=\"510\" title=\"\" loading=\"lazy\" role=\"img\"><\/figure><\/div><p>Neuf relations qui utilisent le champ zgtProjectCategoryFIlter sur le c\u00f4t\u00e9 gauche<\/p><p>Ce n&rsquo;est probablement pas la fa\u00e7on la plus intelligente de construire une vue en grille dans FileMaker, mais elle est parfaite pour tester cette nouvelle fonctionnalit\u00e9.<\/p><p>Le script de test que j&rsquo;ai utilis\u00e9 est illustr\u00e9 dans la capture d&rsquo;\u00e9cran ci-dessous. Il s&rsquo;ex\u00e9cute \u00e0 partir d&rsquo;un mod\u00e8le qui utilise ces liens pour afficher des donn\u00e9es li\u00e9es dans des tables externes. Le script effectue de nombreuses boucles et d\u00e9finit \u00e0 chaque fois la rubrique zgtProjectCategoryFilter avec une valeur diff\u00e9rente ; \u00e0 la fin, il affiche le temps total n\u00e9cessaire et la liste des donn\u00e9es connexes r\u00e9cup\u00e9r\u00e9es.<\/p><details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Processus de test et donn\u00e9es<\/summary><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\">Cas de test 1 &#8211; 999 boucles, r\u00e9cup\u00e9ration des donn\u00e9es de jointure au milieu de la boucle et \u00e9valuation des portails<\/h3>\n\n<p>Pour le premier test, \u00e0 l&rsquo;int\u00e9rieur de chaque boucle, j&rsquo;ai essay\u00e9 de r\u00e9cup\u00e9rer une donn\u00e9e de jointure et de l&rsquo;enregistrer.<\/p>\n\n<div class=\"wp-block-uagb-image uagb-block-5bf38036 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/test-case-1.png ,https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/test-case-1.png 780w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/test-case-1.png 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/test-case-1.png\" alt=\"\" class=\"uag-image-16175\" width=\"730\" height=\"158\" title=\"\" loading=\"lazy\" role=\"img\"><\/figure><\/div>\n\n<p>Script utilis\u00e9<\/p>\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td><strong>Sc\u00e9nario de test<\/strong><\/td><td><strong>Syst\u00e9matique<\/strong><\/td><td><strong>Minimale<\/strong><\/td><td><strong>Diff\u00e9r\u00e9e<\/strong><\/td><\/tr><tr><td><strong>1<\/strong><\/td><td>999 boucles<br\/>9 relations<br\/>23 enregistrements li\u00e9s au maximum<br\/>2023-11-26<\/td><td>22 secondes<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle sont exactes<\/td><td>18 secondes<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle sont exactes<\/td><td>1 seconde<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle ne sont PAS exactes.<\/td><\/tr><tr><td><strong>2<\/strong><\/td><td>999 boucles<br\/>9 relations<br\/>13 enregistrements li\u00e9s au maximum<br\/>2023-12-10<\/td><td>21 secondes<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle sont exactes<\/td><td>18 secondes<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle sont exactes<\/td><td>~0 seconde<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle ne sont PAS exactes.<\/td><\/tr><tr><td><strong>3<\/strong><\/td><td>999 boucles<br\/>5 relations<br\/>13 enregistrements li\u00e9s<br\/>2023-12-24<\/td><td>21 secondes<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle sont exactes<\/td><td>18 secondes<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle sont exactes<\/td><td>~0 seconde<br\/>Les donn\u00e9es r\u00e9cup\u00e9r\u00e9es en milieu de boucle ne sont PAS exactes.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\" id=\"Test-Case-2---999-loops,-only-evaluate-portals\">Test 2 &#8211; 999 boucles, \u00e9valuation des portails uniquement<\/h3>\n\n<p>Maintenant, je vais d\u00e9sactiver l&rsquo;\u00e9tape qui r\u00e9cup\u00e8re les donn\u00e9es connexes au milieu de la boucle, en ne laissant que la mise en page qui utilise les donn\u00e9es de jointure.<\/p>\n\n<div class=\"wp-block-uagb-image uagb-block-c322bdac wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/11\/script-used.png\" alt=\"\" width=\"730\" height=\"156\" title=\"\" loading=\"lazy\" role=\"img\"><\/figure><\/div>\n\n<p>Script utilis\u00e9<\/p>\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td><strong>Sc\u00e9nario de test<\/strong><\/td><td><strong>Syst\u00e9matique<\/strong><\/td><td><strong>Minimale<\/strong><\/td><td><strong>Diff\u00e9r\u00e9e<\/strong><\/td><\/tr><tr><td><strong>1<\/strong><\/td><td>999 boucles<br\/>9 relations<br\/>23 enregistrements li\u00e9s au maximum<\/td><td>1 seconde<\/td><td>~0 seconde<\/td><td>~0 seconde<\/td><\/tr><tr><td><strong>2<\/strong><\/td><td>999 boucles<br\/>9 relations<br\/>13 enregistrements li\u00e9s au maximum<\/td><td>~0 seconde<\/td><td>~0 seconde<\/td><td>~0 seconde<\/td><\/tr><tr><td><strong>3<\/strong><\/td><td>999 boucles<br\/>5 relations<br\/>13 enregistrements li\u00e9s<\/td><td>~0 seconde<\/td><td>~0 seconde<\/td><td>~0 seconde<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\" id=\"Test-Case-3---99,900-loops,-only-evaluate-portals\">Cas de test 3 &#8211; 99 900 boucles, \u00e9valuation des portails uniquement<\/h3>\n\n<p>Pour tester la surcharge introduite par les mises en page pendant les boucles, j&rsquo;ai multipli\u00e9 par cent le nombre total de boucles pour atteindre 99900.<\/p>\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td><strong>Sc\u00e9nario de test<\/strong><\/td><td><strong>Syst\u00e9matique<\/strong><\/td><td><strong>Minimale<\/strong><\/td><td><strong>Diff\u00e9r\u00e9e<\/strong><\/td><\/tr><tr><td><strong>1<\/strong><\/td><td>99900 boucles<br\/>9 relations<br\/>23 enregistrements li\u00e9s au maximum<\/td><td>50 secondes<\/td><td>10 secondes<\/td><td>8 secondes<\/td><\/tr><tr><td><strong>2<\/strong><\/td><td>99900 boucles<br\/>9 relations<br\/>13 enregistrements li\u00e9s au maximum<\/td><td>49 secondes<\/td><td>9 secondes<\/td><td>9 secondes<\/td><\/tr><tr><td><strong>3<\/strong><\/td><td>99900 boucles<br\/>5 relations<br\/>13 enregistrements li\u00e9s<\/td><td>47 secondes<\/td><td>9 secondes<\/td><td>9 secondes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\" id=\"Bonus-Test-Case---99,900-loops,-only-evaluate-portals-&amp;-data-viewer-accidentally-left-open-with-&#x201C;automatically-evaluate&#x201D;-on\">Test bonus &#8211; 99 900 boucles, \u00e9valuation des portails uniquement et visualisation des donn\u00e9es laiss\u00e9e accidentellement ouverte avec l&rsquo;option \u00ab\u00a0\u00e9valuation automatique\u00a0\u00bb activ\u00e9e<\/h3>\n\n<p>Le fait d&rsquo;avoir accidentellement laiss\u00e9 la visionneuse de donn\u00e9es ouverte a consid\u00e9rablement ralenti le processus. M\u00eame si je ne l&rsquo;utilise pas pour regarder des donn\u00e9es de jointure pertinentes pour mon test.<\/p><\/details><p><\/p><h2 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:400\">Conclusions et consid\u00e9rations d&rsquo;utilisation<\/h2><ol class=\"wp-block-list\" start=\"1\"><li>L&rsquo;option <em>Diff\u00e9r\u00e9e<\/em> n&rsquo;efface pas du tout les donn\u00e9es de jointure au milieu de la boucle. C&rsquo;est pourquoi, dans le cas de test 1, les donn\u00e9es de jointure au milieu de la boucle r\u00e9cup\u00e9r\u00e9es avec l&rsquo;option <em>Diff\u00e9r\u00e9e<\/em> sont inexactes.<ol class=\"wp-block-list\" start=\"1\"><li>Cela confirme le comportement mentionn\u00e9 dans les notes de version.<\/li>\n\n<li>Cela explique \u00e9galement pourquoi cette option est la plus rapide des trois.<\/li>\n\n<li>Nous ne devrions utiliser l&rsquo;option <em>Diff\u00e9r\u00e9e<\/em> que lorsque les donn\u00e9es de jointure ne sont pas pertinentes pour la logique de la boucle. Sinon, nous obtiendrons des donn\u00e9es erron\u00e9es.<\/li><\/ol><\/li>\n\n<li>L&rsquo;option <em>Syst\u00e9matique<\/em> est la plus lente, comme nous nous y attendions.<\/li>\n\n<li>Les performances de l&rsquo;option <em>Minimale<\/em> se situent entre <em>Syst\u00e9matique<\/em> et <em>Diff\u00e9r\u00e9e<\/em>.<ol class=\"wp-block-list\" start=\"1\"><li>Elle tente de maintenir la pr\u00e9cision de l&rsquo;\u00e9valuation des donn\u00e9es de jointure au milieu de la boucle, comme le montre le cas de test 1.<\/li>\n\n<li>Cependant, plus il y a de \u00ab\u00a0donn\u00e9es de jointure \u00e9vitables\u00a0\u00bb, plus cette option devient performante, au point d&rsquo;\u00eatre comparable aux performances de l&rsquo;option <em>Diff\u00e9r\u00e9e<\/em> (comparez les r\u00e9sultats des cas de test 1 et 3).<\/li>\n\n<li>Cela <em>semble<\/em> \u00eatre l&rsquo;option la plus \u00e9vidente, mais ne me citez pas sur ce point. Attendons la documentation officielle qui clarifie le comportement avant de l&rsquo;adopter en masse.<\/li><\/ol><\/li>\n\n<li>Les diff\u00e9rentes op\u00e9rations qui s&rsquo;appuient sur les relations ont des surco\u00fbts de performance diff\u00e9rents.<ol class=\"wp-block-list\" start=\"1\"><li>La r\u00e9cup\u00e9ration explicite des donn\u00e9es de jointure dans le script introduit un surco\u00fbt de performance beaucoup plus important que l&rsquo;affichage des champs li\u00e9s dans les mod\u00e8les (comparez les r\u00e9sultats des cas de test 1 et 2).<\/li>\n\n<li>Le nombre de relations touchant le champ de mis \u00e0 jour n&rsquo;a pas beaucoup d&rsquo;importance. Le nombre d&rsquo;enregistrements li\u00e9s a un peu d&rsquo;importance. Cela est logique car le nombre d&rsquo;enregistrements li\u00e9s d\u00e9termine le nombre de donn\u00e9es de jointure pouvant \u00eatre extraites (cas test 3).<\/li>\n\n<li>Le visualiseur de donn\u00e9es modifie le comportement de FileMaker en mati\u00e8re d&rsquo;\u00e9valuation et de purge (sc\u00e9nario de test bonus).<\/li><\/ol><\/li><\/ol><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color\" id=\"One-More-Thing\">Une derni\u00e8re chose<\/h3><p>Inspir\u00e9 par ce <a href=\"https:\/\/the.fmsoup.org\/t\/new-loop-options-in-v20-3\/3804\/4\">fil de discussion<\/a>, nous pourrions utiliser cette nouvelle option de purge avec la <a href=\"https:\/\/youtu.be\/fc0I2HNi2nw?si=UJFnyb9coF4XPBK8\">technique de boucle \u00e0 passage unique<\/a> pour contr\u00f4ler le comportement de la purge des donn\u00e9es de jointure de l&rsquo;ensemble du script.<\/p><p>J&rsquo;esp\u00e8re que cet article vous \u00e9clairera sur cette nouvelle fonctionnalit\u00e9.<\/p>","protected":false},"excerpt":{"rendered":"<p>Selon les notes de mise \u00e0 jour de FileMaker Pro de Claris pour la version 20.3.1, L&rsquo;option Purge comprend les trois valeurs suivantes :1. Syst\u00e9matique : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, le lien est purg\u00e9 avec les donn\u00e9es de jointure.2. Minimale : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.directimpactsolutions.com\/fr\/nouvelle-option-de-purge-pour-laction-de-script-boucle-loop-de-filemaker\/\"> <span class=\"screen-reader-text\">Nouvelle option de purge pour l&rsquo;action de script \u201cBoucle\u201d \/ \u201cLoop\u201d de FileMaker<\/span> Lire la suite >><\/a><\/p>\n","protected":false},"author":11,"featured_media":16184,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","footnotes":""},"categories":[34],"tags":[],"class_list":["post-16279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-low-code"],"uagb_featured_image_src":{"full":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min.jpg",2235,1341,false],"thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-150x150.jpg",150,150,true],"medium":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-300x180.jpg",300,180,true],"medium_large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-768x461.jpg",768,461,true],"large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-1024x614.jpg",1024,614,true],"1536x1536":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-1536x922.jpg",1536,922,true],"2048x2048":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-2048x1229.jpg",2048,1229,true],"woocommerce_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-300x300.jpg",300,300,true],"woocommerce_single":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-600x360.jpg",600,360,true],"woocommerce_gallery_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/12\/iStock-1354745114-min-100x100.jpg",100,100,true]},"uagb_author_info":{"display_name":"Weihao Ding","author_link":"https:\/\/www.directimpactsolutions.com\/fr\/author\/weihao-dingdirectimpactsolutions-com\/"},"uagb_comment_info":0,"uagb_excerpt":"Selon les notes de mise \u00e0 jour de FileMaker Pro de Claris pour la version 20.3.1, L&rsquo;option Purge comprend les trois valeurs suivantes :1. Syst\u00e9matique : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle, le lien est purg\u00e9 avec les donn\u00e9es de jointure.2. Minimale : lors de la d\u00e9finition d&rsquo;une rubrique dans une boucle,\u2026","_links":{"self":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/16279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/comments?post=16279"}],"version-history":[{"count":7,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/16279\/revisions"}],"predecessor-version":[{"id":21090,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/16279\/revisions\/21090"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media\/16184"}],"wp:attachment":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=16279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/categories?post=16279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/tags?post=16279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}