Structure Authorities for Drop-Downs
A new parameter has been added to procedure dat.p_pane_objlists.The parameter is called@p_struct_authority and handles how authority will be used when the list is populated. If the parameter is discarded or is 0 (zero), the procedure will work as before. If the parameter is set to 1, an iteration will be done in the object tree to search for user authorities.
We have following object structure set up in Bizview:
ITEMCLASS
ITEMGRP
ITEM
SUBITEM
We add a dropdown to a pane and execute dat.p_pane_objlists. As child object we choose ITEMCLASS.
The result of this is:
The user that executes the pane has three authorities:
The ITEMCLASS limitation (32..36) was executed in the list above. The user has also limitation on ITEMGRP (112, 119, 101 and 102) plus ITEM (101 and 344).
Since ITEMGRP and ITEM are children to ITEMCLASS and therefore connected to a specific ITEMCLASS, we can tell Bizview to consider this and do a lookup on what ITEMCLASS:es to be fetched.
To establish that we put a 1 in the new parameter and try it again. The result is:
When Bizview is searching for values (ITEMCLASS in this case) it starts with reading the structure and get a list of all object values on which the user has any authority on. In this case it will find two ITEMs and four ITEMGRPs.
After that, Bizview must evaluate which ITEMCLASS every object value is connected to. Bizview starts from the bottom of the hierarchy. In this case, SUBITEM is first evaluated but it has no authorities. The next object is ITEM. Bizview will find the following data:
ITEM ITEMGRP ITEMCLASS
101 103 35
344 101 36
When all ITEMCLASS for object ITEM have been evaluated a delete will be done for those ITEMCLASS:es that not match 35 and 36.
When ITEM is finished ITEMGRP will be evaluated. Bizview will find the following data:
ITEMGRP ITEMCLASS
101 36
102 35
112 33
119 32
Since ITEMGRP:s that belongs to ITEMCLASS 35 and 36 no more delete will be done. But if we, for example, should remove ITEMGRP 101 from the authority, ITEMCLASS 36 will disappear.
Caution: Parallel structures will not work for this case. The parent object can only have one tree below it.