<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article How to create an add-in for JMP in JMP Blog</title>
    <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/ba-p/29986</link>
    <description>&lt;P&gt;&lt;A href="http://www.jmp.com/software" target="_blank"&gt;JMP 9&lt;/A&gt; introduced an &lt;A href="http://www.jmp.com/addins" target="_blank"&gt;add-in&lt;/A&gt; architecture that makes creating and distributing extensions to JMP easy. This makes &lt;A href="http://www.jmp.com" target="_blank"&gt;JMP&lt;/A&gt; a platform for creating new analytic tools. It also makes it easy to add new functionality. Creating a JMP add-in is pretty simple. All you need to know is JMP Scripting Language (JSL).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There are two distinct phases to the process of creating a JMP add-in: development and deployment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We'll cover development first.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Begin the process of developing your add-in by creating a folder to contain all the pieces that your add-in might require. This is your "add-in folder".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="createnewfolder1.jpeg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16789i28E12C1C9E1E9C22/image-size/large?v=v2&amp;amp;px=999" role="button" title="createnewfolder1.jpeg" alt="createnewfolder1.jpeg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 772 --&gt;&lt;/P&gt;
&lt;P&gt;Next, you'll need to decide on some names.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Each JSL add-in must have a unique ID. This is a name that is rarely seen by the end user of an add-in. We suggest that you use something like the &lt;A href="http://en.wikipedia.org/wiki/Reverse-DNS" target="_blank"&gt;reverse DNS naming convention&lt;/A&gt; to create this unique name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For this example, I'll call my add-in "com.jmp.jperk.texttocols".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;An add-in also has a display name, which is what the user will see most of the time. This is a friendlier name, and there is no requirement for uniqueness with this name. I'll call mine "Text to Columns".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In your add-in folder, create a text file called "addin.def".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="addindef1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16790i406C7C701EA13834/image-size/large?v=v2&amp;amp;px=999" role="button" title="addindef1.jpg" alt="addindef1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The contents of this file should be as follows, substituting your unique ID and display name as appropriate:&lt;/P&gt;
&lt;PRE style="font-size: 1.2em; line-height: 65%;"&gt;id="com.jmp.jperk.texttocols"&lt;/PRE&gt;
&lt;P&gt;name="Text to Columns"&lt;/P&gt;
&lt;P&gt;Now, you need to register your add-in with JMP. Do this by opening the addin.def file with JMP. When you do this, JMP will prompt you to ask if you want to install your add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="installaddin2.jpg" style="width: 310px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16791i70C6AF423E5F85AD/image-size/large?v=v2&amp;amp;px=999" role="button" title="installaddin2.jpg" alt="installaddin2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This seems odd at first, but you'll need this so JMP knows about your add-in as you develop it. Go ahead and click "Install" to complete the registration.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This registration connects the ID for your add-in with your add-in directory. You can now reference this directory using the $ADDIN_HOME(uniqueID) path variable. For example, you could use the include function like this:&lt;/P&gt;
&lt;PRE style="font-size: 1.2em; line-height: 65%;"&gt;include("$ADDIN_HOME(com.jmp.jperk.texttocols)/texttocols.jsl");&lt;/PRE&gt;
&lt;P&gt;Now begin writing the JSL for your add in. Save it into your add-in directory.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you write your JSL, if you need to refer to any external files, like data or a DLL, put them in your add-in directory. You should use the $ADDIN_HOME(uniqueID) path variable to reference them in your JSL code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After your JSL is complete, you'll need to build a custom menu, so users of your add-in can access it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Go to View-&amp;gt;Customize-&amp;gt;Menus and Toolbars to launch the menu editor.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16792iD06D7A098F423DBD/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor1.jpg" alt="MenuEditor1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 776 --&gt;&lt;/P&gt;
&lt;P&gt;Click the "Change..." button at the top of the editor to change to editing customizations for your add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor2.jpg" style="width: 457px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16793i017BAC4F4DA08CE0/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor2.jpg" alt="MenuEditor2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now, you can create a custom menu item to launch your JSL. I'm putting mine in the Columns menu after a separator.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor3.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16794iE816A20473826BBA/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor3.jpg" alt="MenuEditor3.jpg" /&gt;&lt;/span&gt;&lt;!-- 777 --&gt;&lt;/P&gt;
&lt;P&gt;Give your menu command a unique, Internal Name. This is the name that JMP will use to find this menu item if it's referred to by other custom menus. Next, put the text of the menu item itself in the Caption field. This is what will be shown in the menu. You can also insert a tooltip in the Tip field. Use the Localize buttons to put localized versions of the Caption and Tip, if you desire.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the "Action" section, choose "Run JSL in this file" and then click the the checkbox next to "Use add-in home folder" and make sure that your add-in ID is chosen.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note the "Icon" section where you could use an image file from your add-in home folder as the icon for your menu item.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor4.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16795iA0C79A4C66AD53B0/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor4.jpg" alt="MenuEditor4.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;When you click "OK", JMP will save the customization file you just created in your add-in directory as "addin.jmpcust".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jmpcust1.jpg" style="width: 331px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16796iCA1A88BA3D427885/image-size/large?v=v2&amp;amp;px=999" role="button" title="jmpcust1.jpg" alt="jmpcust1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You're now ready to package your add-in for deployment. You need to create a .ZIP archive of: 1) addin.def, 2) addin.jmpcust, 3) your .JSL file and any other dependencies.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="createziparchive1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16797i6BFA60435DE3A06B/image-size/large?v=v2&amp;amp;px=999" role="button" title="createziparchive1.jpg" alt="createziparchive1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 773 --&gt;&lt;/P&gt;
&lt;P&gt;You'll need to change the ".zip" extension on the archive to ".jmpaddin".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="renameziparchive1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16798i484516BA67CB6714/image-size/large?v=v2&amp;amp;px=999" role="button" title="renameziparchive1.jpg" alt="renameziparchive1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 779 --&gt;&lt;/P&gt;
&lt;P&gt;Now you can test your packaged add-in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Start by Unregistering the development version of your add-in. (View-&amp;gt;add-ins)&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="unregister1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16799i76D42F6C42D17407/image-size/large?v=v2&amp;amp;px=999" role="button" title="unregister1.jpg" alt="unregister1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now, double-click on the .jmpaddin file that is now your deployable add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="doubleclick1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16800i4BCE391D25879659/image-size/large?v=v2&amp;amp;px=999" role="button" title="doubleclick1.jpg" alt="doubleclick1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 774 --&gt;&lt;/P&gt;
&lt;P&gt;JMP will ask you if you'd like to install your add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="installaddin2.jpg" style="width: 310px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16801i2BA9D740F72DE769/image-size/large?v=v2&amp;amp;px=999" role="button" title="installaddin2.jpg" alt="installaddin2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After you install it, you'll see it listed in the View-&amp;gt;Add-ins... dialog. Note that the directory is not your add-in directory but a directory in the user area for JMP.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="viewaddins2.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16802i725A4D977948D5C6/image-size/large?v=v2&amp;amp;px=999" role="button" title="viewaddins2.jpg" alt="viewaddins2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 783 --&gt;&lt;/P&gt;
&lt;P&gt;JMP has expanded the .zip archive into this user area. Click on the directory name in the dialog to see its contents. This is convenient for looking at any JSL used by an add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="useraddindirectory1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16803i6AED8D1D2A365846/image-size/large?v=v2&amp;amp;px=999" role="button" title="useraddindirectory1.jpg" alt="useraddindirectory1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 782 --&gt;&lt;/P&gt;
&lt;P&gt;Finally, you can go to the custom menu created by the add-in to launch it.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="texttocolsmenu1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16804i9A1FE67A46318F32/image-size/large?v=v2&amp;amp;px=999" role="button" title="texttocolsmenu1.jpg" alt="texttocolsmenu1.jpg" /&gt;&lt;/span&gt;&lt;!-- 780 --&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 08 Apr 2019 16:04:54 GMT</pubDate>
    <dc:creator>Jeff_Perkinson</dc:creator>
    <dc:date>2019-04-08T16:04:54Z</dc:date>
    <item>
      <title>How to create an add-in for JMP</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/ba-p/29986</link>
      <description>&lt;P&gt;&lt;A href="http://www.jmp.com/software" target="_blank"&gt;JMP 9&lt;/A&gt; introduced an &lt;A href="http://www.jmp.com/addins" target="_blank"&gt;add-in&lt;/A&gt; architecture that makes creating and distributing extensions to JMP easy. This makes &lt;A href="http://www.jmp.com" target="_blank"&gt;JMP&lt;/A&gt; a platform for creating new analytic tools. It also makes it easy to add new functionality. Creating a JMP add-in is pretty simple. All you need to know is JMP Scripting Language (JSL).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There are two distinct phases to the process of creating a JMP add-in: development and deployment.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We'll cover development first.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Begin the process of developing your add-in by creating a folder to contain all the pieces that your add-in might require. This is your "add-in folder".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="createnewfolder1.jpeg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16789i28E12C1C9E1E9C22/image-size/large?v=v2&amp;amp;px=999" role="button" title="createnewfolder1.jpeg" alt="createnewfolder1.jpeg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 772 --&gt;&lt;/P&gt;
