Template:— representing_work_done (rep_wrk_done) Date: 2008/01/18 08:58:19
Revision: 1.30

This section specifies the template representing_work_done.

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 record of the work done to a product in response to an activity (a Directed_activity) that has been authorized by a Work_order. For further details see capability C065: representing_work_order (NB Capabilities are not documented in this release of the PLCS standard) ).

This template is used for tracking authorized activities that have been undertaken.

This template should only be used for activities that are neither performed by a product, or activities, such as configuration change activities, that have been undertaken in response to an activity (a Directed_activity) that has been authorized by a Work_order.

Where the activity is work planned to be done on a product and authorised by a Work_order, the template representing_work_order should be used.

Where the activity is planned to take place some time in the future but is not authorized by a work order i.e. directed, the template representing_planned_activity should be used.

Where the activity is a record of a usage of a product that has taken place, e.g. a sortie flown by an aircraft , the template representing_product_usage should be used.

Where the activity is a record of an activity that has taken place that is neither an authorized activity i.e. not authorized by a Work_order such as part of a directed change or technical bulletin, nor an activity performed by a product the more generic template representing_activity_actual should be used.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_work_done". The text highlighted in blue shows the template parameters.
Grey areas and templates with dashed lines are not included in the template, but may be used to further characterize the template.


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

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

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

Figure 2 —  The graphical representation of the representing_work_done template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Activity_actual.
id_class_name (Default=Activity_identification_code,Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the actual activity. This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Activity_identification_code" (urn:plcs:rdl:std:Activity_identification_code)
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 @id_class_name class.
id_owner (Type='STRING')
The name or identifier of the organization owning the id or name.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization. For example CAGE code, or organization name.
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)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library storing the @id_owner_class_name class
method (Type= 'ENTITY (Activity_method)' )
The typical activity of which this activity_actual is an instance, or other regulating method.
predicted_work (Type= 'ENTITY (Directed_activity)' )
The directed and planned activity of which this activity_actual is an occurrence.
items (Type= 'SELECT (activity_item)' )
The product that is or was used in the activity, e.g. the airplane that was used for a specific mission, the truck that was used for a specific transport.
date_class_name (Default=Date_actual_start,Type='CLASS')
The class name of the External_class corresponding to the type of date assignment.
The following classes and their sub-classes can be used:
classifications: "Date_actual_start" (urn:plcs:rdl:std:Date_actual_start), "Date_actual_end" (urn:plcs:rdl:std:Date_actual_end)
date_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 @date_class_name.
year (Type= 'TYPE (year_number)' )
The year component of the date and time the activity was started or completed.
month (Type= 'TYPE (month_in_year_number)' )
The month component of the date and time the activity was started or completed.
day (Type= 'TYPE (day_in_month_number)' )
The day component of the date and time the activity was started or completed.
hour (Type= 'TYPE (hour_in_day)' )
The hour component of the date and time the activity was started or completed.
minute (Type= 'TYPE (minute_in_hour)' , Optional)
The minute component of the date and time the activity was started or completed. This parameter is optional. If not given, it will remain unset.
second (Type= 'TYPE (second_in_minute)' , Optional)
The second component of the date and time the activity was started or completed. This parameter is optional. If not given, it will remain unset.
sense (Type= 'ENUMERATION (offset_orientation)' )
The direction that the time the activity was started or completed is offset from Coordinated Universal Time. Enumeration values are: 'ahead', 'exact' or 'behind'.
hour_offset (Type='INTEGER')
The number of hours by which the time the activity was started or completed is offset from Coordinated Universal Time.
minute_offset (Type='INTEGER', Optional)
The number of minutes by which the time the activity was started or completed is offset from Coordinated Universal Time. The value of this attribute need not be specified. This parameter is optional. If not given, it will remain unset.
Reference parameters
The following reference parameters are defined for this template:
actual_work(Type='ENTITY (Activity_actual)')
Allow the Activity_actual entity instantiated in this path to be referenced when this template is used.
Note: The Activity_actual entity can be referenced in a template path by:
%^target = $representing_work_done.actual_work%
where target is the parameter to which the Activity_actual is bound.
Allows referencing of entity Activity_actual from outside the template, e.g. in order to characterize the Activity_actual further.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique activity actual
There shall be at most one instance of the entity (Activity_actual) within the data set uniquely identified by a combination of the following parameters on this template (representing_work_done) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id.
The instance is referenced by the following template parameter: actual_work.
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 activity_actual
Activity_actual
%^actual_work = Activity_actual%
^actual_work.id = '/IGNORE'
^actual_work.name = '/IGNORE'
^actual_work.description = '/IGNORE'
^actual_work.chosen_method -> @method

