Template:— assigning_approval (asg_apr) Date: 2008/03/10 08:38:02
Revision: 1.26

This section specifies the template assigning_approval.

NOTE  An explanation of a template and the associated instantiation path is provided in the Template overview section.

Description

This template describes how to assign an approval to something. The same approval may be assigned to many items, but the recommendation is that each item have its own separate approval.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "assigning_approval". The text highlighted in blue shows the template parameters.


Figure 1 —  EXPRESS-G representation of the Information model for assigning_approval

Figure 1 —  EXPRESS-G representation of the Information model for assigning_approval

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.


Figure 2 —  
                      The graphical representation of the assigning_approval template

Figure 2 —   The graphical representation of the assigning_approval template

Input parameters
The following input parameters are defined for this template:
status (Default=Status_of_approval,Type='CLASS')
The name of the class used to classify the status (Approval_status) of the approval.
The following classes and their sub-classes can be used:
classifications: "Status_of_approval" (urn:plcs:rdl:std:Status_of_approval)
status_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @status.
items (Type= 'SELECT (approval_item)' )
The items to which the approval is assigned
person_org (Type= 'SELECT (organization_or_person_in_organization_select)' )
The person or organization responsible for the approval
Reference parameters
The following reference parameters are defined for this template:
approval_assgn(Type='ENTITY (Approval_assignment)')
Allow the Approval_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Approval_assignment entity can be referenced in a template path by:
%^target = $assigning_approval.approval_assgn%
where target is the parameter to which the Approval_assignment is bound.
approval(Type='ENTITY (Approval)')
Allow the Approval entity instantiated in this path to be referenced when this template is used.
Note: The Approval entity can be referenced in a template path by:
%^target = $assigning_approval.approval%
where target is the parameter to which the Approval is bound.
app_pers_org(Type='ENTITY (Approving_person_organization)')
Allow the Approving_person_organization entity instantiated in this path to be referenced when this template is used.
Note: The Approving_person_organization entity can be referenced in a template path by:
%^target = $assigning_approval.app_pers_org%
where target is the parameter to which the Approving_person_organization is bound.
state_obs(Type='ENTITY (State_observed)')
Allow the State_observed entity instantiated in this path to be referenced when this template is used.
Note: The State_observed entity can be referenced in a template path by:
%^target = $assigning_approval.state_obs%
where target is the parameter to which the State_observed is bound.
state_assert(Type='ENTITY (State_assertion)')
Allow the State_assertion entity instantiated in this path to be referenced when this template is used.
Note: The State_assertion entity can be referenced in a template path by:
%^target = $assigning_approval.state_assert%
where target is the parameter to which the State_assertion is bound.
state_def(Type='ENTITY (State_definition)')
Allow the State_definition entity instantiated in this path to be referenced when this template is used.
Note: The State_definition entity can be referenced in a template path by:
%^target = $assigning_approval.state_def%
where target is the parameter to which the State_definition is bound.
Instantiation path
The instantiation path shown below specifies the entities that are to be instantiated by the template.
A description of templates and the syntax for the instantiation path is provided in the Reading Capability Templates help section.
-- Instantiate an Approval_assignment
Approval_assignment

-- Bind the Approval_assignment to the parameter ^approval_assgn.
-- The parameter is a reference parameter so the Approval_assignment
-- entity can be referred to when this template is used.
%^approval_assgn = Approval_assignment%

-- Set the Approval_assignment attribute role
Approval_assignment.role = '/IGNORE'

-- Assign the Approval_assignment to the
-- instances passed into the template through the @items
-- input parameter (e.g. a Part_version)
Approval_assignment.items -> @items

-- Instantiate Approval and assign Approval_assignment to it
Approval
Approval_assignment.assigned_approval -> Approval

-- Bind the Approval to the parameter ^approval.
-- The parameter is a reference parameter so the Approval
-- entity can be referred to when this template is used.
%^approval = Approval%

-- Set the Approval attributes
Approval.purpose = '/IGNORE'

-- Instantiate Approval_status and assign Approval to it
-- NB This mechanism is not used to represent an approval status
Approval_status
Approval.status -> Approval_status

