Operation Behavior (preconditions and follow-up actions)
Operation behavior defines preconditions and follow-up actions for individual operations. This behavior encourages or enforces process rules for your project and teams. Behavior is defined in the process configuration for the project and can be customized by team areas.
Preconditions and follow-up actions are applied in the context of an operation. For example, for the Work Item Save operation, you can use a precondition to define which fields in a work item must be filled in before it can be saved. If a required field is incomplete, then the save operation is blocked and details are provided in the Team Advisor view and in the title bar of the work item. The following figure provides an example of a precondition that must be met before delivering code to source control.
Follow-up actions can make additional changes to artifacts in the repository after an operation is successfully completed, as defined by the process. For example, The Scrum process currently generates three work items in response to the operation of joining a team: Create a Repository Workspace, Find Your Work Items, and Set Up Instant Messaging.
Jazz® process templates include a collection of operations with preconditions and follow-up actions. The predefined operations vary in the different process templates. The following table shows the preconditions and follow-up actions that are enabled by default in the predefined Scrum process template. To disable or modify any of these preconditions or follow-up actions, see Modifying operation behavior (preconditions and follow-up actions) in project areas and team areas.
|Generate Team Invitation (server)||Create initial work items||This follow-up action creates a set of work items for the tasks you need to perform to complete the process of joining the team.|
|Accept Team Invitation (server)||Show work items||When you accept the invitation to join the team, a query is run to display your assigned work items.|
|Work Item Save (server)||Required attributes for type and state||Team members are advised to complete certain fields in work items before they can be saved.|
|Source Control Deliver Operation||Descriptive change sets||Team members are advised to associate a work item with every code delivery.|
|No unused imports||Team members are advised not to deliver any code that contains unused imports.|
|Clean workspace||Do not deliver changes if your workspace contains compilation errors.|
|Location of operation behavior setting||Description|
|Project Configuration||Operation behavior at this level applies to the global project context. The behavior applies regardless of the current iteration or timeline, and it cannot be customized in specific team areas.|
|Team Configuration||Operation behavior at this level applies to all of the teams that belong to the project area. However, each team area can customize the behavior.|
|Iteration Types||Operation behavior at this level applies to all iterations of the iteration type. Each team area can customize the behavior for iteration types.|
|Timelines||Operation behavior at this level applies to all team areas in the timeline.|
|Iterations||Operation behavior at this level applies to all team areas in the iteration's timeline when the iteration is the current iteration.|
- Operation behavior specified for the current iteration or for the iteration type of the current iteration.
- Operation behavior specified for the parent of the current iteration or for the iteration type of the parent iteration (all the way to the root of the hierarchy).
- Operation behavior specified for the team area timeline.
- Operation behavior specified at the top-level of the team configuration of the project area.
Process permissions and operation behavior are configured independently. Your team can choose to customize the permissions, the behavior, or both, for the operation.
For a detailed explanation of how the process component determines which behavior to enforce at run time, see http://jazz.net/library/article/292.
For information about creating custom preconditions, see Extensions Workshop.