Subscribe Bookmark RSS Feed
kathy_walker

Staff

Joined:

Aug 19, 2014

A Platform for Managing, Distributing and Tracking Add-Ins Globally

(view in My Videos)
John D. Moore, Analyst  john_moore@elanco.com 

 

Introduction

Elanco® is an animal health company with technical consultants located around the globe.  Part of our technical consultant’s job is helping our customers analyze and understand their data.   Add-ins offer a convenient way to package scripts for our technical consultants, however, there were some additional features that we needed.

  1. The ability for technical consultants to easily check to see if their add-in is current and install the current version if it is not.
  2. The ability for technical consultants to send feedback directly to the add-in developer.
  3. Show the technical consultant what is new in this version of the add-in.
  4. Log usage of the scripts in the add-in to a central repository.

 

Check for updates

The script Check for Updates.jsl is a standard script for all of our add-ins.  It is adapted from the excellent add-in depot work done by Brady Brady at JMP®.  This script checks a file called File Metadata.jmp located in a central depot.  The script compares the revision date in the add-in addin.def file with the most current revision date in the File Metadata.jmp file.  If a more current version is available, the script prompts the user to install it. 

Each organization will need to define a central depot for their add-ins.  The path for the repository is defined in the DepotPath variable in Check for Updates.jsl.

 

 

Send feedback to developer

The add-ins are typically developed by a technical consultant within a specie (beef, dairy, swine, poultry, and companion animal). We wanted a way for technical consultants to contact the developer directly.  We did this by including the developer name and e-mail address in the addin.def file and including an email feature in the about.jsl script.

 

Show the technical consultants what is new in this version of the add-in.

A simple What is new.jsl script lists what is new with the current version of the add-in.

 

Log usage of the scripts in the add-in

We also created two scripts to log the usage of the add-ins.  Every time a technical consultant uses a script in the add-in, the following information is appended to a local log file.

  • Script name
  • Add-in name
  • User name
  • Date time stamp
  • Customer name (If available in data table.  Script looks for table variable named CustomerName. )

Each script in the add-in menu needs to call the Log Usage function with the script name to log this data.

 

At the end of the JMP session,  Upload Usage.jsl will attempt to copy the local log file to a central log repository.  Each organization will need to define a central log repository and update the Upload Usage.jsl  script with the path.

 

If only log files are kept in the repository, a simple command can concatenate them into one text file.

 

Behind the scenes

Two scripts, Create add-in name space.jsl and Get addin namespace.jsl , allow for multiple add-ins using this platform to be used on the same computer.

The addinLoad.jsl  script for each add-in must include the following scripts.

 

The addinUnload.jsl script for each add-in must include the following script.

 

Conclusion

Add-ins are a tremendous way to share the power of JMP® scripting.  We hope that these tools make it easier to use and share add-ins within your organization. If you have questions or comments, please contact john_moore@elanco.com.