Template:— contract (cntrct)
Context:— UK_Defence
Date: 2010/03/16 15:29:12
Revision: 1.4

This section specifies the template contract.

NOTE  The template has been defined in the context of UK_Defence. Refer to the business context for details of related templates.

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

Description

This template describes how to represent a written or spoken agreement that is enforceable by law.

Business perspective

The Contract business object is used by those UK_Defence Data Exchange Specifications that require information about a written or spoken agreements that are enforceable by law.

Business object definition


Figure 1 —  Graphical Representation for Business Object Contract

Figure 1 —  Graphical Representation for Business Object Contract

Contract:

The definition of an Contract object is: Data about written or spoken agreements that are enforceable by law.

Attribute name

Attribute description

Attribute type

Optionality

Effective from date This is the date from which the Contract becomes effective. Intrinsic Mandatory
Effective to date This is the date until which the Contract is effective. Intrinsic Mandatory
ID This is the Identifier of the Contract. Identifier Mandatory
Name This is the name of the Contract. Intrinsic Mandatory
Payment completion date The date by which payment for the Contract must be made. Intrinsic Mandatory
Payment method The method by which payment for the Contract must be made. Intrinsic Mandatory
Providing party The contractee. Intrinsic Mandatory
Receiving party The contractor. Intrinsic Mandatory
Type This is the type of the Contract. Intrinsic Optional
Value This is the value of the Contract. Intrinsic Mandatory

Table 1 — Contract attribute details

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


Figure 2 —  An EXPRESS-G representation of the Information model for contract

Figure 2 —  An EXPRESS-G representation of the Information model for contract

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


Figure 3 —  The graphical representation of the contract template

Figure 3 —  The graphical representation of the contract template

Input parameters
The following input parameters are defined for this template:
ID (Type='STRING')
The name or identifier of the contract.
ID_source_organization (Type='STRING')
The identifier of the organization responsible for the contract.
Providing_party (Type= 'SELECT (organization_or_person_in_organization_item)' )
The contractee.
Receiving_party (Type= 'SELECT (organization_or_person_in_organization_item)' )
The contractor.
Name (Type='STRING')
The Name of the contract.
Name_source_organization (Type='STRING')
The identifier of the organization responsible for the Name of the contract.
Effective_from_year (Type= 'TYPE (year_number)' )
The year component of the date and time from which the contract applies.
Effective_from_month (Type= 'TYPE (month_in_year_number)' )
The month component of the date and time from which the contract applies.
Effective_from_day (Type= 'TYPE (day_in_month_number)' )
The day component of the date and time from which the contract applies.
Effective_from_hour (Type= 'TYPE (hour_in_day)' )
The hour component of the date and time from which the contract applies.
Effective_from_minute (Type= 'TYPE (minute_in_hour)' , Optional)
The minute component of the date and time from which the contract applies. This parameter is optional. If not given, it will remain unset.
Effective_from_second (Type= 'TYPE (second_in_minute)' , Optional)
The second component of the date and time from which the contract applies. This parameter is optional. If not given, it will remain unset.
Effective_to_year (Type= 'TYPE (year_number)' )
The year component of the date and time until which the contract applies.
Effective_to_month (Type= 'TYPE (month_in_year_number)' )
The month component of the date and time until which the contract applies.
Effective_to_day (Type= 'TYPE (day_in_month_number)' )
The day component of the date and time until which the contract applies.
Effective_to_hour (Type= 'TYPE (hour_in_day)' )
The hour component of the date and time until which the contract applies.
Effective_to_minute (Type= 'TYPE (minute_in_hour)' , Optional)
The minute component of the date and time until which the contract applies. This parameter is optional. If not given, it will remain unset.
Effective_to_second (Type= 'TYPE (second_in_minute)' , Optional)
The second component of the date and time until which the contract applies. This parameter is optional. If not given, it will remain unset.
Payment_completion_year (Type= 'TYPE (year_number)' )
The year component of the date and time by which the payment for the contract must be made.
Payment_completion_month (Type= 'TYPE (month_in_year_number)' )
The month component of the date and time by which the payment for the contract must be made.
Payment_completion_day (Type= 'TYPE (day_in_month_number)' )
The day component of the date and time by which the payment for the contract must be made.
Payment_completion_hour (Type= 'TYPE (hour_in_day)' )
The hour component of the date and time by which the payment for the contract must be made.
Payment_completion_minute (Type= 'TYPE (minute_in_hour)' , Optional)
The minute component of the date and time by which the payment for the contract must be made. This parameter is optional. If not given, it will remain unset.
Payment_completion_second (Type= 'TYPE (second_in_minute)' , Optional)
The second component of the date and time by which the payment for the contract must be made. This parameter is optional. If not given, it will remain unset.
Payment_method (Type='CLASS')
The name of the class used to classify the contract. (Contract)
The following classes and their sub-classes can be used:
classifications: [Contract_payment_method]
[warning:]Error RDL4: The URI urn:plcs:rdl:uk_defence is not listed in dexlib/data/refdata/rdl_index.xml
Value (Type= 'TYPE (any_number_value)' )
The value of the contract The data type must also be indicated in this parameter, e.g. "ANY_NUMBER_VALUE(5)".
Currency (Type='CLASS')
The class name corresponding to the currency in which the value of the contract is measured.
The following classes and their sub-classes can be used:
classifications: "Unit" (urn:plcs:rdl:std:Unit)
Reference parameters
The following reference parameters are defined for this template:
contract(Type='ENTITY (Contract)')
Allow the Contract entity instantiated in this path to be referenced when this template is used.
Note: The Contract entity can be referenced in a template path by:
%^target = $contract.contract%
where target is the parameter to which the Contract is bound.
document(Type='ENTITY (Document)')
Allow the Document entity instantiated in this path to be referenced when this template is used.
Note: The Document entity can be referenced in a template path by:
%^target = $contract.document%
where target is the parameter to which the Document is bound.
document_assignment(Type='ENTITY (Document_assignment)')
Allow the Document_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Document_assignment entity can be referenced in a template path by:
%^target = $contract.document_assignment%
where target is the parameter to which the Document_assignment is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique id
Each instance of the entity (Contract) within the data set shall be uniquely identified by a combination of the following parameters on this template (contract) namely: ID, ID_source_organization.
The instance is referenced by the following template parameter: contract.
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 Templates Help/Information section.
-- Instantiate a Contract
Contract

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

