Setting template instructions for python scripts
Template instructions allow products to be more dynamic, allowing them to perform actions during key events like a checkout. There are three types of template instructions controlled by file types: data frame rules, layout rules, and Python scripts.
You can use a Python script to execute custom business logic on a product. To do this, you save a Python module (.py) as part of the template instructions. The Python script can access a product's map document using the system (arcpy) module. When a Python script runs as a template instruction, the map document path is passed as a command line argument. You can access it with arcpy.GetParameterAsText(0).
The following template instruction Python script creates a map document from an .mxd path referenced in arcpy.GetParameterAsText(0). The script updates a text element with the current date.
print "started....import" import arcpy print "arcpy loaded...." import sys print "sys loaded...." import datetime print "datetime loaded..." #pass the product mxd into the script as an argument mxd = arcpy.mapping.MapDocument(arcpy.GetParameterAsText(0)) #Find and replace an element with the name "[Date]" with a text string with current date for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"): if elm.name == "[Date]": elm.text = str(datetime.date.today()) else: print "Element not updated!" print "finishing updating map element" mxd.save() del mxd print "save and released map document...process finished!"
- Start ArcMap.
-
If necessary, open the Product Library window by clicking Customize > Production > Product Library on the main menu.
A tree view of the product library appears.
-
Navigate to and right-click an existing class, series, or product from the Product Library tree and click Properties.
The properties dialog box for the class, series, or product appears.
- Click Template Instructions on the left-hand pane.
-
Click the plus sign (+) next to Python Script.
The Python Script properties appear.
- Click the cell next to File and click the ellipsis (...) that appears.
The Browse For File dialog box appears.
- Click the Storage type drop-down arrow and choose an option:
- File system—If the file is stored in a local or network computer
- Database—If the file is stored in a database
- Click the ellipsis (…) next to the Location field.
The Open dialog box appears.
- Navigate to the Python script PY file you want to use.
- Click Open.
The Browse For File dialog box appears with the path to the XML file in the Location field.
- Click OK.
The properties dialog box for the class, series, or product appears.
- Click OK.
You can now apply python scripts when you check out a template or product by clicking Options and checking the box next to the instructions.