As part of the series ‘ExtendScript of the week’, we are providing an ExtendScript to export a list of User Variables in a FrameMaker Book. The list will also show the status that whether the user variables is used or not. After the list has been generated, you can modify the definition of the user variables in the table and the table can be imported back to the book. This will help modifying and deleting user variables at the book level.
Download the zip file from ImportExportVariables.
About the Script
- It contains 3 scripts, menu.jsx which loads the menu items and calls functions to handle the workflow, importExport.jsx which is used to import/export list of user variables and utils.jsx that has several utility functions. It also contains a template document, BookReportTemplate, which is used for exporting user variables
- The script works on FM/MIF, nested books and its components as well as on the hierarchical components
- Any XML file, dita or map which is a part of the book is left untouched
- The import functionality traverses through the book, opens the book component file silently and extracts the user variables information. File is then closed silently without saving. A book report (table) containing a list of all user variables in the book is generated
- The export functionality traverses the report document to locate a table and name of the source book. The information of each user variable is extracted from the table and the information is updated in the document (in source book) if required. To delete a particular variable, clear the corresponding “definition” cell in the table (i.e. set the contents of the cell to empty). Any document not found in the scope of the source book is left as is. Also, the modified documents in this process will not be closed/saved but will be left open visibly in FrameMaker and user can have a look at the console window for the list of changes made
Steps to use this ExtendScript
- Unzip the contents of the attached .zip file to the FrameMaker startup folder:
- Launch FrameMaker
- For export functionality, open any book for which you want to export list of user variables
- With focus on book, go to “File > Utilities > Export User Variables”
- A FrameMaker document report containing the list of user variables will be generated
- For import functionality, modify the report generated from the export functionality to update/delete any user variable
- With focus on the report document, go to “File > Utilities > Import User Variables”
- An alert will come, asking for your confirmation. If you click Cancel, the operation will be aborted
- If you wish to continue by pressing OK, the script will run and update the documents (if required)
Hope this simple automation will help to reduce your manual efforts and provide further insights into ExtendScript usage.
FrameMaker Engineering Team