Creating the Extension for Global Callbacks

The file WorkflowCallbacksDemo.xml follows.

<extension version="1" name="WorkflowCallbacksDemo">
	<guid shortid="WorkflowCallbacksDemo">96d0195b-e138-4841-a13a-de12238c83f2</guid>
	<script src="main.py" />
	<interface context="Project">
		<images>images</images>
	</interface>
	<workflow name="WorkflowDemo1" context="Project" version="1">
		<callbacks>
					<onbeforetaskreset>onBeforeReset</onbeforetaskreset>
					<onaftertaskreset>onAfterReset</onaftertaskreset>
					<onbeforetaskrefresh>onBeforeRefresh</onbeforetaskrefresh>
					<onaftertaskrefresh>onAfterRefresh</onaftertaskrefresh>
					<onbeforetaskupdate>onBeforeUpdate</onbeforetaskupdate>
					<onaftertaskupdate>onAfterUpdate</onaftertaskupdate>
					<onbeforetaskduplicate>onBeforeDuplicate</onbeforetaskduplicate>
					<onaftertaskduplicate>onAfterDuplicate</onaftertaskduplicate>                         
					<onbeforetasksourceschanged>onBeforeSourcesChanged</onbeforetasksourceschanged>         
					<onaftertasksourceschanged>onAfterSourcesChanged</onaftertasksourceschanged>
					<onbeforetaskcreation>onBeforeCreate</onbeforetaskcreation>
					<onaftertaskcreation>onAfterCreate</onaftertaskcreation>
					<onbeforetaskdeletion>onBeforeDelete</onbeforetaskdeletion>
					<onaftertaskdeletion>onAfterDelete</onaftertaskdeletion>
					<onbeforetaskcanusetransfer>onBeforeCanUseTransfer</onbeforetaskcanusetransfer>
					<onaftertaskcanusetransfer>onAfterCanUseTransfer</onaftertaskcanusetransfer>
					<onbeforetaskcanduplicate>onBeforeCanDuplicate</onbeforetaskcanduplicate>
					<onaftertaskcanduplicate>onAfterCanDuplicate</onaftertaskcanduplicate>
					<onbeforetaskstatus>onBeforeStatus</onbeforetaskstatus>
					<onaftertaskstatus>onAfterStatus</onaftertaskstatus>            
					<onbeforetaskpropertyretrieval>onBeforePropertyRetrieval</onbeforetaskpropertyretrieval>            
					<onaftertaskpropertyretrieval>onAfterPropertyRetrieval</onaftertaskpropertyretrieval>
		</callbacks>
	</workflow>
</extension>

This XML file performs the following actions:

  • References the IronPython script main.py.

  • For the element <interface>, specifies that the attribute context is set to Project so that the extension is executed from the Project Schematic.

  • For the element <workflow>:

    • Defines the attributes name and context.

    • Defines pre- and post-operation global callbacks for each available Project Schematic operation.