ГОСТ Р ИСО 10303-41—2022
related_versioned_action_request :versioned_action_request;
END_ENTITY;
(*
"
Определения атрибутов:
id — представленное строковым типом данных identifier обозначение, позволяющее отличить
представленное объектом versioned_action_request_ relationship отношение между версиями запро
сов на выполнение действия;
name — представленное строковым типом данных label, наименование представленного объ
ектом versioned_action_request_relationship отношения между версиями запросов на выполнение
действия;
description — представленный строковым типом данных text текст, характеризующий представ
ленное объектом versioned_action_request_ relationship отношение между версиями запросов на вы
полнение действия. Присваивать этому атрибуту значение не обязательно;
relating_versioned_action_request — один из участвующих в отношении объектов versioned_
action_request, представляющих запросы на выполнение действия.
Примечание — Определение смысла настоящего атрибута может содержаться или в EXPRESS-схемах
с примечаниями, в которых используется настоящий объект или его подтипы, или на основе соглашения об общем
понимании между партнерами, совместно использующими эту информацию;
related_versioned_action_request — другой участвующий в отношении экземпляр представля
ющего запрос на выполнение действия объекта versioned_action_request. Если один из запросов на
выполнение действия зависит от другого, роль настоящего атрибута должен играть объект, представля
ющий зависимый запрос на выполнение действия.
Примечание — Определение смысла настоящего атрибута может содержаться или в EXPRESS-схемах
с примечаниями, в которых используется настоящий объект или его подтипы, или на основе соглашения об общем
понимании между партнерами, совместно использующими эту информацию.
4.5 Определения функций схемы action_schema
4.5.1 Функция acyclic_action_directive_relationship
Функция acyclic_action_directive_relationship определяет, содержит ли образованный экзем
плярами представляющих распоряжение о выполнении действия объектов action_directive граф, со
держащий в качестве одного из ребер объект action_directive_relationship, играющий роль аргумента
relation, цепочку ссылок, образующую цикл. Настоящая функция может использоваться для обработки
графа, ребра которого образованы объектами action_directive_ relationship или любыми подтипами
этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
Примечание — Алгоритм функции приведен в Е.2 (приложение Е).
EXPRESS-специФикаиия:
*)
FUNCTION acyclic_action_directive_relationship (relation :
action_directive_relationship; relatives : SET[1:?] OF
action_directive; specific_relation :STRING) :BOOLEAN;
LOCAL
x :SET of action_directive_relationship;
END_LOCAL;
IF relation.relating IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(adr <* bag_to_set(USEDIN(relation.relating,
’ACTION_SCHEMA.’ + ’ACTION_DIRECTIVE_RELATIONSHIP.’ + ’RELATED’))
Ispecific_relation IN TYPEOF(adr));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_action_directive_relationship(x[i],
relatives + relation.relating, specific_relation) THEN
16