| DEX (D011):— aviation_maintenance | Date: 2008/03/10 10:36:16 Revision: 1.145 |
The following sections provide a detailed description on how to represent an aviation maintenance feedback DEX using ISO 10303-239 PLCS. This is defined using PLCS capabilities, templates and PLCS reference data.
This definition may be further tailored by specific parties by extending the reference data defined in the PLCS reference data library.
The information to be exchanged by the Aviation Maintenance DEX has been summarised in Figure 6 in Section: Aviation maintenance: Business Information Overview. A more detailed definition of the type of information that can be exchanged using the Aviation Maintenance DEX is provided by the UML class diagrams in Section: Aviation maintenance - Business Information Requirements Figure 7 and Figure 8. A summary of how this information is represented in PLCS is provided in Figure 9 and expanded in subsequent sections.

Figure 9 shows:
The remainder of this section provides more details how the information summarized previously is represented using PLCS. It comprises the following:
Each section contains a UML class diagram that provides an overview of the data to be exchanged, a description of the UML classes and then a definition of how that information is represented in PLCS. The information that is shown in UML class diagram is intended to provide guidance for the type of information that can be represented by the DEX. As different systems and business processes may not support or require the information the DEX does not mandate that all the information shown is exchanged.
NOTE For each template, a table is provided detailing the values for each template parameter, Where the value is to be set by the sending system, value is shown with a ? at the start and end. E.g. ?org_id?.
Information will be extracted and packaged as a message which is then sent to a recipient.
The information associated with a message is summarized in the UML class diagram in Figure 10. This is a subset of the UML diagrams shown in Figure 8 in Section: Aviation maintenance Business Information Requirements - Message and Figure 7 in Section: Aviation maintenance Business Information Requirements - Information. This shows the meta data for message, and the activity being reported on in the message - the subclasses of Reportable_activity. The information associated with the activities is detailed in subsequent sections.
NOTE The information shown in the UML class diagram in Figure 10 is intended to illustrate the type of information that can be represented by the DEX. It does not imply that all exchanges must contain this information.

The following section describes how ISO 10303-239 PLCS is used to represent a message. This is summarised in Figure 11 below.
Extracted information should be packaged as a message which is then sent to the recipient. The Message containing the reported activity is represented in ISO 10303-239 PLCS by the template #1, representing_message which instantiates Message described in the capability C014: messaging (NB Capabilities are not documented in this release of the PLCS standard) and shown in Figure 11 below. Message meta data is then assigned to the Message. If the person or organization who sent and received the message is required it is represented by templates #6 assigning_person_in_organization and #7 assigning_organization. If the date extract of the data is required this is represented by template #4 assigning_time described in the capability C036: assigning_date_time (NB Capabilities are not documented in this release of the PLCS standard) . If contract identification information is required this is represented by template #3 assigning_contract described in the capability C083: representing_contract (NB Capabilities are not documented in this release of the PLCS standard) . If security information is required this is represented by template #5 assigning_security_classification described in the capability : representing_security (NB Capabilities are not documented in this release of the PLCS standard) .
In addition to the message meta data, the content of the message is identified. This is represented by linking the Message to the activities that are reported by the message via the Content_item_selected entity and message_content_item select. If the DEX is reporting on:
NOTE When the message is reporting on work done, the work done will refer back to the work order. The linking of the message to the representing_work_order should only be done when the work order has been raised. When the work authorised by the work order has started or completed the linking should be to the representing_work_done.
The message content templates identified above will refer to, or be referenced by, other templates representing the rest of the message content. E.g the reportable item, properties on the reportable item etc.
The message is normally contains one business transaction. E.g. contains one work order. If however, the message is required to contain a number of business transactions, e.g. multiple work orders, then the additional content, e.g. work orders, is represented by instantiating multiple occurrences of the Content_item_selected item, instantiated by the template representing_message, and linking this to the message and content.

