{"id":12092,"date":"2020-06-16T17:55:28","date_gmt":"2020-06-16T17:55:28","guid":{"rendered":"https:\/\/www.directimpactsolutions.com\/?p=12092"},"modified":"2025-10-01T02:57:44","modified_gmt":"2025-10-01T02:57:44","slug":"deploying-add-ons-automatically","status":"publish","type":"post","link":"https:\/\/www.directimpactsolutions.com\/en\/deploying-add-ons-automatically\/","title":{"rendered":"Deploying Add-Ons Automatically with FileMaker 19"},"content":{"rendered":"<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"580\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-1024x580.jpg\" alt=\"Deploying add-ons automatically with FileMaker 19\" class=\"wp-image-12099\" style=\"width:726px;height:411px\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-1024x580.jpg 1024w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-300x170.jpg 300w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-768x435.jpg 768w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-600x340.jpg 600w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons.jpg 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\">What are FileMaker Add-ons?<\/h3><p>The ability to create&nbsp;<a href=\"https:\/\/help.claris.com\/en\/pro-help\/content\/add-ons.html?Highlight=add%20ons\" target=\"_blank\" rel=\"noreferrer noopener\">add-ons<\/a>&nbsp;is a new feature released in FileMaker 19.0.1. It allows users to quickly and easily add modules to FileMaker solutions. An add-on is a package containing the following:<\/p><ul class=\"wp-block-list\"><li>Table schema<\/li>\n\n<li>Table data<\/li>\n\n<li>Table occurrences<\/li>\n\n<li>Scripts<\/li>\n\n<li>Custom menus<\/li>\n\n<li>Themes<\/li>\n\n<li>Layouts<\/li><\/ul><p>These elements add functionality to a FileMaker solution with just a few clicks. What formerly took multiple copy and paste steps is now as easy as drag-and-drop.<\/p><p>Here is a video of this process:<\/p><figure class=\"wp-block-video\"><video controls src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/fmLog_Addon.mp4\"><\/video><\/figure><h3 class=\"wp-block-heading\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:0;padding-bottom:0;padding-left:0\">How to create a FileMaker add-on:<\/h3><p>Here is the\u00a0<u><a href=\"https:\/\/help.claris.com\/en\/pro-help\/content\/add-ons.html?Highlight=add%20ons\" target=\"_blank\" rel=\"noreferrer noopener\">official Claris documentation<\/a><\/u>\u00a0on add-ons. Claris also released a\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=4b2p-I4eKBE\" target=\"_blank\" rel=\"noreferrer noopener\"><u>video<\/u><\/a>\u00a0on this subject. The remainder of this article assumes you are comfortable using the add-on\u00a0feature in FileMaker\u00a0Pro 19.<\/p><h3 class=\"wp-block-heading\">How to deploy a custom add-on:<\/h3><p>Using&nbsp;<strong>Save a Copy as Add-On Package<\/strong>&nbsp;will create an add-on with the default descriptive information, as you can see in the image below.<\/p><figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"529\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons1.png\" alt=\"\" class=\"wp-image-12095\" style=\"width:669px;height:391px\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons1.png 903w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons1-300x176.png 300w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons1-768x450.png 768w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons1-600x351.png 600w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><\/figure><p>Default descriptive information of a new add-on<\/p><p>Here are three different methods that can be used to deploy an add-on to a new FileMaker installation:<\/p><ul class=\"wp-block-list\"><li>Install the add-on on one machine, put the files in a compressed file, then extract it to the user\u2019s add-on directory. A new compressed file is needed for every new version of the add-on.<\/li>\n\n<li>Install the add-on on one machine and create an installer or script for deployment. A new installer must be created for every new version of the add-on.<\/li>\n\n<li>Use a&nbsp;hosted FileMaker&nbsp;file to install the add-on on a user\u2019s machine. The deployment script will have to be run again in case a new version of the add-on is released.<\/li><\/ul><p>Note that add-ons are installed per FileMaker installation in the following directories:<\/p><pre class=\"wp-block-code\"><code>MacOS: Library\/Application Support\/FileMaker\/Extensions\/AddonModules \n\nWindows: AppData\\Local\\FileMaker\\Extensions\\AddonModules<\/code><\/pre><h3 class=\"wp-block-heading\">Deploying Add-ons with FileMaker<\/h3><p>It\u2019s important to know that the descriptive information about the add-on is stored as JSON files in \u201cUTF-8 with BOM\u201d file encoding. FileMaker does not support writing files in this format. My workaround is to download a UTF-8 with BOM file that I uploaded to S3 and use in a container field. This method keeps the file encoding of the JSON files as UTF-8 with BOM. This may sound complicated, but it\u2019s actually fairly simple. Check out the script in fmLog (at the end of this article) for an example of this technique.<\/p><h4 class=\"wp-block-heading has-medium-font-size\"><strong>Set up the deployment script&nbsp;<\/strong>(done once per module)<strong>:<\/strong><\/h4><ol class=\"wp-block-list\"><li>Copy the \u201cSave as add-on\u201d script from the fmLog file to your solution.<\/li>\n\n<li>Update all \u201cExport Field Contents\u201d script steps to reference a new global container field. This script step is used to export files in the UTF-8 with BOM file type.&nbsp;<strong>I\u2019m currently working on a new tool that doesn\u2019t require this step<\/strong>, so stay tuned for our next&nbsp;<a href=\"https:\/\/directimpactsolutions.com\/en\/blog\/\">blog<\/a>&nbsp;about add-ons.<\/li>\n\n<li>Customize the variables where indicated.<\/li><\/ol><h4 class=\"wp-block-heading has-medium-font-size\"><strong>Deploying the add-on on user machines:<\/strong><\/h4><ol class=\"wp-block-list\"><li>Run the \u201cSave as add-on\u201d script where you want to deploy the add-on. The script will save the FileMaker file on the local machine and modify its descriptive information. This works on local and hosted files.<\/li>\n\n<li>Restart FileMaker to see the changes in the add-on\u2019s description, as prompted by the dialog box that comes up once the save is completed.<\/li>\n\n<li>Install the add-on in the target FileMaker solution.<\/li><\/ol><figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"910\" height=\"530\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons2.png\" alt=\"\" class=\"wp-image-12097\" style=\"width:667px;height:388px\" srcset=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons2.png 910w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons2-300x175.png 300w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons2-768x447.png 768w, https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/addons2-600x349.png 600w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><\/figure><p>Custom descriptive information of an add-on written through a FileMaker script<\/p><h3 class=\"wp-block-heading\">Warning<\/h3><p>Installing add-ons can break your solution. They can also contain malicious code that is capable of leaking data from a database. Please review the code in add-ons thoroughly before installing them. Steven Blackwell and Stephen Dolenski&nbsp;<a href=\"https:\/\/fmforums.com\/files\/file\/120-the-new-add-on-feature-caveats-cautions-and-nuances\/\" target=\"_blank\" rel=\"noreferrer noopener\">published a write-up<\/a>&nbsp;on this subject.<\/p><p>Reach out to <a href=\"mailto:sales@directimpactsolutions.com\" target=\"_blank\" rel=\"noreferrer noopener\">sales@directimpactsolutions.com<\/a> if you need assistance with the technique detailed above.<\/p><h3 class=\"wp-block-heading\">fmLog<\/h3><p>The scripts mentioned in this blog post can be found in our awesome and free logging module, fmLog:&nbsp;<a href=\"https:\/\/www.directimpactsolutions.com\/en\/solutions\/fmlog-2-1-add-on\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.directimpactsolutions.com\/en\/solutions\/fmlog-2-1-add-on\/<\/a><\/p><hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--70);margin-bottom:var(--wp--preset--spacing--70)\"\/><p class=\"has-small-font-size\"><em>*This article was originally written for AppWorks, which has since joined Direct Impact Solutions. This article is intended for informative purposes only. To the best of our knowledge, this information is accurate as of the date of publication.<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>What are FileMaker Add-ons? The ability to create&nbsp;add-ons&nbsp;is a new feature released in FileMaker 19.0.1. It allows users to quickly and easily add modules to FileMaker solutions. An add-on is a package containing the following: These elements add functionality to a FileMaker solution with just a few clicks. What formerly took multiple copy and paste &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.directimpactsolutions.com\/en\/deploying-add-ons-automatically\/\"> <span class=\"screen-reader-text\">Deploying Add-Ons Automatically with FileMaker 19<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":6,"featured_media":12099,"comment_status":"closed","ping_status":"open","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":[29],"tags":[249,39],"class_list":["post-12092","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-low-code","tag-add-ons","tag-filemaker"],"uagb_featured_image_src":{"full":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons.jpg",1500,850,false],"thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-150x150.jpg",150,150,true],"medium":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-300x170.jpg",300,170,true],"medium_large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-768x435.jpg",768,435,true],"large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-1024x580.jpg",1024,580,true],"1536x1536":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons.jpg",1500,850,false],"2048x2048":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons.jpg",1500,850,false],"woocommerce_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-300x300.jpg",300,300,true],"woocommerce_single":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-600x340.jpg",600,340,true],"woocommerce_gallery_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2023\/05\/Add-Ons-100x100.jpg",100,100,true]},"uagb_author_info":{"display_name":"Direct Impact Solutions","author_link":"https:\/\/www.directimpactsolutions.com\/en\/author\/direct-impact-solutions\/"},"uagb_comment_info":0,"uagb_excerpt":"What are FileMaker Add-ons? The ability to create&nbsp;add-ons&nbsp;is a new feature released in FileMaker 19.0.1. It allows users to quickly and easily add modules to FileMaker solutions. An add-on is a package containing the following: These elements add functionality to a FileMaker solution with just a few clicks. What formerly took multiple copy and paste&hellip;","_links":{"self":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts\/12092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/comments?post=12092"}],"version-history":[{"count":7,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts\/12092\/revisions"}],"predecessor-version":[{"id":20715,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/posts\/12092\/revisions\/20715"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/media\/12099"}],"wp:attachment":[{"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/media?parent=12092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/categories?post=12092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/en\/wp-json\/wp\/v2\/tags?post=12092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}