POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
This change creates a supertype of material and facility classes. Since a Facility is the "use" of a material in some role, a facility must be able to be classified based on the material nature of the usage.
CHANGE ERP_facility_classification ADD ENTITY facility_material_class ABSTRACT SUPERTYPE OF (ONEOF( facility_class, material_class )) SUBTYPE OF (classification_class); (*<DESC>The abstract supertype of material and facility classes.*) INVERSE facility_members : SET[0:?] OF facility_classification FOR facility_material_class (*<DESC>Gives the facility classifications that have been made using this class.*) (*<VERB>be the class for*); typical_facility_members : SET[0:?] OF typical_facility_classification FOR facility_material_class (*<DESC>Gives all the typical facility classifications that have been made using this class.*) (*<VERB>be the class for*); END_ENTITY; ALTER ENTITY facility_classification (*<DESC>An association indicating a facility is classified as a member of a class. A facility may have many classifications, simultaneously and sequentially.*); ALTER facility_class AS facility_material_class ALTER TYPE AS facility_material_class (*<DESC>Indicates the class being used for the classification.*); ADD object_abundance_class : OPTIONAL object_abundance_class (*<DESC>Specifies the object abundance class that applies to this classification.*) (*<VERB>reference*); END_ENTITY; ALTER ENTITY object_abundance_class; INVERSE ADD facility_classification : SET [0:?] OF facility_classification FOR object_abundance_class (*<DESC>Indicates an application of a object abundance class to a facility classification.*) (*<VERB>classify*); END_ENTITY; ALTER ENTITY typical_facility_classification (*<DESC>An association indicating a typical facility is classified as a member of a class. The specification must fall within the ranges defining the class.*); ALTER facility_class AS facility_material_class ALTER TYPE AS facility_material_class (*<DESC>Indicates the class being used for the classification.*); END_ENTITY; ALTER ENTITY facility_class_classification; ALTER be_classified_as ALTER TYPE AS facility_material_class (*<DESC>Indicates the class that the member is being classified as. For example, class "cylindrical storage tank" is a member of the class "storage tank". In this case this attribute points to "storage tank", the parent or larger class.*); END_ENTITY; ALTER ENTITY material_class DROP SUBTYPE OF (classification_class); END_ENTITY; ALTER ENTITY facility_class DROP SUBTYPE OF (classification_class); DROP facility_members (*<CHANGE>Moved up to Facility_material_class.*); DROP typical_facility_members (*<CHANGE>Moved up to Facility_material_class.*); END_ENTITY; END_CHANGE;