Template
Goal
The goal of template is to provide a logical relationship that can be
used to construct an entire Project or its components. The RPM web
services provide
one method that can be used to create objects from template in the
Application interface: createObjectFromTemplate
Source
All classes related to templates are located in the wbs
and scopemanagement packages.
- WBSManager : com.ibm.rpm.wbs.managers
- ScopeManager: com.ibm.rpm.scopemanagement.managers
- AbstractRequestCheckpoint:
com.ibm.rpm.scopemanagement.checkpoints
- AbstractScopeCheckpoint:
com.ibm.rpm.scopemanagement.checkpoints
- WorkElementCheckpoint: com.ibm.rpm.wbs.checkpoints
- GenericProjectCheckpoint: com.ibm.rpm.wbs.checkpoints
Information
The API currently supports three types of templates: Project Templates,
WBS Element Templates and Scope Management Templates. Loading a
template is done following the XPATH architecture by specifying the
@published=ProjectPublishedType.ToTemplate for WorkElement
and @published=PublishedType.ToTemplate for the rest.
Alternatively, creating an object from template requires the
use of the Application interface method: createObjectFromTemplate.
Here is the rundown of how it is done in the api:
- Once the createObjectFromTemplate is called from the
Application interface, the managerCaller.createObjectFromTemplate is
called with all the parameters: (SessionID, InputObject,
TemplateObject, Scope)
- The managerCaller then evaluates the inputObject to choose
which manager to call, either the WbsManager or the ScopeManager.
- The manager createObjectFromTemplate method is called.
- In the case of
GenericProject and WorkElement templates, the
WbsMethodCheckPoint is called to do various validations such as:
- Validating that the
input and the template objects are not null
- ID is mandatory for
template
- ID must be null for
inputObject
- Parent must be present
for inputObject (WorkElement)
- Input should be same
instance than template
- Input must be one of the
required class
- WorkElement:
Deliverable, Milestone, SummaryTask, Task, WorkProduct
- GenericProject:
Project, Proposal, WorkOrganization
- Template must be one
of the required class
- WorkElement:
Deliverable, Milestone, SummaryTask, Task, WorkProduct
- GenericProject:
Project, Proposal, WorkOrganization
- Validating that the
templateObject is in fact a template and be published: ToTemplate
(ProjectPublishedType)
- Validating read only
fields
- In the case of
AbstractRequest and AbstractScope templates, the ScopeMethodCheckPoint
is called to do various validatios such as:
- Validating that the
input and the template objects are not null
- ID is mandatory for
template
- ID must be null for
inputObject
- Parent must be present
for inputObject
- Input should be same
instance than template
- Input must be one of the
required class
- ScopeElement: Risk,
Requirement, Issue, Defect, ChangeRequest, Action, ServiceRequest
- Template must be on of
the required class
- ScopeElement: Risk,
Requirement, Issue, Defect, ChangeRequest, Action, ServiceRequest
- Validating that the
templateObject is in fact a template and be published:ToTemplate
(PublishedType)
- Validating read only
fields
GenericProject Template
Manager: WbsManager
Classes:
- Proposal
- Project
- WorkOrganization
SP_Calls:
- inputGPObject.setID(SP_I_WBS(inputGPObject, msgCtx));
- SP_U_WBS_START_FINISH_DATES(inputGPObject, msgCtx);
- SP_U_WBS_REQUEST(inputGPObject, msgCtx);
- SP_U_DESCRIPTION(inputGPObject, msgCtx);
- SP_U_WBS_METHOD(inputGPObject, msgCtx);
- SP_M_WBS(inputGPObject, msgCtx);
- SP_C_WBS(inputGPObject, msgCtx);
WorkElement Template
Manager: WbsManager
Classes:
- Milestone
- Task
- Deliverable
- WorkProduct
- SummaryTask
SP_Calls:
- inputWEObject.setID(SP_C_WBS(inputWEObject, msgCtx));
AbstractRequest Template
Manager: ScopeManager
Classes:
- ChangeRequest
- Defect
- ServiceRequest
SP_Calls:
- inputARObject.setID(SP_C_CRI(inputARObject, msgCtx));
AbstractScope Template
Manager: ScopeManager
Classes:
- Action
- Issue
- Requirement
- Risk
SP_Calls:
- inputASObject.setID(SP_C_CRI(inputASObject, msgCtx));
Parent topic: Architecture Index
Template Usage: Template Concepts
Template Code Samples: Java code samples