The following setup is used for the examples.
Work Status codes
Default code is set to Both
All methods are open, that is, set to All
Work State |
DM |
JRN |
MAN |
COMM |
DOCS |
ControlledBy |
Locks Not Set |
All |
All |
All |
All |
All |
Both |
Started |
All |
All |
All |
All |
All |
Owner |
Upload |
All |
Locked |
Locked |
Locked |
Locked |
Mgr |
Submit |
Locked |
Owner |
All |
All |
All |
Owner |
Journal |
Locked |
Locked |
Locked |
All |
All |
Owner |
Approve |
Locked |
Locked |
Locked |
Locked |
Locked |
Mgr |
Application work status dimensions
Entity is used as the owner dimension
Dimensions with Yes are non-owner dimensions
Remaining dimensions are not considered when defining the scope or region of the lock
AppSet Dim Name |
Work State |
CATEGORY |
Yes |
ENTITY |
Owner |
P_ACCT |
No |
P_ACTIVITY |
No |
P_DATASRC |
Yes |
RPTCURRENCY |
No |
TIME |
Yes |
Entities structure
Owner of Top entity L1 is the tester's internal user ID (I#)
Remaining parents and children have test owners to help demonstrate the example
ID |
CURRENCY |
EVDESCRIPTION |
OWNER |
PARENTH1 |
L1 |
EU |
Top |
SAP_ALL\I815086 |
|
LD1 |
US |
Parent 10 |
DEVWDF46\TESTUSERC |
L1 |
L9000 |
US |
Parent 19 |
DEVWDF46\TESTUSERD |
LD1 |
L9100 |
US |
Child 191 |
DEVWDF46\TESTUSERE |
L9000 |
L9200 |
US |
Child 192 |
DEVWDF46\TESTUSERE |
L9000 |
L9300 |
US |
Child 193 |
DEVWDF46\TESTUSERE |
L9000 |
LD2 |
US |
Parent 20 |
DEVWDF46\TESTUSERF |
L1 |
L8000 |
US |
Parent 28 |
DEVWDF46\TESTUSERG |
LD2 |
L8100 |
US |
Child 281 |
DEVWDF46\TESTUSERF |
L8000 |
L7000 |
US |
Child 201 |
DEVWDF46\TESTUSERF |
LD2 |
To begin, a user enters data into the application.
This example uses data for children of entity member L1
There are no locks set, so data can be entered freely
Lock is set by owner
Owner TestUserE can set their own entity L9100, and set a parent level non-owner dimension member 2008.Q1
However, the owner cannot view the current status of the entity L9100 and 2008.Q1 since the state is expanded to the child members for non-owner dimensions (no storage of parent members for non-owner dimension)
The owner can view the individual state by the base member 2008.JAN
An owner must set Controlledby work states in consecutive order. Upload can be set to Submit, but not to Journal, as the next work state after Upload is Submit.
This is also true in reverse: an owner cannot set a Controlledby owner work state that is not in order. You cannot set Journal to Started as this violates two rules:
The state before Journal is Submit. Therefore, this is the only valid selection possible
Upload is a Controlledby Mgr work state, and is in between the Submit and Started work states. The owner cannot skip a Mgr work state.
Lock is set by manager 1
As the first status is an Controlledby Owner status, which is defined as open (Locks Not Set), the next step is to have the manager progress to a locking status of Upload.
Sign on as TestUserD, the manager of L9100 (owner of L9000)
Do not choose Include children in the data region. As a manager, you can update the status for individual members as long as the status is set to Controlledby Mgr
You cannot update the data after the lock is set, as this status locks out manual data entry
Lock is set by manager 2
Sign on as TestUserC, the manager of LD1 (owner of L9000)
Attempt to set Controlledby Mgr work state for a specific child of L9000 (for example, L9100)
Only an immediate parent can set individual children. An error appears: User is not an owner/manager, work status cannot be updated
.
If you choose Include all children in data region, you can set all children (multi-level setting)
Controlled By Rule
Parent L9000 is set to Locks Not Set
If the parent owner attempts to set the work state to Approve, this violates the Controlledby rule as Approve is a Mgr work state. An error appears: The Controlledby rule is violated
.
Note
The owner of a parent is not its own manager (the only exception to this is the top member of the hierarchy).
Bottom Up Rule
Parent L9000 is set to Locks Not Set
Child L9100 is set to Upload; other children are set to None
The owner of parent L9000 attempts to set to the work state to Started, which is Controlledby Owner
This fails due to violation of the bottom up rule: a parent cannot have a status higher than its children. An error appears: The Bottom-up rule is violated
Pushing 1
L9000, a parent owner (manager), can set the work state of all of its children using Include children in the data region
A manager can skip work states, but they must be Controlledby Mgr
If a manager selects a work state that is Controlledby Owner, this violates the Controlledby rule.
If the user setting the work state is neither the owner nor the manager of either the specific member or children of the specified member, an error appears: User is not an owner/manager, work status cannot be updated
.
Pushing 2
L9000, a parent owner (manager) can set the work state of all its children using Include children in the data region
The parent member work state is not set when Include children in the data region is chosen
Only the parent of L9000 (LD1) can set a Controlledby Mgr work state
Reversing
Assume all children of LD1 are approved for 2008.Q1 (JAN, FEB, MAR)
The owner of a child member cannot set a work state lower than their parent. This violates the Bottom-up rule.
A parent can reverse the status to any of the Controlledby Mgr work states
All Regions Must Pass Rule
Assume all children of LD1 are set to Approve for 2008.Q1 (JAN, FEB, MAR)
The parent sets all base members for Jan to Locks Not Set
The parent sets remaining months to Approve
The owner of one dimension attempts to set Q1 to Started. This fails because it violates the Bottom-up rule for two months (February and March)