ГОСТ Р ИСО 10303-41—2022
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что в дру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение между организациями объект organization_relationship, используется правило, об
ращающееся к настоящей функции.
EXPRESS-специФикация:
*)
FUNCTION acyclic_organization_relationship (relation :
organization_relationship; relatives :SET[1:?] OF organization;
specific_relation :STRING) :BOOLEAN;
LOCAL
x :SET OF organization_relationship;
ENDJLOCAL;
IF relation.relating_organization IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(org <*
bag_to_set(USEDIN(relation.relating_organization,
’PERSON_ORGANIZATION_SCHEMA.’ + ’ORGANIZATION_RELATIONSHIP.’ +
’RELATED_ORGANIZATION’)) |specific_relation IN TYPEOF(org));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_organization_relationship(x[i], relatives +
relation.relating_organization, specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
(*
Определения параметров:
relation — (входной) проверяемый экземпляр представляющего отношение между организациями
объекта organization_relationship;
relatives — (входной) набор представляющих организации объектов organization. Функция про
веряет, есть ли среди данного набора экземпляры, играющие роль атрибута relating_organization объ
екта organization_relationship, играющего роль параметра relation;
specific_relation — (входной) полное квалифицированное наименование подтипа представляю
щего отношение между организациями объекта organization_relationship.
20.5.2 Функция acyclic_organization_type_relationship
Функция acyclic_organization_type_relationship определяет, содержит ли образованный экзем
плярами представляющих тип организации объектов organization_type граф, содержащий в качестве
одного из ребер объект organization_type_relationship, играющий роль параметра relation, цепочку
ссылок, образующую цикл. Настоящая функция может использоваться для обработки графа, ребра ко
торого образованы объектами organization_type_ relationship или любыми подтипами этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что в дру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение междутипами организаций объект organization_type_relationship, используется пра
вило, обращающееся к настоящей функции.
EXPRESS-специФикация:
*)
FUNCTION acyclic_organization_type_relationship (relation :
organization_type_relationship; relatives : SET[0:?] OF
201