-- Set the Contract attributes id, purpose and kind to be ignored
Contract.id = '/IGNORE'
Contract.kind = '/IGNORE'
Contract.purpose = '/IGNORE'

-- Assign identifier
/identifier(
    ID=@ID,
    source_organization=@ID_source_organization,
    type='Contract_identification_code',
    items=^contract)/

-- Assign payment completion date
/assigning_time(
    date_class_name='Date_planned_payment_completion',
    date_ecl_id='urn:plcs:rdl:uk_defence',
    year=@Payment_completion_year,
    month=@Payment_completion_month,
    day=@Payment_completion_day,
    hour=@Payment_completion_hour,
    minute=@Payment_completion_minute,
    second=@Payment_completion_second,
    sense='.EXACT.',
    hour_offset='0',
    minute_offset='0',
    items=^contract)/
/assigning_reference_data(
    items=^contract,
    class_name=@Payment_method,
    ecl_id='urn:plcs:rdl:uk_defence')/

-- Represent contract document
/representing_document(
    doc_id=@Name,
    doc_id_class_name='Contract_name',
    doc_id_ecl_id='urn:plcs:rdl:uk_defence',
    doc_org_id=@Name_source_organization,
    doc_org_id_class_name='Organization_name',
    doc_org_id_ecl_id='urn:plcs:rdl:std',
    doc_vn_id='/NULL',
    doc_vn_id_class_name='Version_identification_code',
    doc_vn_id_ecl_id='urn:plcs:rdl:std',
    doc_vn_org_id='/NULL',
    doc_vn_org_id_class_name='Organization_identification_code',
    doc_vn_org_id_ecl_id='urn:plcs:rdl:std',
    domain='Through_life_support_standard',
    domain_ecl_id='urn:plcs:rdl:uk_defence',
    life_cycle_stage='Support',
    life_cycle_stage_ecl_id='urn:plcs:rdl:std')/
%^document = $representing_document.document%

-- Assign contract document
/assigning_document(
    doc_ass_role='Document_assignment',
    doc_ar_ecl_id='urn:plcs:rdl:std',
    assigned_document=^document,
    is_assigned_to=^contract)/
%^document_assignment = $assigning_document.doc_asg%

-- Associcate contract document with contract
/assigning_document(
    doc_ass_role='Document_assignment',
    doc_ar_ecl_id='urn:plcs:rdl:std',
    assigned_document=^document,
    is_assigned_to=^contract)/
%^document_assignment = $assigning_document.doc_asg%

