Status Control
Using Status Control with Data Access Control
: Examples
Examples
•
Example to Prevent Modification of an Object of a Certain Status
•
Example to Catch when the Dictionary Database has been Deferred
•
Example to Prevent Change of Status after a Certain Level
•
Example to Prevent Removal of Status from an Object
•
Example where a User may only Amend Status
•
Example to Prevent Issue of an Object that does not have sufficient Status
.
Example to Prevent Modification of an Object of a Certain Status
This is to prevent changes to an object once it has reached a level of completion.
Create a PEROP that denies modify and delete operations on equipment for all attributes once the Design Status is greater than or equal to 50%. Here is the condition to use.
COND ( ATTRIB STVNUM(ID /DesignStatus ) GE 50 )
A suitable error message would be: DAC: You may not modify object that has status Work Completed
Example to Catch when the Dictionary Database has been Deferred
This traps the situation where a user has tried to defeat the access control by deferring the dictionary database containing the status definitions.
Create a PEROP that denies modify and delete operations on equipment for all attributes if the Design Status is not a valid reference. Here is the condition.
COND ( NOT UNSET ( ATTRIB STVUNR ) )
A suitable error message would be: DAC: You may not modify an object with an unresolved status
Example to Prevent Change of Status after a Certain Level
This is to allow a user to move an object into a For Check state but prevent them from moving it out. A more privileged user will have the task of promoting it to Checked.
Create a PEROP that denies modify and delete operations on STALNK (status link) elements for attribute VALREF (status value reference) if the current value of Design Status is For Check. Here is the condition.
COND ( ATTRIB OWNER OF VALREF EQ ID /DesignStatus AND ATTRIB DESC OF VALREF EQ 'For Check' )
A suitable error message would be: DAC: You may not change the Design Status of this object as it is awaiting Check
Example to Prevent Removal of Status from an Object
This is to prevent a user from removing status from a controlled object.
Create a PEROP that denies delete operations on STALNK (status link) elements if they are controlled by Design Status. Here is the condition.
COND ( ATTRIB OWNER OF VALREF EQ ID /DesignStatus )
A suitable error message would be: DAC: You may not remove Design Status from this object.
Example where a User may only Amend Status
This example illustrates how to prevent a user from making any changes, other than those related directly to status assignment and transition.
Create a PEROP that grants all operations to the status hierarchy. The PEROP should be applied to the following element type:
STLNKW HIERARCHY
This will apply the PEROP to all objects in the status hierarchy. Assign this PEROP (and only this PEROP) to the user.
This is a positive DAC. It grants access rights to objects. It is therefore not possible to define a specific DAC error message which will be shown if the user tries to carry out a forbidden action (for example an attempt to create an element). A generic DAC error message will be shown in these cases
Example to Prevent Issue of an Object that does not have sufficient Status
This is to prevent a user from issuing an object that has not been assigned a status or the status has not reached a sufficient level.
Create a PEROP that denies issue operations on equipment when the Design Status is not assigned or is less than 100. Here is the condition:
COND ( UNSET( STVLSK ) OR ATTRIB STVNUM(ID / DesignStatus ) LT 100 )
A suitable error message would be: DAC: You may not issue this object until it has been Approved.
1974 to current year.
AVEVA Solutions Limited and its subsidiaries. All rights reserved.