The following templates are used in Figure 11 to represent a message:
| Template #1 (Figure 11): representing_message | |||
|---|---|---|---|
| Description | The package of data to be exchanged | ||
| Parameter name: | Parameter value: | Parameter description: | |
| rep_msg_id | ?rep_msg_id? | the identifier of the message | |
| rep_msg_id_class_name | "Message_identification_code" (urn:plcs:rdl:std:Message_identification_code) | The name of the class being used to classify the identification (Identification_assignment) of the message. This provides the role or reason for the identification. | |
| rep_msg_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the rep_msg_id_class_name. | |
| rep_msg_id_owner | ?rep_msg_id_owner? | The identifier or name of the organization that "owns" the message identifier. | |
| rep_msg_id_owner_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name of the class being used to classify the identification of the organization. For example CAGE code, or organization name. | |
| rep_msg_id_owner_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the cnt_org_id_class_name class items. | |
| date_class_name | "Date_actual_extraction" (urn:plcs:rdl:std:Date_actual_extraction) | The name of the class being used to classify the role date assignment, e.g. the message sending date. | |
| date_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the date_class_name class items. | |
| year | ?year? | The 'year' component of: the date the data was extracted from the source system. | |
| month | ?month? | The 'month' component of: the date the data was extracted from the source system . | |
| day | ?day? | The 'day' component of: the date the data was extracted from the source system. This can be in local time or UTC | |
| hour | ?hour? | The 'hour' component of: the date the data was extracted from the source system. This can be in local time or UTC. | |
| minute | ?minute? | The 'minute' component of: the date the data was extracted from the source system. This can be in local time or UTC. | |
| second | ?second? | The 'second' component of: the date the data was extracted from the source system. This can be in local time or UTC | |
| sense | ?sense? | Three possible values 'exact' when the time is in UTC, 'behind' when the time is a local time behind UTC and 'ahead' when the time is a local time ahead of UTC | |
| hour_offset | ?hour_offset? | The hour offset from UTC, use 0 when the time is UTC | |
| minute_offset | ?minute_offset? | The minute offset from UTC, use 0 when the time is UTC | |
| ap239_id_class_name | "AP239_version" (urn:plcs:rdl:std:AP239_version) | The name of the class being used to classify the Message as a container of ISO 10303-239 data of a given version. The class identifies the version of ISO 10303-239 to which the data in the message conforms. | |
| ap239_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the ap239_id_class_name class items. | |
| dex_id_class_name | "DEX_message_aviation_maintenance_v1" (urn:plcs:rdl:std:DEX_message_aviation_maintenance_v1) | The name of the class being used to classify the Message as a container of an identified DEX. The class defines the DEX to which the data in the message conforms. | |
| dex_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the dex_id_class_name class items. | |
| content | Activity_actual | This is the activity that is represented as a Activity_actual which is part of template representing_work_done. | |
| Template #3 (Figure 11): assigning_contract | |||
|---|---|---|---|
| Description | The identification of the contract covering the message. | ||
| Parameter name: | Parameter value: | Parameter description: | |
| cnt_id | ?cnt_id? | the identifier of the contract | |
| cnt_id_class_name | "Contract_identification_code" (urn:plcs:rdl:std:Contract_identification_code) | The name of the class being used to classify the identification (Identification_assignment) of the contract. | |
| cnt_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the cnt_id_class_name. | |
| cnt_org_id | ?cnt_org_id? | The identifier or name of the organization that "owns" the identifier. | |
| cnt_org_id_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name of the class being used to classify the identification (Identification_assignment) of the organization. | |
| cnt_org_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the cnt_org_id_class_name class items. | |
| items | Message | The items to which the contract is assigned | |
| Template #4 (Figure 11): assigning_time | |||
|---|---|---|---|
| Description | The time the message was sent. | ||
| Parameter name: | Parameter value: | Parameter description: | |
| date_class_name | "Date_message_sent" (urn:plcs:rdl:std:Date_message_sent) | The name of the class being used to classify the role date assignment, e.g. the start date. | |
| date_ecl_id | "urn:plcs:rdl:std" | The id of the External_class_library in which the date class is defined. | |
| year | ?year? | The 'year' component of: the date the message was sent. | |
| month | ?month? | The 'month' component of: the date the message was sent. | |
| day | ?day? | The 'day' component of: the date the message was sent. This can be in local time or UTC | |
| hour | ?hour? | The 'hour' component of: the date the message was sent. This can be in local time or UTC. | |
| minute | ?minute? | The 'minute' component of: the date the message was sent. This can be in local time or UTC | |
| second | ?second? | The 'second' component of: the date the message was sent. This can be in local time or UTC. | |
| sense | ?sense? | Three possible values 'exact' when the time is in UTC, 'behind' when the time is a local time behind UTC and 'ahead' when the time is a local time ahead of UTC. | |
| hour_offset | ?hour_offset? | The hour offset from UTC, use 0 when the time is UTC. | |
| minute_offset | ?minute_offset? | The minute offset from UTC, use 0 when the time is UTC. | |
| items | Message | The items to which the date is assigned. | |
| Template #5 (Figure 11): assigning_security_classification | |||
|---|---|---|---|
| Description | The security classification of the message | ||
| Parameter name: | Parameter value: | Parameter description: | |
| security_class_name | "Security_classification" (urn:plcs:rdl:std:Security_classification) | The name of the class being used to classify the security level. (Security_classification_assignment) | |
| security_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @security_assgn_class_name. | |
| items | Message | The items to which the security classification is assigned. | |
| Template #6 (Figure 11): assigning_person_in_organization | |||
|---|---|---|---|
| Description | The identification of the sender or receiver. | ||
| Parameter name: | Parameter value: | Parameter description: | |
| last_name | ?last_name? | The last name of the person sending or receiving the message | |
| first_name | ?first_name? | The first name of the person sending or receiving the message; use "unknown" when the information is not known to the sending system | |
| middle_names | ?middle_names? | The middle name of the person sending or receiving the message; use "unknown" when the information is not known to the sending system | |
| prefix_titles | ?prefix_titles? | The prefix title of the person sending or receiving the message; use "unknown" when the information is not known to the sending system | |
| suffix_titles | ?suffix_titles? | The suffix title of the person sending or receiving the message; use "unknown" when the information is not known to the sending system | |
| person_role_class_name | "Receiver_of" (urn:plcs:rdl:std:Receiver_of) "Sender_of" (urn:plcs:rdl:std:Sender_of) | The name of the class being used to classify the person assignment () This provides the role for the assignment. | |
| person_role_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @person_role_class_name class. | |
| org_id | ?org_id? | The identifier of the organization in which the person sending or receiving the message. | |
| org_id_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name or code that identifies (Identification_assignment) an organization. | |
| org_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @org_id_class_name class. | |
| items | Message | The items to which the person is assigned | |
| Template #7 (Figure 11): assigning_organization | |||
|---|---|---|---|
| Description | The identification of the sender or receiver. | ||
| Parameter name: | Parameter value: | Parameter description: | |
| org_id | ?org_id? | The identifier of the sending or receiving organization | |
| org_id_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name of the class being used to classify the identification (Identification_assignment) of the organization. | |
| org_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @org_id_class_name class. | |
| org_assgn_class_name | "Receiver_of" (urn:plcs:rdl:std:Receiver_of) "Sender_of" (urn:plcs:rdl:std:Sender_of) | The name of the class being used to classify the assignment of the organization. (Organization_or_person_in_organization_assignment) This provides the role or reason for the assignment. For example 'Owner_of'. | |
| org_assgn_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @org_assgn_class_name. | |
| items | Message | The items to which the organization is assigned | |
The templates used to content of the message is described in subsequent sections. Namely:
Maintenance activities that are performed on an aircraft normally require a level of authorization. This can be represented by a maintenance work order. The information that can be associated with a maintenance work order is summarized in the UML class diagram in Figure 12. This is a subset of the UML diagrams shown in Figure 8 in Section: Aviation maintenance Business Information Requirements - Message and Figure 7 in Section: Aviation maintenance Business Information Requirements - Information.
NOTE The information shown in the UML class diagram in Figure 12 is intended to illustrate the type of information that can be represented by the DEX. It does not imply that all exchanges must contain this information.