-- Set the Approval_status attribute
Approval_status.status_name = '/IGNORE'

-- Set the approval status using assigning_asserted_state
/assigning_asserted_state(
    assigned_to=Approval,
    state_class_name=@status,
    state_ecl_id=@status_ecl_id)/

-- Instantiate an Approving_person_organization and
-- assign it to Approval
Approving_person_organization
Approving_person_organization.authorized_approval -> Approval

-- Bind the Approving_person_organization to the parameter ^app_pers_org.
-- This parameter is a reference parameter that allows the
-- Approving_person_organization entity to be referred to when this template is used.
%^app_pers_org = Approving_person_organization%

-- Assign the Approving_person_organization to the
-- to the instances passed into the template through the @person_org
-- input parameter (e.g. a Person_in_organization)
Approving_person_organization.person_organization -> @person_org

-- Bind the State_observed to the parameter ^state_obs.
-- This parameter is a reference parameter that allows the
-- State_observed entity to be referred to when this template is used.
%^state_obs = State_observed%

-- Bind the State_assertion to the parameter ^state_assert.
-- This parameter is a reference parameter that allows the
-- State_assertion entity to be referred to when this template is used.
%^state_assert = State_assertion%

-- Bind the State_definition to the parameter ^state_def.
-- This parameter is a reference parameter that allows the
-- State_definition entity to be referred to when this template is used.
%^state_def = State_definition%
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Approval_assignment.role '/IGNORE'
Approval.purpose '/IGNORE'
Approval_status.status_name '/IGNORE'
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/assigning_approval(status='Approved', status_ecl_id='urn:plcs:rdl:std', items='#16', person_org='@41')/
(an illustration of the consolidated assigning_approval template is shown in Figure 4 below.)
Note that the templates representing_organization, assigning_time, assigning_reference_data, and assigning_asserted_state are used in the diagram. Note that one of the two templates representing_organization or representing_person_in_organization always must be present to make the approval complete. In this diagram, the assignment of an approving organization was done as follows:
@41 /representing_organization(org_id='Bike Rent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/
The approval status is assigned using the template assigning_asserted_state:
@5 /assigning_asserted_state(status='Approved', ecl_id='urn:plcs:rdl:std', assigned_to='#2')/


Figure 3 —  Entities instantiated by assigning_approval template

Figure 3 —  Entities instantiated by assigning_approval template

The instance diagram in Figure 4 shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/assigning_approval(status='Approved', status_ecl_id='urn:plcs:rdl:std', items='#16', person_org='@41')/


Figure 4 —  Instantiation of assigning_approval template

Figure 4 —  Instantiation of assigning_approval template

Characterizations
The following section details how the assigning_approval template can be optionally characterized by assigning other constructs to it. These are characterizations commonly applied to the template. The ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
The following characterizations may apply:
Characterization Assigning purpose

NOTE   this characterization is optional.

The purpose of an approval is represented using the template assigning_reference_data to assign a class to an Approval to identify the purpose of approval and to the Approval_status to assign a status to the approval.



Figure 5 —  Approval purpose

Figure 5 —  Approval purpose

Characterization Assigning dates

NOTE   this characterization is optional.

Dates can be associated with the approval, in a given role, by using the template assigning_time.

Two dates are commonly assigned to the template assigning_approval, namely the date on which the item is planned to be approved, and the date of actual approval.

If the date is the planned date of approval, then the assigning_time template classifies the date and time as "Date_planned" (urn:plcs:rdl:std:Date_planned).

If the date and time is the actual date, then the assigning_time template classifies the date and time as "Date_actual" (urn:plcs:rdl:std:Date_actual).



Figure 6 —  Approval dates

Figure 6 —  Approval dates

Characterization Approval relationships

NOTE   this characterization is optional.

Approvals can be related to other approvals, such as for a successive approval as illustrated in Figure 7, by an instance of entity Approval_relationship. The relationship should be classified accordingly, as illustrated in Figure 7.



Figure 7 —  Relating two approvals.

Figure 7 —  Relating two approvals.

© OASIS 2008 — All rights reserved