-- Contract effectivity
/assigning_dated_effectivity(
    start_year=@Effective_from_year,
    start_month=@Effective_from_month,
    start_day=@Effective_from_day,
    start_hour=@Effective_from_hour,
    start_minute=@Effective_from_minute,
    start_second=@Effective_from_second,
    start_sense='exact',
    start_hour_offset=0,
    start_minute_offset=0,
    end_year=@Effective_to_year,
    end_month=@Effective_to_month,
    end_day=@Effective_to_day,
    end_hour=@Effective_to_hour,
    end_minute=@Effective_to_minute,
    end_second=@Effective_to_second,
    end_sense='exact',
    end_hour_offset=0,
    end_minute_offset=0,
    role_class_name='Effectivity_assignment',
    role_ecl_id='urn:plcs:rdl:std',
    items=^contract)/
/assigning_product_property(
    property_class_name='Contract_value',
    property_ecl_id='urn:plcs:rdl:uk_defence',
    described_element=^contract)/
%^target = $assigning_product_property.property%
/product_property_numeric(
    value=@Value,
    unit=@Currency,
    unit_ecl_id='urn:plcs:rdl:std',
    si_unit='false',
    context='Numerical_representation_context',
    context_ecl_id='urn:plcs:rdl:std',
    property=^target)/

-- Create relationship to providing organization
Organization_or_person_in_organization_assignment
Organization_or_person_in_organization_assignment.items -> ^contract
Organization_or_person_in_organization_assignment.assigned_entity -> @Providing_party
Organization_or_person_in_organization_assignment.role = '/IGNORE'

-- Create relationship to receiving organization
Organization_or_person_in_organization_assignment
Organization_or_person_in_organization_assignment.items -> ^contract
Organization_or_person_in_organization_assignment.assigned_entity -> @Receiving_party
Organization_or_person_in_organization_assignment.role = '/IGNORE'
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Contract.id '/IGNORE'
Contract.kind '/IGNORE'
Contract.purpose '/IGNORE'
Organization_or_person_in_organization_assignment.role '/IGNORE'
Organization_or_person_in_organization_assignment.role '/IGNORE'
Instance diagrams
The instance diagram in Figure  4 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/contract(ID='C01', ID_source_organization='UK_Defence', Providing_party='ACME Engineering', Receiving_party='UK_Defence', Name='UK_Defence ACME Contract', Name_source_organzation='UK_Defence', Effective_from_year='2008', Effective_from_month='1', Effective_from_day='30', Effective_from_hour='12', Effective_from_minute='0', Effective_from_second='0', Effective_to_year='2009', Effective_to_month='1', Effective_to_day='30', Effective_to_hour='12', Effective_to_minute='0', Effective_to_second='0', Payment_completion_year='2009', Payment_completion_month='2', Payment_completion_day='10', Payment_completion_hour='17', Payment_completion_minute='0', Payment_completion_second='0', Type='Contract_type', Payment_method='Contract_payment_method', Value='20000', Currency='GBP')/
(an illustration of the consolidated contract template is shown in Figure 5 below.)


Figure 4 —  Entities instantiated by contract template

Figure 4 —  Entities instantiated by contract template

The instance diagram in Figure 5 shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/contract(ID='C01', ID_source_organization='UK_Defence', Providing_party='ACME Engineering', Receiving_party='UK_Defence', Name='UK_Defence ACME Contract', Name_source_organzation='UK_Defence', Effective_from_year='2008', Effective_from_month='1', Effective_from_day='30', Effective_from_hour='12', Effective_from_minute='0', Effective_from_second='0', Effective_to_year='2009', Effective_to_month='1', Effective_to_day='30', Effective_to_hour='12', Effective_to_minute='0', Effective_to_second='0', Payment_completion_year='2009', Payment_completion_month='2', Payment_completion_day='10', Payment_completion_hour='17', Payment_completion_minute='0', Payment_completion_second='0', Type='Contract_type', Payment_method='Contract_payment_method', Value='20000', Currency='GBP')/


Figure 5 —  Instantiation of contract template

Figure 5 —  Instantiation of contract template

Characterizations
The following section details how the contract 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 EXPRESS-G diagram in Figure 6 shows the possible characterizations of the template "contract".


Figure 6 —  Characterizations for contract

Figure 6 —  Characterizations for contract

The following characterizations may apply:
Characterization Assigning contract type

NOTE   this characterization is optional.

The type of Contract may be represented by assigning a classification (Classification_assignment) to the Contract using the assigning_reference_data template.

NOTE    The assignment of reference data is described the capability C010: assigning_reference_data.

© UK MOD 2010 — All rights reserved