SCHEMA PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX;
TYPE any_number_value =
NUMBER;
END_TYPE;
TYPE any_string_value =
STRING;
END_TYPE;
TYPE breakdown_item =
SELECT
(Breakdown_element_definition,
Breakdown_element_usage);
END_TYPE;
TYPE classification_item =
SELECT
(Alternate_part_relationship,
Assembly_relationship_substitution,
Assigned_property,
Breakdown,
Breakdown_context,
Breakdown_element,
Breakdown_element_realization,
Breakdown_element_usage,
Breakdown_element_version,
Calendar_date,
Class,
Context_dependent_unit,
Date_or_date_time_assignment,
Date_time,
Digital_document_definition,
Digital_file,
Document,
Document_location_identification,
Document_version,
Effectivity,
Effectivity_assignment,
External_item_identification,
External_source_identification,
File_location_identification,
Hardcopy,
Identification_assignment,
Organization,
Organization_or_person_in_organization_assignment,
Part,
Part_version,
Part_view_definition,
Person,
Person_in_organization,
Physical_document_definition,
Product,
Product_category,
Product_version,
Product_version_relationship,
Product_view_definition,
Property_representation,
Representation,
Representation_context,
Representation_item,
Selected_item,
Selected_item_assignment,
Slot_design_to_planned,
Slot_design_to_realized,
Slot_planned_to_realized,
Supplied_part_relationship,
Uncertainty_with_unit,
Unit,
Value_with_unit,
View_definition_context,
View_definition_relationship);
END_TYPE;
TYPE classified_attribute_select =
SELECT
(Alternate_part_relationship,
Assigned_property,
Breakdown_context,
Breakdown_element_realization,
Breakdown_element_usage,
Context_dependent_unit,
Date_or_date_time_assignment,
Digital_file,
Document_location_identification,
Effectivity,
Effectivity_assignment,
External_item_identification,
External_source_identification,
File_location_identification,
Hardcopy,
Identification_assignment,
Organization_or_person_in_organization_assignment,
Part_view_definition,
Person_in_organization,
Product,
Product_category,
Product_version_relationship,
Product_view_definition,
Property_representation,
Representation,
Representation_context,
Representation_item,
Uncertainty_with_unit,
Unit,
Value_with_unit,
View_definition_context,
View_definition_relationship);
END_TYPE;
TYPE date_or_date_time_item =
SELECT
(Alternate_part_relationship,
Assembly_component_relationship,
Assembly_relationship_substitution,
Assigned_property,
Breakdown,
Breakdown_element,
Breakdown_element_realization,
Breakdown_element_usage,
Breakdown_version,
Classification_assignment,
Date_or_date_time_assignment,
Digital_document_definition,
Digital_file,
Document,
Document_version,
Effectivity_assignment,
Hardcopy,
Identification_assignment,
Organization_or_person_in_organization_assignment,
Part,
Part_version,
Part_view_definition,
Person,
Person_in_organization,
Physical_document_definition,
Product_category_assignment,
Product_in_slot,
Product_version,
Product_view_definition,
Representation,
Selected_item,
Selected_item_assignment,
Slot,
Slot_definition,
Slot_design_to_planned,
Slot_design_to_realized,
Slot_planned_to_realized,
Slot_version,
View_definition_context);
END_TYPE;
TYPE date_or_date_time_select =
SELECT
(Calendar_date,
Date_time);
END_TYPE;
TYPE date_or_event =
SELECT
(Calendar_date,
Date_time);
END_TYPE;
TYPE day_in_month_number =
INTEGER
;
WHERE
WR1: {1 <= SELF <= 31};
END_TYPE;
TYPE effectivity_item =
SELECT
(Alternate_part_relationship,
Assembly_component_relationship,
Assembly_relationship_substitution,
Assigned_property,
Breakdown,
Breakdown_element,
Breakdown_element_definition,
Breakdown_element_realization,
Breakdown_element_usage,
Breakdown_element_version,
Breakdown_of,
Breakdown_version,
Date_or_date_time_assignment,
Document,
Document_definition,
Document_location_identification,
Document_version,
Effectivity_assignment,
File,
Identification_assignment,
Make_from_relationship,
Organization_or_person_in_organization_assignment,
Part,
Part_version,
Part_view_definition,
Person_in_organization,
Product,
Product_in_slot,
Product_version,
Product_version_relationship,
Product_view_definition,
Selected_item_assignment,
Slot,
Slot_as_planned,
Slot_as_realized,
Slot_definition,
Slot_design,
Slot_design_to_planned,
Slot_design_to_realized,
Slot_on_product,
Slot_planned_to_realized,
Slot_version);
END_TYPE;
TYPE external_identification_item =
SELECT
(Document_definition,
File);
END_TYPE;
TYPE hour_in_day =
INTEGER
;
WHERE
WR1: {0 <= SELF < 24};
END_TYPE;
TYPE identification_item =
SELECT
(Assigned_property,
Breakdown,
Breakdown_element,
Breakdown_element_definition,
Breakdown_element_version,
Breakdown_version,
Digital_document_definition,
Digital_file,
Document,
Document_version,
Hardcopy,
Organization,
Organization_or_person_in_organization_assignment,
Part,
Part_version,
Part_view_definition,
Person,
Person_in_organization,
Physical_document_definition,
Slot,
Slot_definition,
Slot_version,
View_definition_relationship);
END_TYPE;
TYPE in_zone_item =
SELECT
(Product_view_definition);
END_TYPE;
TYPE length_measure =
REAL;
END_TYPE;
TYPE measure_value =
SELECT
(any_number_value,
any_string_value,
length_measure,
plane_angle_measure);
END_TYPE;
TYPE minute_in_hour =
INTEGER
;
WHERE
WR1: {0 <= SELF <= 59};
END_TYPE;
TYPE month_in_year_number =
INTEGER
;
WHERE
WR1: {1 <= SELF <= 12};
END_TYPE;
TYPE offset_orientation =
ENUMERATION
OF
(ahead,
exact,
behind);
END_TYPE;
TYPE organization_or_person_in_organization_item =
SELECT
(Alternate_part_relationship,
Assembly_component_relationship,
Assembly_relationship_substitution,
Assigned_property,
Breakdown,
Breakdown_element,
Breakdown_element_realization,
Breakdown_element_usage,
Breakdown_version,
Classification_assignment,
Date_or_date_time_assignment,
Digital_document_definition,
Digital_file,
Document,
Document_definition,
Document_version,
Effectivity_assignment,
Hardcopy,
Identification_assignment,
Organization_or_person_in_organization_assignment,
Part,
Part_version,
Part_view_definition,
Person_in_organization,
Physical_document_definition,
Product_category,
Product_category_assignment,
Product_version,
Product_view_definition,
Representation,
Selected_item,
Selected_item_assignment,
View_definition_context);
END_TYPE;
TYPE organization_or_person_in_organization_select =
SELECT
(Organization,
Person_in_organization);
END_TYPE;
TYPE plane_angle_measure =
REAL;
END_TYPE;
TYPE product_item =
SELECT
(Product_view_definition,
View_definition_usage);
END_TYPE;
TYPE property_assignment_select =
SELECT
(Breakdown_element_realization,
Document_definition,
File,
Organization_or_person_in_organization_assignment,
Part_view_definition,
Product_view_definition,
View_definition_relationship);
END_TYPE;
TYPE second_in_minute =
REAL
;
WHERE
WR1: {0 <= SELF <= 60.000000};
END_TYPE;
TYPE selected_item_context_items =
SELECT
(Breakdown,
Part);
END_TYPE;
TYPE selected_item_select =
SELECT
(Product,
Product_version);
END_TYPE;
TYPE year_number =
INTEGER;
END_TYPE;
ENTITY Alternate_part_relationship
SUBTYPE OF (Alternate_product_relationship);
SELF\Alternate_product_relationship.alternate_product : Part;
SELF\Alternate_product_relationship.base_product : Part;
END_ENTITY;
ENTITY Alternate_product_relationship;
name :
OPTIONAL
STRING;
description :
OPTIONAL
STRING;
alternate_product : Product;
base_product : Product;
criteria : STRING;
UNIQUE
UR1: alternate_product, base_product;
WHERE
WR1: alternate_product :<>: base_product;
END_ENTITY;
ENTITY Amount_of_substance_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Assembly_component_relationship
ABSTRACT SUPERTYPE
OF (ONEOF (Next_assembly_usage,
Promissory_usage,
Component_upper_level_identification))
SUBTYPE OF (View_definition_usage);
quantity :
OPTIONAL
Value_with_unit;
location_indicator :
OPTIONAL
STRING;
WHERE
WR1: NOT EXISTS(quantity) OR NOT ('NUMBER' IN TYPEOF(quantity.value_component)) XOR (quantity.value_component > 0);
END_ENTITY;
ENTITY Assembly_relationship_substitution;
name :
OPTIONAL
STRING;
description :
OPTIONAL
STRING;
base_relationship : Assembly_component_relationship;
substitute_relationship : Assembly_component_relationship;
UNIQUE
UR1: base_relationship, substitute_relationship;
WHERE
WR1: base_relationship.relating_view :=: substitute_relationship.relating_view;
WR2: base_relationship :<>: substitute_relationship;
END_ENTITY;
ENTITY Assigned_property;
id :
OPTIONAL
STRING;
name : STRING;
description :
OPTIONAL
STRING;
described_element : property_assignment_select;
END_ENTITY;
ENTITY Attribute_classification;
allowed_value : Class;
attribute_name : STRING;
classified_entity : classified_attribute_select;
END_ENTITY;
ENTITY Breakdown
SUPERTYPE OF
(ONEOF (Functional_breakdown,
Hybrid_breakdown,
Physical_breakdown,
System_breakdown,
Zone_breakdown))
SUBTYPE OF (Product);
END_ENTITY;
ENTITY Breakdown_context
SUPERTYPE OF
(ONEOF (Functional_breakdown_context,
Hybrid_breakdown_context,
Physical_breakdown_context,
System_breakdown_context,
Zone_breakdown_context));
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
breakdown : Breakdown_version;
breakdown_element : Breakdown_element_definition;
END_ENTITY;
ENTITY Breakdown_element
SUPERTYPE OF
(ONEOF (Functional_element,
Physical_element,
System_element,
Zone_element))
SUBTYPE OF (Product);
END_ENTITY;
ENTITY Breakdown_element_definition
SUPERTYPE OF
(ONEOF (Functional_element_definition,
Physical_element_definition,
System_element_definition,
Zone_element_definition))
SUBTYPE OF (Product_view_definition);
SELF\Product_view_definition.defined_version : Breakdown_element_version;
END_ENTITY;
ENTITY Breakdown_element_realization
SUBTYPE OF (Product_definition_element_relationship);
END_ENTITY;
ENTITY Breakdown_element_usage
SUPERTYPE OF
(ONEOF (Functional_element_usage,
Hybrid_element_usage,
Physical_element_usage,
System_element_usage,
Zone_element_usage))
SUBTYPE OF (View_definition_usage);
name : STRING;
SELF\View_definition_relationship.relating_view : Breakdown_element_definition;
SELF\View_definition_relationship.related_view : Breakdown_element_definition;
DERIVE
parent_element : Breakdown_element_definition := SELF\View_definition_relationship.relating_view;
child_element : Breakdown_element_definition := SELF\View_definition_relationship.related_view;
END_ENTITY;
ENTITY Breakdown_element_version
SUPERTYPE OF
(ONEOF (Functional_element_version,
Physical_element_version,
System_element_version,
Zone_element_version))
SUBTYPE OF (Product_version);
SELF\Product_version.of_product : Breakdown_element;
END_ENTITY;
ENTITY Breakdown_of;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
breakdown : Breakdown_version;
of_view : Product_view_definition;
END_ENTITY;
ENTITY Breakdown_version
SUPERTYPE OF
(ONEOF (Functional_breakdown_version,
Hybrid_breakdown_version,
Physical_breakdown_version,
System_breakdown_version,
Zone_breakdown_version))
SUBTYPE OF (Product_version);
SELF\Product_version.of_product : Breakdown;
INVERSE
breakdown_of : SET[1:1] OF Breakdown_of FOR breakdown;
END_ENTITY;
ENTITY Calendar_date;
year_component : year_number;
month_component : month_in_year_number;
day_component : day_in_month_number;
END_ENTITY;
ENTITY Class;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Classification_assignment;
assigned_class : Class;
items : SET[1:?] OF classification_item;
role :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Component_upper_level_identification
SUBTYPE OF (Assembly_component_relationship);
upper_assembly_relationship : Assembly_component_relationship;
sub_assembly_relationship : Next_assembly_usage;
UNIQUE
UR1: upper_assembly_relationship, sub_assembly_relationship;
WHERE
WR1: SELF :<>: upper_assembly_relationship;
WR2: SELF\View_definition_relationship.relating_view :=: upper_assembly_relationship\View_definition_relationship.relating_view;
WR3: SELF\View_definition_relationship.related_view :=: sub_assembly_relationship\View_definition_relationship.related_view;
WR4: (upper_assembly_relationship\View_definition_relationship.related_view :=: sub_assembly_relationship\View_definition_relationship.relating_view)
OR (SIZEOF(QUERY(pdr <* USEDIN(upper_assembly_relationship\View_definition_relationship.related_view, 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.VIEW_DEFINITION_RELATIONSHIP.RELATED_VIEW')
| pdr.relating_view :=: sub_assembly_relationship\View_definition_relationship.relating_view)) = 1);
WR5: SIZEOF(['PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.NEXT_ASSEMBLY_USAGE', 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.COMPONENT_UPPER_LEVEL_IDENTIFICATION']
* TYPEOF(upper_assembly_relationship)) = 1;
END_ENTITY;
ENTITY Context_dependent_unit
SUBTYPE OF (Unit);
WHERE
WR1: EXISTS(SELF\Unit.name);
END_ENTITY;
ENTITY Conversion_based_unit
SUBTYPE OF (Unit);
conversion_factor : Value_with_unit;
WHERE
WR1: EXISTS(SELF\Unit.name);
END_ENTITY;
ENTITY Date_or_date_time_assignment;
assigned_date : date_or_date_time_select;
role : STRING;
items : SET[1:?] OF date_or_date_time_item;
END_ENTITY;
ENTITY Date_time;
date_component : Calendar_date;
time_component : Local_time;
END_ENTITY;
ENTITY Dated_effectivity
SUBTYPE OF (Effectivity);
start_bound : date_or_event;
end_bound :
OPTIONAL
date_or_event;
END_ENTITY;
ENTITY Derived_unit
SUBTYPE OF (Unit);
elements : SET[1:?] OF Derived_unit_element;
END_ENTITY;
ENTITY Derived_unit_element;
base_unit : Unit;
exponent : REAL;
END_ENTITY;
ENTITY Digital_document_definition
SUBTYPE OF (Document_definition);
files : SET OF Digital_file;
END_ENTITY;
ENTITY Digital_file
SUBTYPE OF (File);
END_ENTITY;
ENTITY Document
SUBTYPE OF (Product);
END_ENTITY;
ENTITY Document_definition
ABSTRACT SUPERTYPE
OF (ONEOF (Digital_document_definition,
Physical_document_definition));
id : STRING;
description :
OPTIONAL
STRING;
associated_document_version : Document_version;
END_ENTITY;
ENTITY Document_location_identification
SUBTYPE OF (External_source_identification);
WHERE
WR1: 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.DOCUMENT_DEFINITION' IN TYPEOF(SELF\External_source_identification.item);
END_ENTITY;
ENTITY Document_version
SUBTYPE OF (Product_version);
SELF\Product_version.of_product : Document;
END_ENTITY;
ENTITY Duration
SUBTYPE OF (Value_with_unit);
WHERE
WR1: 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.' + 'TIME_UNIT' IN TYPEOF(SELF\Value_with_unit.unit);
END_ENTITY;
ENTITY Effectivity
SUPERTYPE OF
(ONEOF (Serial_effectivity,
Dated_effectivity,
Lot_effectivity,
Time_interval_effectivity));
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Effectivity_assignment;
assigned_effectivity : Effectivity;
role : STRING;
items : SET[1:?] OF effectivity_item;
END_ENTITY;
ENTITY Effectivity_relationship;
relation_type : STRING;
description :
OPTIONAL
STRING;
relating_effectivity : Effectivity;
related_effectivity : Effectivity;
END_ENTITY;
ENTITY Electric_current_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY External_class
SUBTYPE OF (Class);
external_source : External_class_library;
END_ENTITY;
ENTITY External_class_library;
id : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY External_item_identification
SUBTYPE OF (External_source_identification);
external_id : STRING;
END_ENTITY;
ENTITY External_source_identification;
source_id : STRING;
source_type : STRING;
item : external_identification_item;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY File
ABSTRACT SUPERTYPE
OF (ONEOF (Digital_file,
Hardcopy));
id : STRING;
version :
OPTIONAL
STRING;
contained_data_type :
OPTIONAL
STRING;
END_ENTITY;
ENTITY File_location_identification
SUBTYPE OF (External_item_identification);
WHERE
WR1: 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.FILE' IN TYPEOF(SELF\External_source_identification.item);
END_ENTITY;
ENTITY Functional_breakdown
SUBTYPE OF (Breakdown);
END_ENTITY;
ENTITY Functional_breakdown_context
SUBTYPE OF (Breakdown_context);
SELF\Breakdown_context.breakdown : Functional_breakdown_version;
SELF\Breakdown_context.breakdown_element : Functional_element_definition;
END_ENTITY;
ENTITY Functional_breakdown_version
SUBTYPE OF (Breakdown_version);
SELF\Breakdown_version.of_product : Functional_breakdown;
END_ENTITY;
ENTITY Functional_element
SUBTYPE OF (Breakdown_element);
END_ENTITY;
ENTITY Functional_element_definition
SUBTYPE OF (Breakdown_element_definition);
SELF\Breakdown_element_definition.defined_version : Functional_element_version;
END_ENTITY;
ENTITY Functional_element_usage
SUBTYPE OF (Breakdown_element_usage);
SELF\View_definition_relationship.relating_view : Functional_element_definition;
SELF\View_definition_relationship.related_view : Functional_element_definition;
END_ENTITY;
ENTITY Functional_element_version
SUBTYPE OF (Breakdown_element_version);
SELF\Breakdown_element_version.of_product : Functional_element;
END_ENTITY;
ENTITY Hardcopy
SUBTYPE OF (File);
END_ENTITY;
ENTITY Hybrid_breakdown
SUBTYPE OF (Breakdown);
END_ENTITY;
ENTITY Hybrid_breakdown_context
SUBTYPE OF (Breakdown_context);
SELF\Breakdown_context.breakdown : Hybrid_breakdown_version;
END_ENTITY;
ENTITY Hybrid_breakdown_version
SUBTYPE OF (Breakdown_version);
SELF\Breakdown_version.of_product : Hybrid_breakdown;
END_ENTITY;
ENTITY Hybrid_element_usage
SUBTYPE OF (Breakdown_element_usage);
END_ENTITY;
ENTITY Identification_assignment;
identifier : STRING;
role : STRING;
description :
OPTIONAL
STRING;
items : SET[1:?] OF identification_item;
END_ENTITY;
ENTITY In_zone;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
located_item : in_zone_item;
zone : Zone_element_definition;
END_ENTITY;
ENTITY Length_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Local_time;
hour_component : hour_in_day;
minute_component :
OPTIONAL
minute_in_hour;
second_component :
OPTIONAL
second_in_minute;
zone : Time_offset;
END_ENTITY;
ENTITY Lot_effectivity
SUBTYPE OF (Effectivity);
lot_id : STRING;
lot_size : Value_with_unit;
END_ENTITY;
ENTITY Luminous_intensity_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Make_from_relationship
SUBTYPE OF (View_definition_usage);
SELF\View_definition_relationship.relating_view : Part_view_definition;
SELF\View_definition_relationship.related_view : Part_view_definition;
quantity :
OPTIONAL
Value_with_unit;
priority :
OPTIONAL
INTEGER;
WHERE
WR1: SELF\View_definition_relationship.relating_view :<>: SELF\View_definition_relationship.related_view;
WR2: NOT EXISTS(quantity) XOR NOT ('NUMBER' IN TYPEOF(quantity.value_component)) XOR (quantity.value_component > 0);
END_ENTITY;
ENTITY Mass_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Measure_item
ABSTRACT SUPERTYPE
OF (ONEOF (Numerical_item_with_unit))
SUBTYPE OF (Representation_item);
WHERE
WR1: SIZEOF(USEDIN(SELF, 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.REPRESENTATION.ITEMS')) > 0;
END_ENTITY;
ENTITY Next_assembly_usage
SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;
ENTITY Numerical_item_with_unit
SUBTYPE OF (Measure_item, Value_with_unit);
END_ENTITY;
ENTITY Numerical_representation_context
SUBTYPE OF (Representation_context);
units :
OPTIONAL
SET[1:?] OF Unit;
accuracies :
OPTIONAL
SET[1:?] OF Uncertainty_with_unit;
END_ENTITY;
ENTITY Organization;
id : STRING;
name : STRING;
END_ENTITY;
ENTITY Organization_or_person_in_organization_assignment;
assigned_entity : organization_or_person_in_organization_select;
role : STRING;
items : SET[1:?] OF organization_or_person_in_organization_item;
END_ENTITY;
ENTITY Part
SUBTYPE OF (Product);
WHERE
WR1: SIZEOF(['part', 'raw material'] * types_of_product(SELF)) = 1;
END_ENTITY;
ENTITY Part_version
SUBTYPE OF (Product_version);
SELF\Product_version.of_product : Part;
END_ENTITY;
ENTITY Part_view_definition
SUBTYPE OF (Product_view_definition);
SELF\Product_view_definition.defined_version : Part_version;
END_ENTITY;
ENTITY Person;
last_name : STRING;
first_name :
OPTIONAL
STRING;
middle_names :
OPTIONAL
LIST[1:?] OF STRING;
prefix_titles :
OPTIONAL
LIST[1:?] OF STRING;
suffix_titles :
OPTIONAL
LIST[1:?] OF STRING;
END_ENTITY;
ENTITY Person_in_organization;
concerned_person : Person;
containing_organization : Organization;
role : STRING;
UNIQUE
person_is_unique_in_organization: concerned_person, containing_organization;
END_ENTITY;
ENTITY Physical_breakdown
SUBTYPE OF (Breakdown);
END_ENTITY;
ENTITY Physical_breakdown_context
SUBTYPE OF (Breakdown_context);
SELF\Breakdown_context.breakdown : Physical_breakdown_version;
SELF\Breakdown_context.breakdown_element : Physical_element_definition;
END_ENTITY;
ENTITY Physical_breakdown_version
SUBTYPE OF (Breakdown_version);
SELF\Breakdown_version.of_product : Physical_breakdown;
END_ENTITY;
ENTITY Physical_document_definition
SUBTYPE OF (Document_definition);
components : SET OF Hardcopy;
END_ENTITY;
ENTITY Physical_element
SUBTYPE OF (Breakdown_element);
END_ENTITY;
ENTITY Physical_element_definition
SUBTYPE OF (Breakdown_element_definition);
SELF\Breakdown_element_definition.defined_version : Physical_element_version;
END_ENTITY;
ENTITY Physical_element_usage
SUBTYPE OF (Breakdown_element_usage);
SELF\View_definition_relationship.relating_view : Physical_element_definition;
SELF\View_definition_relationship.related_view : Physical_element_definition;
END_ENTITY;
ENTITY Physical_element_version
SUBTYPE OF (Breakdown_element_version);
SELF\Breakdown_element_version.of_product : Physical_element;
END_ENTITY;
ENTITY Plane_angle_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Product
ABSTRACT SUPERTYPE
OF (ONEOF (Breakdown,
Breakdown_element,
Document,
Part,
Slot));
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Product_category;
id :
OPTIONAL
STRING;
name : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Product_category_assignment;
category : Product_category;
products : SET[1:?] OF Product;
END_ENTITY;
ENTITY Product_category_hierarchy;
super_category : Product_category;
sub_category : Product_category;
END_ENTITY;
ENTITY Product_definition_element_relationship;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
breakdown : breakdown_item;
product : product_item;
END_ENTITY;
ENTITY Product_in_slot
SUBTYPE OF (View_definition_usage);
name : STRING;
SELF\View_definition_relationship.related_view : Slot_definition;
DERIVE
product : Product_view_definition := SELF\View_definition_relationship.relating_view;
slot : Slot_definition := SELF\View_definition_relationship.related_view;
END_ENTITY;
ENTITY Product_version
ABSTRACT SUPERTYPE
OF (ONEOF (Breakdown_element_version,
Breakdown_version,
Document_version,
Part_version,
Slot_version));
id : STRING;
description :
OPTIONAL
STRING;
of_product : Product;
END_ENTITY;
ENTITY Product_version_relationship;
relation_type : STRING;
description :
OPTIONAL
STRING;
relating_version : Product_version;
related_version : Product_version;
WHERE
WR1: relating_version :<>: related_version;
END_ENTITY;
ENTITY Product_view_definition
SUPERTYPE OF
(ONEOF (Breakdown_element_definition,
Part_view_definition,
Slot_definition));
id : STRING;
name :
OPTIONAL
STRING;
additional_characterization :
OPTIONAL
STRING;
initial_context : View_definition_context;
additional_contexts : SET OF View_definition_context;
defined_version : Product_version;
WHERE
WR1: NOT (initial_context IN additional_contexts);
END_ENTITY;
ENTITY Promissory_usage
SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;
ENTITY Property_representation;
description :
OPTIONAL
STRING;
property : Assigned_property;
rep : Representation;
role :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Property_value_representation
SUBTYPE OF (Representation);
SELF\Representation.context_of_items : Numerical_representation_context;
END_ENTITY;
ENTITY Ratio_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Representation;
id :
OPTIONAL
STRING;
name : STRING;
description :
OPTIONAL
STRING;
context_of_items : Representation_context;
items : SET[1:?] OF Representation_item;
END_ENTITY;
ENTITY Representation_context;
id : STRING;
kind : STRING;
INVERSE
representations_in_context : SET[1:?] OF Representation FOR context_of_items;
END_ENTITY;
ENTITY Representation_item;
name : STRING;
END_ENTITY;
ENTITY Representation_relationship;
relation_type : STRING;
description : STRING;
rep_1 : Representation;
rep_2 : Representation;
END_ENTITY;
ENTITY Selected_item
SUBTYPE OF (Class);
END_ENTITY;
ENTITY Selected_item_assignment;
assigned_class : Selected_item;
item : selected_item_select;
item_context : SET[1:?] OF selected_item_context_items;
END_ENTITY;
ENTITY Serial_effectivity
SUBTYPE OF (Effectivity);
start_id : STRING;
end_id :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Slot
SUBTYPE OF (Product);
END_ENTITY;
ENTITY Slot_as_planned
SUBTYPE OF (Slot_version);
END_ENTITY;
ENTITY Slot_as_realized
SUBTYPE OF (Slot_version);
END_ENTITY;
ENTITY Slot_definition
SUBTYPE OF (Product_view_definition);
SELF\Product_view_definition.defined_version : Slot_version;
END_ENTITY;
ENTITY Slot_design
SUBTYPE OF (Slot_version);
END_ENTITY;
ENTITY Slot_design_to_planned;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
design : Slot_design;
planned : Slot_as_planned;
WHERE
WR1: SELF.design.of_product :=: SELF.planned.of_product;
END_ENTITY;
ENTITY Slot_design_to_realized;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
design : Slot_design;
realized : Slot_as_realized;
WHERE
WR1: SELF.design.of_product :=: SELF.realized.of_product;
END_ENTITY;
ENTITY Slot_on_product;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
product : Product_view_definition;
slot : Slot_definition;
END_ENTITY;
ENTITY Slot_planned_to_realized;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
planned : Slot_as_planned;
realized : Slot_as_realized;
WHERE
WR1: SELF.planned.of_product :=: SELF.realized.of_product;
END_ENTITY;
ENTITY Slot_version
SUPERTYPE OF
(ONEOF (Slot_as_planned,
Slot_as_realized,
Slot_design))
SUBTYPE OF (Product_version);
SELF\Product_version.of_product : Slot;
END_ENTITY;
ENTITY Solid_angle_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY String_representation_item
SUBTYPE OF (Representation_item);
string_value : STRING;
END_ENTITY;
ENTITY Supplied_part_relationship
SUBTYPE OF (Product_version_relationship);
WHERE
WR1: SELF\Product_version_relationship.relation_type IN ['supplied item', 'supplied document'];
END_ENTITY;
ENTITY System_breakdown
SUBTYPE OF (Breakdown);
END_ENTITY;
ENTITY System_breakdown_context
SUBTYPE OF (Breakdown_context);
SELF\Breakdown_context.breakdown : System_breakdown_version;
SELF\Breakdown_context.breakdown_element : System_element_definition;
END_ENTITY;
ENTITY System_breakdown_version
SUBTYPE OF (Breakdown_version);
SELF\Breakdown_version.of_product : System_breakdown;
END_ENTITY;
ENTITY System_element
SUBTYPE OF (Breakdown_element);
END_ENTITY;
ENTITY System_element_definition
SUBTYPE OF (Breakdown_element_definition);
SELF\Breakdown_element_definition.defined_version : System_element_version;
END_ENTITY;
ENTITY System_element_usage
SUBTYPE OF (Breakdown_element_usage);
SELF\View_definition_relationship.relating_view : System_element_definition;
SELF\View_definition_relationship.related_view : System_element_definition;
END_ENTITY;
ENTITY System_element_version
SUBTYPE OF (Breakdown_element_version);
SELF\Breakdown_element_version.of_product : System_element;
END_ENTITY;
ENTITY Thermodynamic_temperature_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Time_interval;
id : STRING;
name : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Time_interval_effectivity
SUBTYPE OF (Effectivity);
effectivity_period : Time_interval;
END_ENTITY;
ENTITY Time_interval_relationship;
relation_type : STRING;
description : STRING;
relating_time_interval : Time_interval;
related_time_interval : Time_interval;
END_ENTITY;
ENTITY Time_interval_with_bounds
SUBTYPE OF (Time_interval);
primary_bound :
OPTIONAL
date_or_event;
secondary_bound :
OPTIONAL
date_or_event;
duration_from_primary_bound :
OPTIONAL
Duration;
WHERE
WR1: NOT (EXISTS(secondary_bound) AND EXISTS(duration_from_primary_bound));
WR2: EXISTS(primary_bound) OR EXISTS(secondary_bound);
END_ENTITY;
ENTITY Time_offset;
hour_offset : INTEGER;
minute_offset :
OPTIONAL
INTEGER;
sense : offset_orientation;
DERIVE
actual_minute_offset : INTEGER := NVL(minute_offset, 0);
WHERE
WR1: {0 <= hour_offset < 24};
WR2: {0 <= minute_offset <= 59};
WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact));
END_ENTITY;
ENTITY Time_unit
SUBTYPE OF (Unit);
END_ENTITY;
ENTITY Uncertainty_with_unit
SUBTYPE OF (Value_with_unit);
name : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY Unit
SUPERTYPE OF
(ONEOF (Amount_of_substance_unit,
Electric_current_unit,
Length_unit,
Luminous_intensity_unit,
Mass_unit,
Plane_angle_unit,
Ratio_unit,
Solid_angle_unit,
Thermodynamic_temperature_unit,
Time_unit));
name :
OPTIONAL
STRING;
si_unit : BOOLEAN;
END_ENTITY;
ENTITY Value_with_unit;
unit : Unit;
value_component : measure_value;
END_ENTITY;
ENTITY View_definition_context;
application_domain : STRING;
life_cycle_stage : STRING;
description :
OPTIONAL
STRING;
END_ENTITY;
ENTITY View_definition_relationship
ABSTRACT SUPERTYPE
OF (ONEOF (View_definition_usage));
id : STRING;
relation_type :
OPTIONAL
STRING;
description :
OPTIONAL
STRING;
relating_view : Product_view_definition;
related_view : Product_view_definition;
END_ENTITY;
ENTITY View_definition_usage
SUBTYPE OF (View_definition_relationship);
END_ENTITY;
ENTITY Zone_breakdown
SUBTYPE OF (Breakdown);
END_ENTITY;
ENTITY Zone_breakdown_context
SUBTYPE OF (Breakdown_context);
SELF\Breakdown_context.breakdown : Zone_breakdown_version;
SELF\Breakdown_context.breakdown_element : Zone_element_definition;
END_ENTITY;
ENTITY Zone_breakdown_version
SUBTYPE OF (Breakdown_version);
SELF\Breakdown_version.of_product : Zone_breakdown;
END_ENTITY;
ENTITY Zone_element
SUBTYPE OF (Breakdown_element);
END_ENTITY;
ENTITY Zone_element_definition
SUBTYPE OF (Breakdown_element_definition);
SELF\Breakdown_element_definition.defined_version : Zone_element_version;
END_ENTITY;
ENTITY Zone_element_usage
SUBTYPE OF (Breakdown_element_usage);
SELF\View_definition_relationship.relating_view : Zone_element_definition;
SELF\View_definition_relationship.related_view : Zone_element_definition;
END_ENTITY;
ENTITY Zone_element_version
SUBTYPE OF (Breakdown_element_version);
SELF\Breakdown_element_version.of_product : Zone_element;
END_ENTITY;
FUNCTION types_of_product
(obj : Product) : SET OF STRING;
LOCAL category_assignments : BAG OF Product_category_assignment; categories : SET OF STRING := []; i : INTEGER; END_LOCAL; category_assignments := USEDIN(obj, 'PRODUCT_BREAKDOWN_FOR_SUPPORT_DEX.PRODUCT_CATEGORY_ASSIGNMENT.PRODUCTS'); REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments); categories := categories + category_assignments[i].category.name; END_REPEAT; RETURN (categories);
END_FUNCTION;