project BLF > class BObjectSecurity > method DataLoadObjectSecurity

Description

Returns all security rules of a single application object.


Parameters


icBusinessComponentNameinputcharacter
icObjectReferenceinputcharacter
tSelectedActivitiesoutputtemp-table
tSelectedUsersoutputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method database.ReadObjectSecurity


program code (program1/bobjectsecurity.p)

if oiReturnStatus = 0
then oiReturnStatus = -98.

empty temp-table tSelectedActivities.
empty temp-table tSelectedUsers.

if icObjectReference = ""
or icObjectReference = ?
then return.

<Q-1 run ObjectActivities (all) (Read) (NoCache)
          (input icObjectReference, (ObjectRef)
           input icBusinessComponentName, (BusCompCode)
           output dataset tqObjectActivities) in BObjectSecurity >

for each tqObjectActivities:

    if not can-find (first tSelectedActivities where
                           tSelectedActivities.tiBusActivity_ID = tqObjectActivities.tiBusActivity_ID)
    then do:
        create tSelectedActivities.
        assign tSelectedActivities.tcActivityCode   = tqObjectActivities.tcBusActivityCode
               tSelectedActivities.tiBusActivity_ID = tqObjectActivities.tiBusActivity_ID.
    end.

    if not can-find (first tSelectedUsers where
                           tSelectedUsers.tiBusActivity_ID = tqObjectActivities.tiBusActivity_ID and
                           tSelectedUsers.tiUsrId       = tqObjectActivities.tiUsr_ID)
    then do:
        create tSelectedUsers.
        assign tSelectedUsers.tcUserName       = tqObjectActivities.tcUsrName
               tSelectedUsers.tiBusActivity_ID = tqObjectActivities.tiBusActivity_ID
               tSelectedUsers.tiUsrId          = tqObjectActivities.tiUsr_ID.
    end.

    assign vcPK = vcPK + chr(4) + string(tqObjectActivities.tiObjectSecurity_ID).
end.

empty temp-table tqObjectActivities.

if vcPK = ""
then do:
    <M-3 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BObjectSecurity>
end.
else do:
    <M-2 run DataLoad (input  '' (icRowids), 
                   input  substring(vcPK,2,-1,'CHARACTER':U) (icPkeys), 
                   input  '' (icObjectIds), 
                   input  '' (icFreeform), 
                   input  no (ilKeepPrevious), 
                   output viFcReturnSuper (oiReturnStatus)) in BObjectSecurity>

end.
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then do:
    assign vcBCLoaded     = ""
           vcObjectLoaded = "".
    return.
end.

assign vcBCLoaded     = icBusinessComponentName
       vcObjectLoaded = icObjectReference.

if oiReturnStatus = -98
then oiReturnStatus = 0.