&lt;P&gt;Next, you'll need to decide on some names.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Each JSL add-in must have a unique ID. This is a name that is rarely seen by the end user of an add-in. We suggest that you use something like the &lt;A href="http://en.wikipedia.org/wiki/Reverse-DNS" target="_blank"&gt;reverse DNS naming convention&lt;/A&gt; to create this unique name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For this example, I'll call my add-in "com.jmp.jperk.texttocols".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;An add-in also has a display name, which is what the user will see most of the time. This is a friendlier name, and there is no requirement for uniqueness with this name. I'll call mine "Text to Columns".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In your add-in folder, create a text file called "addin.def".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="addindef1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16790i406C7C701EA13834/image-size/large?v=v2&amp;amp;px=999" role="button" title="addindef1.jpg" alt="addindef1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The contents of this file should be as follows, substituting your unique ID and display name as appropriate:&lt;/P&gt;
&lt;PRE style="font-size: 1.2em; line-height: 65%;"&gt;id="com.jmp.jperk.texttocols"&lt;/PRE&gt;
&lt;P&gt;name="Text to Columns"&lt;/P&gt;
&lt;P&gt;Now, you need to register your add-in with JMP. Do this by opening the addin.def file with JMP. When you do this, JMP will prompt you to ask if you want to install your add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="installaddin2.jpg" style="width: 310px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16791i70C6AF423E5F85AD/image-size/large?v=v2&amp;amp;px=999" role="button" title="installaddin2.jpg" alt="installaddin2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This seems odd at first, but you'll need this so JMP knows about your add-in as you develop it. Go ahead and click "Install" to complete the registration.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This registration connects the ID for your add-in with your add-in directory. You can now reference this directory using the $ADDIN_HOME(uniqueID) path variable. For example, you could use the include function like this:&lt;/P&gt;
&lt;PRE style="font-size: 1.2em; line-height: 65%;"&gt;include("$ADDIN_HOME(com.jmp.jperk.texttocols)/texttocols.jsl");&lt;/PRE&gt;
&lt;P&gt;Now begin writing the JSL for your add in. Save it into your add-in directory.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you write your JSL, if you need to refer to any external files, like data or a DLL, put them in your add-in directory. You should use the $ADDIN_HOME(uniqueID) path variable to reference them in your JSL code.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After your JSL is complete, you'll need to build a custom menu, so users of your add-in can access it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Go to View-&amp;gt;Customize-&amp;gt;Menus and Toolbars to launch the menu editor.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16792iD06D7A098F423DBD/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor1.jpg" alt="MenuEditor1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 776 --&gt;&lt;/P&gt;
&lt;P&gt;Click the "Change..." button at the top of the editor to change to editing customizations for your add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor2.jpg" style="width: 457px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16793i017BAC4F4DA08CE0/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor2.jpg" alt="MenuEditor2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now, you can create a custom menu item to launch your JSL. I'm putting mine in the Columns menu after a separator.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor3.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16794iE816A20473826BBA/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor3.jpg" alt="MenuEditor3.jpg" /&gt;&lt;/span&gt;&lt;!-- 777 --&gt;&lt;/P&gt;
&lt;P&gt;Give your menu command a unique, Internal Name. This is the name that JMP will use to find this menu item if it's referred to by other custom menus. Next, put the text of the menu item itself in the Caption field. This is what will be shown in the menu. You can also insert a tooltip in the Tip field. Use the Localize buttons to put localized versions of the Caption and Tip, if you desire.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the "Action" section, choose "Run JSL in this file" and then click the the checkbox next to "Use add-in home folder" and make sure that your add-in ID is chosen.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note the "Icon" section where you could use an image file from your add-in home folder as the icon for your menu item.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MenuEditor4.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16795iA0C79A4C66AD53B0/image-size/large?v=v2&amp;amp;px=999" role="button" title="MenuEditor4.jpg" alt="MenuEditor4.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;When you click "OK", JMP will save the customization file you just created in your add-in directory as "addin.jmpcust".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jmpcust1.jpg" style="width: 331px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16796iCA1A88BA3D427885/image-size/large?v=v2&amp;amp;px=999" role="button" title="jmpcust1.jpg" alt="jmpcust1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You're now ready to package your add-in for deployment. You need to create a .ZIP archive of: 1) addin.def, 2) addin.jmpcust, 3) your .JSL file and any other dependencies.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="createziparchive1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16797i6BFA60435DE3A06B/image-size/large?v=v2&amp;amp;px=999" role="button" title="createziparchive1.jpg" alt="createziparchive1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 773 --&gt;&lt;/P&gt;
&lt;P&gt;You'll need to change the ".zip" extension on the archive to ".jmpaddin".&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="renameziparchive1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16798i484516BA67CB6714/image-size/large?v=v2&amp;amp;px=999" role="button" title="renameziparchive1.jpg" alt="renameziparchive1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 779 --&gt;&lt;/P&gt;
&lt;P&gt;Now you can test your packaged add-in.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Start by Unregistering the development version of your add-in. (View-&amp;gt;add-ins)&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="unregister1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16799i76D42F6C42D17407/image-size/large?v=v2&amp;amp;px=999" role="button" title="unregister1.jpg" alt="unregister1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Now, double-click on the .jmpaddin file that is now your deployable add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="doubleclick1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16800i4BCE391D25879659/image-size/large?v=v2&amp;amp;px=999" role="button" title="doubleclick1.jpg" alt="doubleclick1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 774 --&gt;&lt;/P&gt;
&lt;P&gt;JMP will ask you if you'd like to install your add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="installaddin2.jpg" style="width: 310px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16801i2BA9D740F72DE769/image-size/large?v=v2&amp;amp;px=999" role="button" title="installaddin2.jpg" alt="installaddin2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After you install it, you'll see it listed in the View-&amp;gt;Add-ins... dialog. Note that the directory is not your add-in directory but a directory in the user area for JMP.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="viewaddins2.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16802i725A4D977948D5C6/image-size/large?v=v2&amp;amp;px=999" role="button" title="viewaddins2.jpg" alt="viewaddins2.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 783 --&gt;&lt;/P&gt;
&lt;P&gt;JMP has expanded the .zip archive into this user area. Click on the directory name in the dialog to see its contents. This is convenient for looking at any JSL used by an add-in.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="useraddindirectory1.jpg" style="width: 328px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16803i6AED8D1D2A365846/image-size/large?v=v2&amp;amp;px=999" role="button" title="useraddindirectory1.jpg" alt="useraddindirectory1.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;!-- 782 --&gt;&lt;/P&gt;
&lt;P&gt;Finally, you can go to the custom menu created by the add-in to launch it.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="texttocolsmenu1.jpg" style="width: 474px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/16804i9A1FE67A46318F32/image-size/large?v=v2&amp;amp;px=999" role="button" title="texttocolsmenu1.jpg" alt="texttocolsmenu1.jpg" /&gt;&lt;/span&gt;&lt;!-- 780 --&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Apr 2019 16:04:54 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/ba-p/29986</guid>
      <dc:creator>Jeff_Perkinson</dc:creator>
      <dc:date>2019-04-08T16:04:54Z</dc:date>
    </item>
    <item>
      <title>Jens Riege wrote: Thanks Jeff for creating these instruct...</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/31733#M1697</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Jens Riege&lt;/STRONG&gt; wrote:&lt;/P&gt;&lt;P&gt;    Thanks Jeff for creating these instructions. They look very useful and I plan on creating some internal script menus for use within our group!  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2016 08:24:38 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/31733#M1697</guid>
      <dc:creator>WP_Comment</dc:creator>
      <dc:date>2016-12-06T08:24:38Z</dc:date>
    </item>
    <item>
      <title>Brandon Breitling wrote: Hi Jeff,  I was wondering, I'm t...</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/31734#M1698</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Brandon Breitling&lt;/STRONG&gt; wrote:&lt;/P&gt;&lt;P&gt;Hi Jeff,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was wondering, I'm trying to modify your six sigma add-in on my computer but when I try to it tells me that it was not made with jmp add-in builder so it might not be able to.  I did it anyway and can't see any of the JSLs or anything.  Is there a way for me to look at the code for it and modify it?&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2016 08:24:41 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/31734#M1698</guid>
      <dc:creator>WP_Comment</dc:creator>
      <dc:date>2016-12-06T08:24:41Z</dc:date>
    </item>
    <item>
      <title>Jeff Perkinson wrote: Hi Brandon,  Since the Six Sigma Ad...</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/31735#M1699</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Jeff Perkinson&lt;/STRONG&gt; wrote:&lt;/P&gt;&lt;P&gt;Hi Brandon,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since the Six Sigma Add-in was created in an earlier version of JMP it doesn't use the Add-in builder.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Most of what that add-in does is call platforms in JMP via custom menu items, so there's very little actual JSL. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can see exactly what it's doing and modify it using the View-&amp;gt;Customize-&amp;gt;Menus and Toolbars option. Once in the menu editor you'll need to change the customization set â   using the "Change..." button at the top â   to edit the menus for the add-in.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope that helps. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Jeff&lt;/P&gt;</description>
      <pubDate>Tue, 06 Dec 2016 08:24:43 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/31735#M1699</guid>
      <dc:creator>Jeff_Perkinson</dc:creator>
      <dc:date>2016-12-06T08:24:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an add-in for JMP</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/191782#M3537</link>
      <description>&lt;P&gt;Thanks Jeff! Very clear and detail instruction. I managed to create my own add-in thanks to this instruction.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 Apr 2019 07:12:31 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/191782#M3537</guid>
      <dc:creator>AY</dc:creator>
      <dc:date>2019-04-08T07:12:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an add-in for JMP</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/342248#M3969</link>
      <description>&lt;P&gt;Thanks for the very clear explaination,&amp;nbsp;&lt;LI-USER uid="6878"&gt;&lt;/LI-USER&gt;&amp;nbsp;! This helped me to post my first add-in for review and hopefully will get published later.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The only thing I was still unsure about is how to provide updates to the add-in after a revision change.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!,&lt;/P&gt;&lt;P&gt;DS&lt;/P&gt;</description>
      <pubDate>Tue, 15 Dec 2020 20:32:52 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/342248#M3969</guid>
      <dc:creator>DiedrichSchmidt</dc:creator>
      <dc:date>2020-12-15T20:32:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an add-in for JMP</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/353692#M3998</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;LI-USER uid="6878"&gt;&lt;/LI-USER&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I'm curious about what is the proper way to submit an add-in for review by JMP before publishing it to the larger JMP community.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I've built an add-in I think some modelers might find helpful in building a large number of tuned models. I've uploaded it to the file exchange for review, but it hasn't been reviewed yet. I'd like to publish it, but would like to have it reviewed by JMP for possible issues/bugs so I can fix them ahead of time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help!&lt;/P&gt;&lt;P&gt;DS&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jan 2021 20:23:08 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/353692#M3998</guid>
      <dc:creator>DiedrichSchmidt</dc:creator>
      <dc:date>2021-01-28T20:23:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to create an add-in for JMP</title>
      <link>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/437767#M4199</link>
      <description>&lt;P&gt;Is there a way to quickly set up the .jmpcust file? A case example might be, if I want to update my JMP add-in with more JSL toolbar shortcuts to run new jsl scripts. Currently we will have to do the menu and toolbar customermization first to generate the .jmpcust file. However, if there is utility jsl that can automatically create the jmpcust file that would be awesome.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Nov 2021 21:27:58 GMT</pubDate>
      <guid>https://community.jmp.com/t5/JMP-Blog/How-to-create-an-add-in-for-JMP/bc-p/437767#M4199</guid>
      <dc:creator>wencun6</dc:creator>
      <dc:date>2021-11-17T21:27:58Z</dc:date>
    </item>
  </channel>
</rss>

