Capability (C019):— assigning_approvals Date: 2008/01/15 06:30:31
Revision: 1.51

Business overview

This section provides a business level overview of this capability.

An approval is an action by means of which a product or activity or other item is agreed to or officially confirmed as acceptable or satisfactory by a person or organization.

EXAMPLE    A product design might be approved by a customer prior to the commencement of manufacture.

EXAMPLE    A project start-date might be approved by a line manager in consultation with his/her superior.

Basic approvals

In basic approvals, only one signature or authorization is required.

EXAMPLE    An example of a basic approval might be the authorizing of a single Work_order by an individual on a certain date.

Complex approvals

In complex approvals, a series of authorizations may be required for a single approval with a particular status, or a cycle of coordinated approvals that vary in status. Moreover, a single approval may apply to a number of different items.

EXAMPLE    An example of a complex approval with a single approval status might be the authorizing of a payment where two signatures are required on a cheque or payment order before it can be sent.

EXAMPLE    An example of a complex approval with a multiple approval statuses might be an approval cycle where provisional approval is required from a subordinate before an item may be considered for final approval by a superior.

EXAMPLE    An example of a complex approval where an approval applies to a number of items might be the authorization of a series of contracts for a number of staff hired on the same day.

In the case of an approval that applies to a number of items, the assignment of the approval may have a single role or multiple roles.

EXAMPLE    An example of the assignment of the approval with multiple roles might occur when the same approval is assigned to one or more items both in order to satisfy a legal requirement and in order to satisfy an internal auditing requirement.

Information model overview

This section provides an overview of the information model that supports this capability.

The EXPRESS-G for the approval model is shown in Figure 1 below and explained in the following sections.

NOTE    The EXPRESS-G is not complete. For the complete EXPRESS see the modules: Approval, Date time, and Person organization.



Figure 1 —  Approval EXPRESS-G

Figure 1 —  Approval EXPRESS-G

Approvals are established through the creation of Approval objects that are assigned to constructs representing the items being approved by Approval_assignment objects. The status of the approval is provided by using reference data to classify the Approval_status associated with the Approval. The following approval statuses are provided. If an organization has additional approval statuses, then they should be made sub classes of the existing statuses if appropriate, or if not direct subclasses of Approval_status.

Persons and or organizations that provided the approval (or otherwise), are related to Approval objects using Approving_person_organization objects. Relationships between Approval objects are established by means of Approval_relationship objects.

The purpose of the approval is provided by using reference data to classify the Approval (see assigning_reference_data #1 in Figure 1)

EXAMPLE    The purpose is to approve the component for use on an aircraft.

Basic approval

For each basic approval, single instances of Approval, Approval_assignment, and Approving_person_organization are created.

Figure 2 illustrates the representation of a Person authorizing a Work_order.



Figure 2 —  Representation of a person authorizing a work order

Figure 2 —  Representation of a person authorizing a work order

Figure 3 illustrates the representation of an Organization authorizing a Work_order.



Figure 3 —  Representation of an organization  authorizing a work order

Figure 3 —  Representation of an organization authorizing a work order

Complex approvals

In a case where a series of authorizations are required for a single approval with a particular status, single instances of Approval, and multiple instances of Approving_person_organization are created.

EXAMPLE    A design change needs to be approved by both the customer and the supplier. Once they have both "signed off" on the change, it is approved.

Figure 4 illustrates the representation of two Persons authorizing a Work_order, with both authorizing the approval.



Figure 4 —  Representation of 2 persons authorizing the same work order

Figure 4 —  Representation of 2 persons authorizing the same work order

In a case where a series of authorizations are carried out as multiple approvals with differing statuses, multiple instances of Approval and Approving_person_organization are created. Each Approval indicates an approval by a given person.

EXAMPLE    A design change can be approved from a legal perspective and then a safety perspective. The approval cycle is sequential. First the change must meet legal requirements such as environmental emissions, then it must be safe.

Figure 5 illustrates the representation of two Persons authorizing a Work_order by making successive contributions to an approval cycle. First the legal approval, then the safety approval. In order to simplify the diagram, a number of required instances are not shown in the diagram. In particular, the dates and the Approval_statuss and their classifications.



Figure 5 —  Representation of two people contributing to an approval cycle

Figure 5 —  Representation of two people contributing to an approval cycle

A number of Approval_relationships may be employed in this fashion to construct complex hierarchies of approvals that contribute to an approval cycle.

In a case where an authorization covers multiple items under a single approval assignment role, a single instance of Approval_assignment is required.

Figure 6 illustrates the representation of a Person authorizing two Work_orders in circumstances where the same role is served by the assignment of that Approval to both orders.



Figure 6 —  Representation of a person approving two work orders where a single role is served

Figure 6 —  Representation of a person approving two work orders where a single role is served

Model Characterization

This section specifies how the information model can be further characterized by the assignment of additional information such as dates, approvals and people or organizations.

The following characterizations may apply.

Characterization: Dating approval activities (Optional)

There are two types of date associated with the approval activities. The date on which an approval is valid, and the date on which a person or organization grants an approval. In the case of a single person or organization granting an approval these dates will be the same. Where there are multiple people or organizations granting an approval, there will be a date associated with each approver and then a date associated with the approval itself. In addition, the dates may be the dates that approval statement was made, or the dates on which it was planned to be made.

The date on which an approval is stated is represented by using the assigning_time template to assign a date and time to the Approval. If this represents 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).

