ГОСТ Р ИСО 10303-41—2022
organization_type; specific_relation :STRING) :BOOLEAN;
LOCAL
x : SET OF organization_type_relationship;
END_LOCAL;
IF relation.relating_organization_type IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(orgtyp <*
bag_to_set(USEDIN(relation.relating_organization_type,
’ORGANIZATION_TYPE_RELATIONSHIP.’
|specific_relation IN
’PERSON_ORGANIZATION_SCHEMA.’+
+ ’RELATED_ORGANIZATION_TYPE’))
TYPEOF(orgtyp));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_organization_type_relationship(x[i],
relatives + relation.relating_organization_type,
specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
(*
"
Определения параметров:
relation — (входной) проверяемый экземпляр представляющего отношение между типами органи
заций объекта organization_type_relationship;
relatives — (входной) набор представляющих типы организаций объектов organization_type.
Функция проверяет, есть ли среди данного набора экземпляры, играющие роль атрибута relating_orga-
nization_type объекта organization_type_relationship, играющего роль параметра relation;
specific_relation — (входной) полное квалифицированное наименование подтипа представляю
щего отношение между типами организаций объекта organization_type_relationship.
20.5.3 Функция acyclic_organizational_project_relationship
Функция acyclic_organizational_project_relationship определяет, содержит ли образованный
экземплярами представляющих организационные проекты объектов organizational_project граф, со
держащий в качестве одного из ребер объект organizational_project_relationship, играющий роль па
раметра relation, цепочку ссылок, образующую цикл. Настоящая функция может использоваться для
обработки графа, ребра которого образованы объектами organizational_project_ relationship или лю
быми подтипами этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что вдру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение между организационными проектами объект organizational_project_relationship, ис
пользуется правило, обращающееся к настоящей функции.
EXPRESS-спеииФикаиия:
*)
FUNCTION acyclic_organizational__project_relationship (relation :
organizational_project_relationship; relatives :SET[1:?] OF
organizational_project; specific_relation :STRING) :BOOLEAN;
LOCAL
x : SET OF organizational_project_relationship;
END_LOCAL;
IF relation.relating_organizational_project IN relatives THEN
RETURN (FALSE);
202