ГОСТ Р ИСО 10303-41—2022
Формальные положения:
WR1. Должен рассматриваться адрес только одной организации.
WR2. Множество действующих лиц, которым задан представленный объектом address адрес и которые не
связаны с организацией посредством объекта person_and_organization, должно быть пустым.
F.4.2 Использование представляющего назначение действующего лица объекта person_assignment
В некоторых случаях рекомендуется иметь более одного действующего лица, связанного сданными об изде
лии. Например, одно действующее лицо может быть источником данных об изделии, а впоследствии эти данные об
изделии связываются с другим действующим лицом. В таких случаях могут быть созданы несколько экземпляров
объекта person_assignment, а для того, чтобы отличить действующее лицо, являющиеся источником данных, от
действующего лица, продолжающего работу, используются представляющие роль действующего лица экземпляры
объекта person_role.
Вследующем примере предполагается, что в EXPRESS-схеме с пояснениями, в которой используются опре
деления из настоящего стандарта, создан объект applied_person_assignment, являющийся подтипом объекта
personassignment.
EXPRESS-специФикация:
TYPE product_data_select = SELECT (applied_person_assignment,product,
...) ;
END_TYPE;
ENTITY applied_person_assignment
SUBTYPE OF person_assignment;
assigned_items:SET[1:?] of product_data_select;
END_ENTITY;
Посредством следующего набора экземпляров представляется запись о том, что изначально ответственным
за некоторые данные об изделии был Джим Смит. Позже его сменил Том Джонс.
Примечание — Для показа экземпляров используется нотация обменного файла, определение которой
приведено в ИСО 10303-21 [3].
Фрагмент обменного Файла:
#1 = PERSON(’276 32 0402’, ’Smith’,’Jim’, ’$’ ,’$’, ’$’);
#2 = PERSON(’347 30 2476’, ’Jones’,’Tom’, ’$’ ,’$’, ’$’);
#10 = PERSON_ROLE(’owner/originator’, ’$’);
#11 = PERSON_ROLE(’successor’, ’takes over from Jim Smith’);
#41 = (...некоторый экземпляр данных об изделии);
#42 = (...другой экземпляр данных об изделии);
#61 =APPLIED_PERSON_ASSIGNMENT(#1, #10, (#41, # 42,...));
#62 =APPLIED_PERSON_ASSIGNMENT(#2, #11, (#1));
335