The extension's XML definition file specifies the custom workflow within Workbench, including task groups (systems) designed for a particular simulation objective. All analyses performed within Workbench begin by referencing a task group. The XML file describes the task groups and declares the contained tasks.
At the extension level, the XML file must specify, at minimum:
Extension name
Interface context (must be
Project
)Folder for storing images for task group or task icons
Workflow definition
At the workflow level, the XML file can specify:
Workflow context (required and must be
Project
)Tasks (container for individual task definitions)
Task group (container for the task group definition)
Global callbacks
At the global callback level, the XML file can specify pre- and post-operation callbacks for Project Schematic and Workbench operations. For more information, see Defining a Global Callback and Global Callbacks .
At the task level, the XML file can specify:
Task name (required)
Task version (required)
Display text
Image name
Context menus
Callbacks
Property groups and properties
Inputs and outputs
Parameters
Remote job execution specifications
For more information, see Defining a Task.
At the task group level, the XML file can specify:
Task group name (required)
Task group version (required)
Header text
Toolbox category
Parametric support
Image name
Abbreviation
For more information, see Defining a Task Group.
Basic Structure of the XML Definition File
The following example of an XML file shows the basic structure:
<extension version="1" name=""> <guid shortid="">69d0095b-e138-4841-a13a-de12238c83f3</guid> <script src="" /> <interface context="Project"> <images>images</images> </interface> <workflow name="" context="Project" version="1"> <callbacks> <onbeforetaskreset></onbeforetaskreset> <onaftertaskreset></onaftertaskreset> <onbeforetaskrefresh></onbeforetaskrefresh> <onaftertaskrefresh></onaftertaskrefresh> <onbeforetaskupdate></onbeforetaskupdate> <onaftertaskupdate></onaftertaskupdate> <onbeforetaskduplicate></onbeforetaskduplicate> <onaftertaskduplicate></onaftertaskduplicate> <onbeforetasksourceschanged></onbeforetasksourceschanged> <onaftertasksourceschanged></onaftertasksourceschanged> <onbeforetaskcreation></onbeforetaskcreation> <onaftertaskcreation></onaftertaskcreation> <onbeforetaskdeletion></onbeforetaskdeletion> <onaftertaskdeletion></onaftertaskdeletion> <onbeforetaskcanusetransfer></onbeforetaskcanusetransfer> <onaftertaskcanusetransfer></onaftertaskcanusetransfer> <onbeforetaskcanduplicate></onbeforetaskcanduplicate> <onaftertaskcanduplicate></onaftertaskcanduplicate> <onbeforetaskstatus></onbeforetaskstatus> <onaftertaskstatus></onaftertaskstatus> <onbeforetaskpropertyretrieval></onbeforetaskpropertyretrieval> <onaftertaskpropertyretrieval></onaftertaskpropertyretrieval> <onbeforedesignpointchanged></onbeforedesignpointchanged> <onafterdesignpointchanged></onafterdesignpointchanged> </callbacks> <tasks> <task name="" caption="" icon="" version="1"> <callbacks> <onupdate></onupdate> <onrefresh></onrefresh> <oninitialize></oninitialize> <onedit></onedit> <onreset></onreset> <onstatus></onstatus> <onreport></onreport> </callbacks> <contextmenus> <entry name="" caption="" icon="" priority="" type=""> <callbacks> <onclick></onclick> </callbacks> </entry> </contextmenus> <propertygroup name="" caption=""> <property name="" caption="" control="" default="" readonly="" needupdate="" visible="" persistent="" isparameter="" keytype="" valuetype="" elementtype=""/> </propertygroup> <property name="" caption="" control="" default="" readonly="" needupdate="" visible="" persistent="" isparameter="" keytype="" valuetype="" elementtype=""/> <parameters> <parameter name="" caption="" usage="" control="" version="1"/> </parameters> <inputs> <input/> <input type="" format=""/> </inputs> <outputs> <output type="" format=""/> </outputs> <rsmjob name="" deletefiles="" version="1"> <inputfile id="1" name=""/> <outputfile id="1" name=""/> <program> <platform name="" path=""/> <argument name="" value="" separator=""/> </program> <callbacks> <oncreatejobinput></oncreatejobinput> <onjobstatus></onjobstatus> <onjobcancellation></onjobcancellation> <onjobreconnect></onjobreconnect> </callbacks> </rsmjob> </task> </tasks> <taskgroups> <taskgroup name="" caption="" icon="" category="" abbreviation="" version="1" isparametricgroup="False"> <includetask name="" external=""/> <includeGroup name=""/> </taskgroup> </taskgroups> </workflow> </extension>