The following section describes how ISO 10303-239 PLCS is used to represent a maintenance work order. This is summarised in Figure 13 below.
A work order is required to conduct work on an aircraft. Work orders are the authority to conduct an activity on a reportable_item.
A work order is represented by an instance of Work_order which is defined as part of the template #4 representing_work_order as shown in the EXPRESS-G diagram, Figure 13, below.
The type of activity that is authorized, such as maintenance, installation, repair/overhual is provided by classifying the activity by using the template #18 assigning_reference_data.
The work order is normally raised against a particular reportable item, the item for which work is required. The reportable item is represented by the template #2 representing_product_as_realized described in the capability C045: representing_product_as_individual (NB Capabilities are not documented in this release of the PLCS standard) . The work order is related to the representing_product_as_realized by an Applied_activity_assignment within template #4 representing_work_order. The work order may also be raised against the end item, the item to which the reportable item is fitted. The end item is represented by the template #9 representing_product_as_realized and related to the work order by the template #1 assigning_activity. The end item is related to the reportable item by the template #8 representing_promissory_usage described in the capability C003: representing_assembly_structure (NB Capabilities are not documented in this release of the PLCS standard) . Section: Representing a reportable item provides details of how a reportable item is represented.
A work order identifies the method by which the authorised activity is to be done - a standard maintenance task. This is a description of the work to be done or a more formal task specification. The informal description is represented by the template #5 representing_typical_activity. Where a formal task specification is available, the template #17 referencing_task is used to identify the task. The task is related to the typical activity by the entity Activity_method_realization.
The work order can have a status which is represented by template #12 assigning_asserted_state described in the capability C041: representing_state_observed (NB Capabilities are not documented in this release of the PLCS standard) . The work order can record a date on which the authorized work was planned to start, a date it was planned to end and the date that the work was actually completed; these are respectively represented by the templates #15, #16 and #13 assigning_time described in the capability C036: assigning_date_time (NB Capabilities are not documented in this release of the PLCS standard) . The organization that raises the work order can be record; this is represented by template #19 assigning_organization described in the capability C094: assigning_organization (NB Capabilities are not documented in this release of the PLCS standard) . The work order can record the organization that conducts the maintenance; this is represented by template #10 assigning_organization described in the capability C094: assigning_organization (NB Capabilities are not documented in this release of the PLCS standard) . The work order can record information about the type of organization that conducts the maintenance, e.g. the line of repair (first line, second line); this is represented by template #11 assigning_reference_data described in the capability C010: assigning_reference_data (NB Capabilities are not documented in this release of the PLCS standard) . The work order can record the description of the work order; this is represented by template #14 assigning_descriptor described in the capability C095: assigning_descriptor (NB Capabilities are not documented in this release of the PLCS standard) .
The relationship between two work orders or a work order and an engineering instruction is represented by Activity_relationship. This relates the authorised activity (Directed_activity) instantiated by the work order (template #4 representing_work_order) to the authorised activity (Directed_activity) of the related work order or engineering instruction instantiated by the template #7 and #6 referencing_work_order as shown in the EXPRESS-G diagram, Figure 13, below.
The activity identifying the work done on the reportable item that was authorised by the maintenance work order is represented by template #3 representing_work_done described in the capability C064: representing_work_done (NB Capabilities are not documented in this release of the PLCS standard) . Section: Representing reportable item maintenance activity provides details of how to represent the work done.

The following templates are used in Figure 13 to represent the maintenance work order:
| Template #1 (Figure 13): assigning_activity | |||
|---|---|---|---|
| Description | Relates the work order to the end item that is the subject of the work order | ||
| Parameter name: | Parameter value: | Parameter description: | |
| role_class_name | "Activity_output" (urn:plcs:rdl:std:Activity_output) | The class name of the External_class corresponding to the role of the assignment, e.g. "Activity_input" (urn:plcs:rdl:std:Activity_input), or "Activity_output" (urn:plcs:rdl:std:Activity_output). | |
| role_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @role_class_name. | |
| assigned_activity | Directed_activity | This is the authorized activity that is represented as a Directed_activity which is part of template representing_work_order. | |
| items | Product_as_realized | This is the Product_as_realized that represents the end item. | |
The use of template #2 representing_product_as_realized in Figure 13 is identical to, and described in, template table: Template #1(Figure 18).
| Template #3 (Figure 13): representing_work_done | |||
|---|---|---|---|
| Description | The work done on the reportable item. | ||
| Parameter name: | Parameter value: | Parameter description: | |
| id | ?id? | The identifier assigned to the work done | |
| id_class_name | "Activity_identification_code" (urn:plcs:rdl:std:Activity_identification_code) | 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. | |
| id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the definition of the class referenced by the parameter @id_class_name class. | |
| id_owner | ?org_id? | The identifier of the organization that "owns" the identifier. | |
| id_owner_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name of the class being used to classify the identification of the organization. For example CAGE code, or organization name. | |
| id_owner_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the org_id_class_name class items. | |
| date_class_name | "Date_actual_start" (urn:plcs:rdl:std:Date_actual_start) | The date the activity was started | |
| date_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the date_name class items. | |
| year | ?year? | the year component of the start date and time of the work that was done | |
| month | ?month? | the month component of the start date and time of the work that was done | |
| day | ?day? | the day component of the start date and time of the work that was done. This can be in local time or UTC | |
| hour | ?hour? | the hour component of the start date and time of the work that was done. This can be in local time or UTC | |
| minute | ?minute? | the minute component of the start date and time of the work that was done. This can be in local time or UTC | |
| second | ?second? | the second component of the start date and time of the work that was done. This can be in local time or UTC | |
| sense | ?sense? | Three possible values 'exact' when the time is in UTC, 'behind' when the time is a local time behind UTC and 'ahead' when the time is a local time ahead of UTC | |
| hour_offset | ?hour_offset? | The hour offset from UTC, use 0 when the time is UTC | |
| minute_offset | ?minute_offset? | The minute offset from UTC, use 0 when the time is UTC | |
| items | Product_as_individual_view | The reportable item that the work was done on represented as Product_as_individual_view which is part of template representing_product_as_realized. | |
| predicted_work | Directed_activity | The authorized planned work represented as a Directed_activity which is part of template representing_work_order. | |
| method | Activity_method | The method used to do the work represented as Activity_method which is part of template representing_typical_activity. | |
| Template #4 (Figure 13): representing_work_order | |||
|---|---|---|---|
| Description | The authority to perform the work. | ||
| Parameter name: | Parameter value: | Parameter description: | |
| id | ?id? | The identifier assigned to the work order | |
| id_class_name | "Work_order_identification_code" (urn:plcs:rdl:std:Work_order_identification_code) | The name of the class used to classify the identifier and so provide the role or reason for the identification. | |
| id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the @id_class_name class | |
| org_id | ?org_id? | The identifier of the organization that "owns" the identifier. | |
| org_id_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name of the class being used to classify the identification of the organization. For example CAGE code. | |
| org_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the org_id_class_name class items. | |
| date_class_name | "Work_order_issue_date" (urn:plcs:rdl:std:Work_order_issue_date) | The date the Work_order raised. | |
| date_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the date_name class items. | |
| year | ?year? | the year component of the start date and time of the work order was raised | |
| month | ?month? | the month component of the start date and time of the work order was raised | |
| day | ?day? | the day component of the start date and time of the work order was raised. This can be in local time or UTC | |
| hour | ?hour? | the hour component of the start date and time of the work order was raised. This can be in local time or UTC | |
| minute | ?minute? | the minute component of the start date and time of the work order was raised. This can be in local time or UTC | |
| second | ?second? | the second component of the start date and time of the work order was raised. This can be in local time or UTC | |
| sense | ?sense? | Three possible values 'exact' when the time is in UTC, 'behind' when the time is a local time behind UTC and 'ahead' when the time is a local time ahead of UTC | |
| hour_offset | ?hour_offset? | The hour offset from UTC, use 0 when the time is UTC | |
| minute_offset | ?minute_offset? | The minute offset from UTC, use 0 when the time is UTC | |
| act_id | ?act_id? | The version identifier assigned to the work order | |
| act_id_class_name | "Activity_identification_code" (urn:plcs:rdl:std:Activity_identification_code) | The name of the class used to classify the identifier in parameter @act_idand so provide the role or reason for the identification. | |
| act_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the @act_id_class_name class | |
| act_org_id | ?act_org_id? | The identifier of the organization that "owns" the version identifier. | |
| act_org_id_class_name | For a name identifying an organization, use "Organization_name" (urn:plcs:rdl:std:Organization_name) For a code identifying an organization, use "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code) For a CAGE code identifying an organization, use "CAGE_code" (urn:plcs:rdl:std:CAGE_code) | The name of the class being used to classify the identification of the organization that "owns" the version identifier. For example CAGE code. | |
| act_org_id_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the act_org_id_class_name class items. | |
| appr_status | "Status_of_approval" (urn:plcs:rdl:std:Status_of_approval) | The class name of the External_class corresponding to the approval status of the work order. | |
| appr_ecl_id | "urn:plcs:rdl:std" | The identifier of the External_class_library storing the act_org_id_class_name class items. | |
| input | |||