Integrated generic resource: Fundamentals of product description and support | ISO 10303-41:2021(E) © ISO |
EXAMPLE One version of a product may be approved for manufacture whilst another may still be undergoing design.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the approval_schema and identifies the necessary external references.Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.
EXPRESS specification:
*)
SCHEMA approval_schema;
REFERENCE FROM
basic_attribute_schema
--
ISO 10303-41
(description_attribute,
description_attribute_select,
get_description_value,
get_role,
object_role,
role_association,
role_select);
REFERENCE FROM
date_time_schema
--
ISO 10303-41
(date_time_select);
REFERENCE FROM
person_organization_schema
--
ISO 10303-41
(person_organization_select);
REFERENCE FROM
support_resource_schema
--
ISO 10303-41
(bag_to_set,
label,
text);
(*
NOTE 1 The schemas referenced above are specified in the following parts:
basic_attribute_schema ISO 10303-41 date_time_schema ISO 10303-41 person_organization_schema ISO 10303-41 support_resource_schema ISO 10303-41
NOTE 2 See Annex D for a graphical representation of this schema.
EXPRESS specification:
*)
TYPE
apps_description_attribute_select
=
SELECT
BASED_ON
description_attribute_select
WITH
(approval_role);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
apps_role_select
=
SELECT
BASED_ON
role_select
WITH
(approval_date_time);
END_TYPE;
(*
NOTE 1 The role of approval can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.
EXPRESS specification:
*)
ENTITY approval;
status : approval_status;
level : label;
END_ENTITY;
(*
Attribute definitions:
status: the type or level of approval in terms of its usage.
EXAMPLE One possible status is 'released for production'; this explicitly identifies the approved usage. Another possible status is 'preliminary design completed'; this only implies the approved usage that will depend upon company-specific procedures.
level: the label that provides a user interpretable designation for the level of completion of the approval.
EXPRESS specification:
*)
ENTITY approval_date_time;
date_time : date_time_select;
dated_approval : approval;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
(*
Attribute definitions:
date_time: the moment when the dated_approval is given.
dated_approval: the approval with which the date or time is associated.
role: the object_role that specifies the purpose of the association of the approval_date_time with product data.
NOTE 1 This attribute is an upwardly compatible addition to approval_date_time as specified in ISO 10303-41:1994.
Formal propositions:
WR1: Each approval_date_time shall be the item_with_role in at most one role_association.
NOTE 2 A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.
EXPRESS specification:
*)
ENTITY approval_person_organization;
person_organization : person_organization_select;
authorized_approval : approval;
role : approval_role;
END_ENTITY;
(*
Attribute definitions:
person_organization: the person or organization playing the given role.
authorized_approval: the approval that is effected by the person or organization.
role: the approval_role that specifies the purpose of the association of the approval with a person or organization.
NOTE 1 The role of approval_relationship can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.
NOTE 2 This entity, together with the approval entity, is based on the relationship template that is described in annex E.3.
EXPRESS specification:
*)
ENTITY approval_relationship;
name : label;
description :
OPTIONAL
text;
relating_approval : approval;
related_approval : approval;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the approval_relationship is known.
description: the text that characterizes the approval_relationship. The value of the attribute need not be specified.
relating_approval: one of the instances of approval that is a part of the relationship.
NOTE 3 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
related_approval: the other instance of approval that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.
NOTE 4 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
EXPRESS specification:
*)
ENTITY approval_role;
role : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
(*
Attribute definitions:
role: the label by which the approval_role is known.
NOTE 1 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
description: the text that characterizes the approval_role.
NOTE 2 This attribute is an upwardly compatible addition to approval_role as specified in ISO 10303-41:1994.
Formal propositions:
WR1: Each approval_role shall be the described_item in at most one description_attribute.
NOTE 3 The description_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.
NOTE 4 A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.
EXAMPLE 'Approved' and 'disapproved' are examples of approval_status.
EXPRESS specification:
*)
ENTITY approval_status;
name : label;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the approval_status is known.
NOTE The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.
NOTE 1 The algorithm of the function is explained in annex E.2.
NOTE 2 This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the approval_relationship entity include rules that use this function.
EXPRESS specification:
*)
FUNCTION acyclic_approval_relationship (relation : approval_relationship; relatives : SET[1:?] OF approval; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF approval_relationship; END_LOCAL; IF relation.relating_approval IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(app <* bag_to_set(USEDIN(relation.relating_approval, 'APPROVAL_SCHEMA.' + 'APPROVAL_RELATIONSHIP.' + 'RELATED_APPROVAL')) | specific_relation IN TYPEOF(app)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_approval_relationship(x[i], relatives + relation.relating_approval, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate approval_relationship to be checked.
relatives: (input) the set of instances of the entity data type approval for which the function is searching in the relating_approval parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the approval_relationship entity.
*)
END_SCHEMA; -- approval_schema
(*
© ISO 2021 — All rights reserved