-- Instantiate activity_happening
Activity_happening
Activity_happening.name = '/IGNORE'
Activity_happening.description = '/IGNORE'
Activity_happening.relating_activity -> ^actual_work
Activity_happening.related_activity -> @predicted_work

-- Assigning identification to activity_actual
/assigning_identification(
    id= @id,
    id_class_name= @id_class_name,
    id_ecl_id= @id_ecl_id,
    org_id= @id_owner,
    org_id_class_name= @id_owner_class_name,
    org_id_ecl_id= @id_owner_ecl_id,
    items= ^actual_work)/

-- Assigning start date and time
/assigning_time(
    date_class_name= @date_class_name,
    date_ecl_id= @date_ecl_id,
    year= @year,
    month= @month,
    day= @day,
    hour= @hour,
    minute= @minute,
    second= @second,
    sense= @sense,
    hour_offset= @hour_offset,
    minute_offset= @minute_offset,
    items= ^actual_work)/

-- Associate activity input
/assigning_activity(
    role_class_name= 'Activity_input',
    role_ecl_id= 'urn:plcs:rdl:std',
    assigned_activity= ^actual_work,
    items= @items)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Activity_actual.id '/IGNORE' Activity.id
Activity_actual.name '/IGNORE' Activity.name
Activity_actual.description '/IGNORE' Activity.description
Activity_happening.name '/IGNORE' Activity_relationship.name
Activity_happening.description '/IGNORE' Activity_relationship.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_work_done(id='Repair brakes', id_class_name='Activity_identification_code', id_ecl_id='urn:plcs:rdl:std', id_owner='BikeRepair Limited', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', method='#144', predicted_work='#208', items='#53', date_class_name='Date_actual_start', date_ecl_id='urn:plcs:rdl:std', year='2007', month='1', day='22', hour='13', minute='$', second='$', sense='.EXACT.', hour_offset='0', minute_offset='0')/
(an illustration of the consolidated representing_work_done template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_work_done template

Figure 3 —  Entities instantiated by representing_work_done template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#1 = ACTIVITY_ACTUAL('/IGNORE','/IGNORE','/IGNORE',#144); #3 = IDENTIFICATION_ASSIGNMENT('Repair brakes','/IGNORE',$,(#1)); #5 = CLASSIFICATION_ASSIGNMENT(#6,(#3),'/IGNORE'); #6 = EXTERNAL_CLASS('/IGNORE','Activity_identification_code','/IGNORE',#7); #7 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std',$); #9 = ORGANIZATION('/IGNORE','/IGNORE'); #11 = IDENTIFICATION_ASSIGNMENT('BikeRepair Limited','/IGNORE','/IGNORE',(#9,#152,#177,#216)); #13 = CLASSIFICATION_ASSIGNMENT(#14,(#11),'/IGNORE'); #14 = EXTERNAL_CLASS('/IGNORE','Organization_name','/IGNORE',#7); #16 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#9,'/IGNORE',(#3)); #18 = CLASSIFICATION_ASSIGNMENT(#19,(#16),'/IGNORE'); #19 = EXTERNAL_CLASS('/IGNORE','Owner_of','/IGNORE',#7); #22 = DATE_OR_DATE_TIME_ASSIGNMENT(#28,'/IGNORE',(#1)); #24 = CLASSIFICATION_ASSIGNMENT(#25,(#22),'/IGNORE'); #25 = EXTERNAL_CLASS('/IGNORE','Date_actual_start','/IGNORE',#7); #28 = DATE_TIME(#29,#30); #29 = CALENDAR_DATE(2007,1,22); #30 = LOCAL_TIME(13,$,$,#31); #31 = TIME_OFFSET(0,$,.EXACT.); #33 = PRODUCT_AS_INDIVIDUAL('/IGNORE','/IGNORE','/IGNORE'); #35 = IDENTIFICATION_ASSIGNMENT('12375688','/IGNORE',$,(#33)); #37 = CLASSIFICATION_ASSIGNMENT(#38,(#35),'/IGNORE'); #38 = EXTERNAL_CLASS('/IGNORE','Serial_identification_code','/IGNORE',#7); #41 = ORGANIZATION('/IGNORE','/IGNORE'); #43 = IDENTIFICATION_ASSIGNMENT('Crescent','/IGNORE','/IGNORE',(#41)); #45 = CLASSIFICATION_ASSIGNMENT(#14,(#43),'/IGNORE'); #48 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#41,'/IGNORE',(#35)); #50 = CLASSIFICATION_ASSIGNMENT(#19,(#48),'/IGNORE'); #53 = PRODUCT_AS_REALIZED('/IGNORE','/IGNORE',#33); #55 = IDENTIFICATION_ASSIGNMENT('UNKNOWN','/IGNORE',$,(#53)); #57 = CLASSIFICATION_ASSIGNMENT(#58,(#55),'/IGNORE'); #58 = EXTERNAL_CLASS('/IGNORE','Version_identification_code','/IGNORE',#7); #61 = ORGANIZATION('/IGNORE','/IGNORE'); #63 = IDENTIFICATION_ASSIGNMENT('UNKNOWN','/IGNORE','/IGNORE',(#61)); #65 = CLASSIFICATION_ASSIGNMENT(#14,(#63),'/IGNORE'); #68 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#61,'/IGNORE',(#55)); #70 = CLASSIFICATION_ASSIGNMENT(#19,(#68),'/IGNORE'); #73 = PRODUCT_AS_INDIVIDUAL_VIEW('/IGNORE','/IGNORE','/IGNORE',#74,(),#53); #74 = VIEW_DEFINITION_CONTEXT('/IGNORE','/IGNORE','/IGNORE'); #76 = CLASSIFICATION_ASSIGNMENT(#77,(#74),'/IGNORE'); #77 = EXTERNAL_CLASS('/IGNORE','Support_stage','/IGNORE',#7); #80 = CLASSIFICATION_ASSIGNMENT(#81,(#74),'/IGNORE'); #81 = EXTERNAL_CLASS('/IGNORE','Product_life_cycle_support','/IGNORE',#7); #84 = PART('/IGNORE','/IGNORE','/IGNORE'); #86 = IDENTIFICATION_ASSIGNMENT('SC33376B','/IGNORE',$,(#84)); #88 = CLASSIFICATION_ASSIGNMENT(#89,(#86),'/IGNORE'); #89 = EXTERNAL_CLASS('/IGNORE','Part_identification_code','/IGNORE',#7); #92 = ORGANIZATION('/IGNORE','/IGNORE'); #94 = IDENTIFICATION_ASSIGNMENT('Unknown','/IGNORE','/IGNORE',(#92)); #96 = CLASSIFICATION_ASSIGNMENT(#14,(#94),'/IGNORE'); #99 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#92,'/IGNORE',(#86)); #101 = CLASSIFICATION_ASSIGNMENT(#19,(#99),'/IGNORE'); #104 = PRODUCT_CATEGORY_ASSIGNMENT(#105,(#84)); #105 = PRODUCT_CATEGORY('/IGNORE','part','/IGNORE'); #106 = PART_VERSION('/IGNORE','/IGNORE',#84); #108 = IDENTIFICATION_ASSIGNMENT('Unknown','/IGNORE',$,(#106)); #110 = CLASSIFICATION_ASSIGNMENT(#58,(#108),'/IGNORE'); #114 = ORGANIZATION('/IGNORE','/IGNORE'); #116 = IDENTIFICATION_ASSIGNMENT('Unknown','/IGNORE','/IGNORE',(#114)); #118 = CLASSIFICATION_ASSIGNMENT(#14,(#116),'/IGNORE'); #121 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#114,'/IGNORE',(#108)); #123 = CLASSIFICATION_ASSIGNMENT(#19,(#121),'/IGNORE'); #126 = PART_VIEW_DEFINITION('/IGNORE','/IGNORE','/IGNORE',#127,(),#106); #127 = VIEW_DEFINITION_CONTEXT('/IGNORE','/IGNORE','/IGNORE'); #129 = CLASSIFICATION_ASSIGNMENT(#77,(#127),'/IGNORE'); #133 = CLASSIFICATION_ASSIGNMENT(#81,(#127),'/IGNORE'); #136 = PRODUCT_DESIGN_TO_INDIVIDUAL(#84,#33); #138 = APPLIED_ACTIVITY_ASSIGNMENT(#1,(#53),'/IGNORE'); #140 = CLASSIFICATION_ASSIGNMENT(#141,(#138),'/IGNORE'); #141 = EXTERNAL_CLASS('/IGNORE','Activity_input','/IGNORE',#7); #144 = ACTIVITY_METHOD('/IGNORE','/IGNORE','/IGNORE','/IGNORE'); #146 = IDENTIFICATION_ASSIGNMENT('Brake repair method','/IGNORE',$,(#144)); #148 = CLASSIFICATION_ASSIGNMENT(#149,(#146),'/IGNORE'); #149 = EXTERNAL_CLASS('/IGNORE','Activity_method_identification_code','/IGNORE',#7); #152 = ORGANIZATION('/IGNORE','/IGNORE'); #159 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#152,'/IGNORE',(#146)); #161 = CLASSIFICATION_ASSIGNMENT(#19,(#159),'/IGNORE'); #165 = CLASSIFICATION_ASSIGNMENT(#166,(#144),'/IGNORE'); #166 = EXTERNAL_CLASS('/IGNORE','Typical_activity','/IGNORE',#7); #169 = WORK_ORDER($,$,()); #171 = IDENTIFICATION_ASSIGNMENT('WO-25','/IGNORE',$,(#169)); #173 = CLASSIFICATION_ASSIGNMENT(#174,(#171),'/IGNORE'); #174 = EXTERNAL_CLASS('/IGNORE','Work_request_identification_code','/IGNORE',#7); #177 = ORGANIZATION('/IGNORE','/IGNORE'); #184 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#177,'/IGNORE',(#171)); #186 = CLASSIFICATION_ASSIGNMENT(#19,(#184),'/IGNORE'); #190 = DATE_OR_DATE_TIME_ASSIGNMENT(#196,'/IGNORE',(#169)); #192 = CLASSIFICATION_ASSIGNMENT(#193,(#190),'/IGNORE'); #193 = EXTERNAL_CLASS('/IGNORE','Date_actual_release','/IGNORE',#7); #196 = DATE_TIME(#197,#198); #197 = CALENDAR_DATE(2007,1,20); #198 = LOCAL_TIME(10,$,$,#199); #199 = TIME_OFFSET(0,$,.EXACT.); #201 = APPROVAL_ASSIGNMENT(#202,(#169),'/IGNORE'); #202 = APPROVAL(#203,'/IGNORE',$,$); #203 = APPROVAL_STATUS('/IGNORE'); #205 = CLASSIFICATION_ASSIGNMENT(#206,(#203),'/IGNORE'); #206 = EXTERNAL_CLASS('/IGNORE','Approved','/IGNORE',#207); #207 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std',$); #208 = DIRECTED_ACTIVITY($,$,$,#144,#169); #210 = IDENTIFICATION_ASSIGNMENT('ACT-25','/IGNORE',$,(#208)); #212 = CLASSIFICATION_ASSIGNMENT(#6,(#210),'/IGNORE'); #216 = ORGANIZATION('/IGNORE','/IGNORE'); #223 = ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT(#216,'/IGNORE',(#210)); #225 = CLASSIFICATION_ASSIGNMENT(#19,(#223),'/IGNORE'); #229 = APPLIED_ACTIVITY_ASSIGNMENT('',(#53),'/IGNORE'); #231 = CLASSIFICATION_ASSIGNMENT(#232,(#229),'/IGNORE'); #232 = EXTERNAL_CLASS('/IGNORE','Activity_input','/IGNORE',#7); #234 = ACTIVITY_HAPPENING('/IGNORE','/IGNORE',#1,#208);
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:
/representing_work_done(id='Repair brakes', id_class_name='Activity_identification_code', id_ecl_id='urn:plcs:rdl:std', id_owner='BikeRepair Limited', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', method='#144', predicted_work='#208', items='#53', date_class_name='Date_actual_start', date_ecl_id='urn:plcs:rdl:std', year='2007', month='1', day='22', hour='13', minute='$', second='$', sense='.EXACT.', hour_offset='0', minute_offset='0')/


Figure 4 —  Entities instantiated by representing_work_done template

Figure 4 —  Entities instantiated by representing_work_done template

Characterizations
The following section details how the representing_work_done 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 5 shows the possible characterizations of the template "representing_work_done".


Figure 5 —  Characterizations for representing_work_done template

Figure 5 —  Characterizations for representing_work_done template

The following characterizations may apply:
Characterization Assigning date

NOTE   this characterization is optional.

The date when an Activity_actual was started or finished can optionally be represented by assigning a Date_time (representing the start/end date) to the Activity_actual using the assigning_time template with the Date_time being classified as a type of "Date_actual_end" (urn:plcs:rdl:std:Date_actual_end) or "Date_actual_end" (urn:plcs:rdl:std:Date_actual_end) respectively.

NOTE    The mandatory use of the template assigning_time can be used to represent either a start date ( "Date_actual_start" (urn:plcs:rdl:std:Date_actual_start)) or an end date ( "Date_actual_end" (urn:plcs:rdl:std:Date_actual_end)). If both a start and an end date exists both should be assigned to the Activity_actual, represented by two instances of the assigning_time template.

NOTE    The assignment of a date is described by the template assigning_time.

Characterization Assigning reference data

NOTE   this characterization is optional.

The type of Activity_actual can be represented by assigning an External_class to the Activity_actual using the assigning_reference_data template.

NOTE    The assignment of reference data is described by the template assigning_reference_data.

EXAMPLE    If the work done is a change to the configuration status of a Product_as_realized (a new version has been created), then the Activity_actual should be classified as "Configuration_change" (urn:plcs:rdl:std:Configuration_change).



Figure 6 —  Assigning reference data for work done as configuration change

Figure 6 —  Assigning reference data for work done as configuration change

Characterization Assigning state

NOTE   this characterization is optional.

The state of an Activity_actual can be represented by assigning a State_observed to the Activity_actual using the assigning_asserted_state template.

NOTE    The status should not be represented using Activity_status.

NOTE    The assignment of a state is described by the template assigning_asserted_state.



Figure 7 —  Assigning the state of work done

Figure 7 —  Assigning the state of work done

© OASIS 2008 — All rights reserved