The date on which an individual person or organisation granted approval is represented by using the assigning_time template to assign a date and time to the Approving_person_organization. If this represents 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).

NOTE    Both Approval and Approving_person_organization have date attributes that could be used. However, the recommended approach is to always assign dates to items thus allowing for multiple dates in multiple roles. Hence, the use of the date attributes is discouraged.

AP239 Issue (RBN-2)
The ISO-10303-239 1st edition does not allow the assignment of dates to Approving_person_organization.

This has been raised as issue, RBN-2, against ISO 10303-239. The EXPRESS schema has been modified in DEXlib (Long form: dexlib/data/schemas/ap239_arm_lf.exp, short form: dexlib/data/schemas/ap239_arm_sf.exp). These changes will be made to ISO 10303-239 as a Technical Corrigendum at some stage.

Figure 8 illustrates the representation of a Approval carried out by an Approving_person_organization where Date_times are recorded for when an approval was planned to take effect, when the approval was signed off, and when the approval actually took effect.



Figure 8 —  Representation of a dates and times at which approvals were planned or took place

Figure 8 —  Representation of a dates and times at which approvals were planned or took place

Capability templates

The following sections define a set of templates for the capability, where a template is a specification of a set of entities that need to be instantiated to represent a given set of information.

Template: assigning_approval (Short name: asg_apr)

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=State_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: "State_of_approval" (urn:plcs:rdl:std:State_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 = $assigning_asserted_state.state_obs%

-- 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 = $assigning_asserted_state.state_assert%

-- 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 = $assigning_asserted_state.state_def%
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.

Template: assigning_approving_person (Short name: asg_apr_pers)

This section specifies the template assigning_approving_person.

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

Deprecation: Template assigning_approving_person

The use of template,assigning_approving_person, has been deprecated since 2008-01-09.

The assigning_approval template now uses the representing_person_in_organization and representing_organization templates
Description

This template describes how to assign a person (in an organization) to an approval of something.

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


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

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

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 assigning_approving_person template

Figure 2 —   The graphical representation of assigning_approving_person template

Input parameters
The following input parameters are defined for this template:
last_name (Type='STRING')
The last name (surname) of the person doing the approval
first_name (Type='STRING', Optional)
The first element of the Person's list of forenames. This parameter is optional.
middle_names (Type='STRING', Optional)
The Person's other forenames.
prefix_titles (Type='STRING', Optional)
The text that specifies the Person's social or professional standing and appear before his or her names. This parameter is optional.
suffix_titles (Type='STRING', Optional)
The text that specifies the Person's social or professional standing and appear after his or her names. This parameter is optional.
org_id (Type='STRING')
The name or identifier of the organization doing the approval.
org_id_class_name (Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the organization of the approval. This provides the role or reason for the identification. For example CAGE code.
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
org_id_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 @org_id_class_name class.
authorized_approval (Type= 'ENTITY (Approval)' )
The approval to which the person is assigned
Reference parameters
The following reference parameters are defined for this template:
person(Type='ENTITY (Person)')
Allow the Person entity instantiated in this path to be referenced when this template is used.
Note: The Person entity can be referenced in a template path by:
%^target = $assigning_approving_person.person%
where target is the parameter to which the Person is bound.
organization(Type='ENTITY (Organization)')
Allow the Organization entity instantiated in this path to be referenced when this template is used.
Note: The Organization entity can be referenced in a template path by:
%^target = $assigning_approving_person.organization%
where target is the parameter to which the Organization 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_approving_person.app_pers_org%
where target is the parameter to which the Approving_person_organization is bound.
pers_in_org(Type='ENTITY (Person_in_organization)')
Allow the Person_in_organization entity instantiated in this path to be referenced when this template is used.
Note: The Person_in_organization entity can be referenced in a template path by:
%^target = $assigning_approving_person.pers_in_org%
where target is the parameter to which the Person_in_organization 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 Approving_person_organization
Approving_person_organization

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

-- Set the Approving_person_organization attributes
Approving_person_organization.role = '/IGNORE'

-- Assign the Approving_person_organization to the
-- Approval entity passed into the template through
-- the @authorized_approval input parameter
Approving_person_organization.authorized_approval -> @authorized_approval

-- Instantiate Person_in_organization and point at it
Approving_person_organization.person_organization -> Person_in_organization

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

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

-- Instantiate Person and point at it
Person_in_organization.concerned_person -> Person

-- Set the Person attributes
Person.last_name -> @last_name
Person.first_name -> @first_name
Person.middle_names -> @middle_names
Person.prefix_titles -> @prefix_titles
Person.suffix_titles -> @suffix_titles

-- Instantiate Organization and point at it
Person_in_organization.containing_organization -> Organization

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

-- Identify the Organization
/assigning_identification_with_no_organization(
    items=^organization,
    id=@org_id,
    id_class_name=@org_id_class_name,
    id_ecl_id=@org_id_ecl_id)/

-- Set the Organization attributes
Organization.name = '/IGNORE'
Organization.id = '/IGNORE'
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Approving_person_organization.role '/IGNORE'
Person_in_organization.role '/IGNORE'
Organization.name '/IGNORE'
Organization.id '/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_approving_person(last_name='Olsen', first_name='Bob', middle_names='', prefix_titles='', suffix_titles='', org_id='BikeRent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std', items='#1')/
(an illustration of the consolidated assigning_approving_person template is shown in Figure 4 below.)
Note that the templates assigning_time and assigning_reference_data are instantiated in the diagram. Namely:
@3 /assigning_reference_data(class_name='Quality_assurance_auditor', ecl_id='urn:plcs:rdl:sample', items='#8')/
and:
@5 /assigning_reference_data(class_name='Quality_assurance', ecl_id='urn:plcs:rdl:sample', items='#5')/
and:
@3 /assigning_time(class_name='Date_actual', ecl_id='urn:plcs:rdl:std', year='2005', month='10', day='5', hour='0', minute='0', second='0', sense='.EXACT', hour_offset='0', minute_offset='0')/


Figure 3 —  Entities instantiated by assigning_approving_person template

Figure 3 —  Entities instantiated by assigning_approving_person 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_approving_person(last_name='Olsen', first_name='Bob', middle_names='', prefix_titles='', suffix_titles='', org_id='BikeRent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std', items='#1')/


Figure 4 —  Instantiation of assigning_approving_person template

Figure 4 —  Instantiation of assigning_approving_person template

Characterizations
The following section details how the assigning_approving_person 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 dates

NOTE   this characterization is optional.

The date on which a person gave an approval is represented by using the assigning_time template to assign a date and time to the Approving_person_organization. If this represents 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). This is illustrated in Figure 3, template @3.

Characterization Assigning classifications

NOTE   this characterization is optional.

Several entities may be classified to provide further semantics to the data.

The role of a person in an organization is represented using the template assigning_reference_data to assign a class to an Person_in_organization. This is illustrated in Figure 3, template @3.

The reason or role for the assignment of a person to an approval is represented by using the template assigning_reference_data to assign a class to Approving_person_organization. This is illustrated in Figure 3, template @5.

The type of organization may be represented by using the template assigning_reference_data to assign a class to Organization. This is illustrated in Figure 1.

Characterization Assigning address

NOTE   this characterization is optional.

An address may be assigned to a person in organization, e.g. to provide contact information.

The address of a person is represented using the template assigning_address to assign an address to a Person_in_organization. This is illustrated in Figure 1.

Template: assigning_approving_organization (Short name: asg_apr_org)

This section specifies the template assigning_approving_organization.

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

Deprecation: Template assigning_approving_organization

The use of template,assigning_approving_organization, has been deprecated since 2008-01-09.

The assigning_approval template now uses the representing_person_in_organization and representing_organization templates
Description

This template describes how to assign an organization (not a person in an organization) to an approval of something.

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


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

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

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 assigning_approving_organization template

Figure 2 —   The graphical representation of assigning_approving_organization template

Input parameters
The following input parameters are defined for this template:
org_id (Type='STRING')
The name or identifier of the organization doing the approval.
org_id_class_name (Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the organization of the approval. This provides the role or reason for the identification. For example CAGE code.
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
org_id_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 @org_id_class_name class.
authorized_approval (Type= 'ENTITY (Approval)' )
The approval to which the person is assigned
Reference parameters
The following reference parameters are defined for this template:
organization(Type='ENTITY (Organization)')
Allow the Organization entity instantiated in this path to be referenced when this template is used.
Note: The Organization entity can be referenced in a template path by:
%^target = $assigning_approving_organization.organization%
where target is the parameter to which the Organization 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_approving_organization.app_pers_org%
where target is the parameter to which the Approving_person_organization 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 Approving_person_organization
Approving_person_organization

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

-- Set the Approving_person_organization attributes
Approving_person_organization.role = '/IGNORE'

-- Assign the Approving_person_organization to the
-- Approval entity passed into the template through
-- the @authorized_approval input parameter
Approving_person_organization.authorized_approval -> @authorized_approval

-- Instantiate Organization and point at it
Approving_person_organization.person_organization -> Organization

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

-- Identify the Organization
/assigning_identification_with_no_organization(
    items=^organization,
    id=@org_id,
    id_class_name=@org_id_class_name,
    id_ecl_id=@org_id_ecl_id)/

-- Set the Organization attributes
Organization.name = '/IGNORE'
Organization.id = '/IGNORE'
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Approving_person_organization.role '/IGNORE'
Organization.name '/IGNORE'
Organization.id '/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_approving_organization(org_id='BikeRent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std', items='#1')/
(an illustration of the consolidated assigning_approving_organization template is shown in Figure 4 below.)
Note that the templates assigning_time and assigning_reference_data are instantiated in the diagram. Namely:
@3 /assigning_time(class_name='Date_actual', ecl_id='urn:plcs:rdl:std', year='2005', month='10', day='5', hour='0', minute='0', second='0', sense='.EXACT', hour_offset='0', minute_offset='0')/
and:
@5 /assigning_reference_data(class_name='Quality_assurance', ecl_id='urn:plcs:rdl:sample', items='#5')/


Figure 3 —  Entities instantiated by assigning_approving_organization template

Figure 3 —  Entities instantiated by assigning_approving_organization 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_approving_organization(org_id='BikeRent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std', items='#1')/


Figure 4 —  Instantiation of assigning_approving_organization template

Figure 4 —  Instantiation of assigning_approving_organization template

Characterizations
The following section details how the assigning_approving_organization 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 dates

NOTE   this characterization is optional.

The date on which an organization gave an approval is represented by using the assigning_time template to assign a date and time to the Approving_person_organization. If this represents 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). This is illustrated in Figure 3, template @3.

Characterization Assigning classifications

NOTE   this characterization is optional.

Several entities may be classified to provide further semantics to the data.

The role of a person in an organization is represented using the template assigning_reference_data to assign a class to an Person_in_organization. This is illustrated in Figure 3, template @3.

The reason or role for the assignment of a person to an approval is represented by using the template assigning_reference_data to assign a class to Approving_person_organization. This is illustrated in Figure 3, template @5.

The type of organization may be represented by using the template assigning_reference_data to assign a class to Organization. This is illustrated in Figure 1.

Characterization Assigning address

NOTE   this characterization is optional.

An address may be assigned to a person in organization, e.g. to provide contact information.

The address of a person is represented using the template assigning_address to assign an address to a Person_in_organization. This is illustrated in Figure 1.

Related capabilities

This capability "Assigning an Approval" is related to the following capabilities:

Dependent capabilities

This capability "Assigning an Approval" is dependent on the following capabilities:

Model reference data

The following classes of reference data are required for this capability:

[Approval_decomposition_relationship]
[warning:]Error RDL1: The class Approval_decomposition_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Approval_dependency_relationship]
[warning:]Error RDL1: The class Approval_dependency_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Approval_precedence_relationship]
[warning:]Error RDL1: The class Approval_precedence_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Approval_sequence_relationship]
[warning:]Error RDL1: The class Approval_sequence_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Approved(urn:plcs:rdl:std:Approved)
approval_status that denotes official acceptance.
Concession(urn:plcs:rdl:std:Concession)
A Concession is a class of Approval whose members represent a concession. A concession is the approval to perform an activity or use a product when there is some variance from the design. Note: a concession is typically limited to the delivery of a product that has non-conforming characteristics within specified limits for an agreed time or quantity of product.
Not_yet_approved(urn:plcs:rdl:std:Not_yet_approved)
approval_status that denotes no official acceptance as yet.
Rejected(urn:plcs:rdl:std:Rejected)
approval_status that denotes a failure to gain approval. NOTE: The equivalent term in the PDM Schema Usage Guide is disapproved.
Withdrawn(urn:plcs:rdl:std:Withdrawn)
approval_status that denotes that official acceptance is no longer being sought.

© OASIS 2010 — All rights reserved