Setting template instructions for python scripts (Production Mapping)

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!"

Steps:
  1. Start ArcMap.
  2. 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.

    Product Library tree view
  3. If necessary, expand Product Library and Products.
  4. 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.

  5. Click Template Instructions on the left-hand pane.
  6. Click the plus sign (+) next to Python Script.

    The Python Script properties appear.

  7. Click the cell next to File and click the ellipsis (...) that appears.

    The Browse For File dialog box appears.

  8. 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
  9. Click the ellipsis (…) next to the Location field.

    The Open dialog box appears.

  10. Navigate to the Python script PY file you want to use.
  11. Click Open.

    The Browse For File dialog box appears with the path to the XML file in the Location field.

  12. Click OK.

    The properties dialog box for the class, series, or product appears.

  13. 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.

9/26/2014