Пример рабочего статуса
Для приведенных ниже примеров используется следующая информация.
Коды рабочего статуса
Код по умолчанию имеет значение Оба
Все методы открыты, то есть задано значение Все
Рабочий статус |
DM |
JRN |
MAN |
COMM |
DOCS |
ControlledBy |
Блокировки не установлены |
Все |
Все |
Все |
Все |
Все |
Оба |
Запущено |
Все |
Все |
Все |
Все |
Все |
Владелец |
Загрузка |
Все |
Заблокировано |
Заблокировано |
Заблокировано |
Заблокировано |
Руководитель |
Отправить |
Заблокировано |
Владелец |
Все |
Все |
Все |
Владелец |
Журнал |
Заблокировано |
Заблокировано |
Заблокировано |
Все |
Все |
Владелец |
Утверждение |
Заблокировано |
Заблокировано |
Заблокировано |
Заблокировано |
Заблокировано |
Руководитель |
Измерения рабочего статуса модели
В качестве измерения владельца используется Сущность.
Измерения со значением Да не являются измерениями владельца.
Остальные измерения не учитываются при определении области или региона блокировки.
Имя измерения модели кода |
Рабочий статус |
КАТЕГОРИЯ |
Да |
СУЩНОСТЬ |
Владелец |
P_ACCT |
Нет |
P_ACTIVITY |
Нет |
P_DATASRC |
Да |
RPTCURRENCY |
Нет |
TIME |
Да |
Структура сущностей
Идентификатор L1 владельца сущности верхнего уровня присвоен внутреннему пользователю TESTUSER_ALL.
Остальным родительским и дочерним элементам присвоены тестовые владельцы для демонстрации примера.
Идентификатор |
CURRENCY |
DESCRIPTION |
OWNER |
PARENTH1 |
L1 |
ЕС |
Верхний уровень |
TESTUSER_ALL |
|
LD1 |
США |
Родительский элемент 10 |
TESTUSERC |
L1 |
L9000 |
США |
Родительский элемент 19 |
TESTUSERD |
LD1 |
L9100 |
США |
Дочерний элемент 191 |
TESTUSERE |
L9000 |
L9200 |
США |
Дочерний элемент 192 |
TESTUSERE |
L9000 |
L9300 |
США |
Дочерний элемент 193 |
TESTUSERE |
L9000 |
LD2 |
США |
Родительский элемент 20 |
TESTUSERF |
L1 |
L8000 |
США |
Родительский элемент 28 |
TESTUSERG |
LD2 |
L8100 |
США |
Дочерний элемент 281 |
TESTUSERF |
L8000 |
L7000 |
США |
Дочерний элемент 201 |
TESTUSERF |
LD2 |
Примеры
Сначала пользователь вводит данные в модель.
В этом примере используются данные для дочерних элементов элемента сущности L1.
Блокировки не установлены, поэтому данные можно свободно вводить.
Блокировку устанавливает владелец
Владелец TestUserE может задать собственную сущность L9100 и элемент родительского уровня, относящийся к измерению, которое не является измерением владельца, 2017.Q1 (первый квартал 2008 года).
Однако владелец не может просмотреть текущий статус сущности L9100 и 2017.Q1, поскольку для измерений, не являющихся измерениями владельца, статус распространяется на дочерние элементы (родительские элементы для них не хранятся).
Владелец может просмотреть отдельный статус по базовому элементу 2017.ЯНВ.
Владелец должен устанавливать рабочие статусы Controlledby последовательно. Статус "Загрузка" можно изменить на "Отправка", но не на "Журнал", так как следующим рабочим статусом после "Загрузка" является "Отправка".
Верно и обратное: владелец не может устанавливать рабочий статус, управляемый (Controlledby) владельцем, с нарушением последовательности. Нельзя изменить статус "Журнал" на "Запущено", поскольку это нарушает два правила:
Статусу "Журнал" предшествует статус "Отправка". Поэтому он является единственным допустимым выбором.
"Загрузка" - это рабочий статус, управляемый (Controlledby) руководителем и находящийся между рабочими статусами "Отправка" и "Запущено". Владелец не может пропустить рабочий статус, управляемый руководителем.
Блокировку устанавливает руководитель 1
Поскольку первый статус управляется (Controlledby) владельцем и определен как открытый (Блокировки не установлены), следующим шагом является переход руководителя к блокирующему статусу "Загрузка".
Войдите в систему как TestUserD, руководитель L9100 (владелец L9000).
Не выбирайте параметр Для всех потомков в области данных. Руководитель может обновлять статус для отдельных элементов, пока для данного статуса задано управление (Controlledby) руководителем.
После установки блокировки обновить данные невозможно, поскольку этот статус блокирует ввод данных вручную.
Блокировку устанавливает руководитель 2
Войдите в систему как TestUserC, руководитель LD1 (владелец L9000).
Попытайтесь установить рабочий статус, которым управляет (Controlledby) руководитель, для определенного дочернего элемента L9000 (например, L9100).
Задавать параметры отдельных дочерних элементов может только непосредственный родительский элемент. Будет выведена ошибка: User is not an owner/manager, work status cannot be updated.
Если в области данных выбран параметр Для всех потомков, можно настраивать все дочерние элементы (многоуровневая настройка).
Правило Controlled By
Для родительского элемента L9000 задано значение Блокировки не установлены.
Если владелец этого родительского элемента попытается установить рабочий статус "Утверждение", это нарушит правило Controlledby, поскольку Утверждение является рабочим статусом руководителя. Будет выведена ошибка: The Controlledby rule is violated.
Владелец родительского элемента не является его руководителем. Единственным исключением является элемент верхнего уровня иерархии.
Правило "снизу вверх"
Для родительского элемента L9000 задано значение Блокировки не установлены.
Дочерний элемент L9100 имеет статус Загрузка; другие дочерние элементы не имеют статуса.
Владелец родительского элемента L9000 пытается установить рабочий статус Запущено, которым управляет (Controlledby) владелец.
Это сделать не удается, поскольку нарушается правило "снизу вверх": статус родительского элемента не может быть выше статуса его дочерних элементов. Будет выведена ошибка: The Bottom-up rule is violated.
Распространение 1
Владелец родительского элемента L9000 (руководитель) может установить рабочий статус для всех его дочерних элементов с помощью параметра Для всех потомков в области данных.
Руководитель может пропускать рабочие статусы, но они должны находиться под его управлением (Controlledby).
Если руководитель выбирает рабочий статус, которым управляет (Controlledby) владелец, то нарушается правило Controlledby.
Если пользователь, устанавливающий рабочий статус, не является ни владельцем, ни руководителем ни для данного элемента, ни для его дочерних элементов, выводится ошибка: User is not an owner/manager, work status cannot be updated.
Распространение 2
Владелец родительского элемента L9000 (руководитель) может установить рабочий статус для всех его дочерних элементов с помощью параметра Для всех потомков в области данных.
Когда выбран параметр Для всех потомков, рабочий статус родительского элемента не устанавливается.
Только родительский элемент L9000 (LD1) может установить рабочий статус, управляемый (Controlledby) руководителем.
Сторнирование
Предположим, что все дочерние элементы LD1 утверждены для 2017.Q1 (первый квартал 2008 года - январь, февраль и март).
Владелец дочернего элемента не может установить рабочий статус ниже, чем у родительского элемента. Это нарушило бы правило снизу вверх.
Родительский элемент может сторнировать статус до любого из рабочих статусов, которыми управляет (Controlledby) руководитель.
Правило "все области должны соответствовать"
Предположим, что все дочерние элементы LD1 имеют статус Утверждение для 2017.Q1 (первый квартал 2008 года - январь, февраль и март).
Родительский элемент присваивает всем базовым элементам для января значение Блокировки не установлены.
Родительский элемент задает для оставшихся месяцев статус Утверждение.
Владелец одного из измерений пытается установить для первого квартала статус Запущено. Это сделать не удается, потому что нарушается правило "снизу вверх" для января.