project BLF > class BSODViolationRule2 > method DeleteByRoleResource
Description
delete violations
Parameters
| iiRoleID | input | integer | |
| iiResourceID | input | integer | |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
program code (program1/bsodviolationrule2.p)
/* Needs a query as load criteria are not on the class main table */
<Q-2 run Violations2ByRoleResource (all) (Read) (NoCache)
(input 0, (CompanyId)
input iiRoleID, (RoleID)
input iiResourceID, (ResourceID)
output dataset tqViolations2ByRoleResource) in BSODViolationRule2 >
if not can-find (first tqViolations2ByRoleResource)
then do:
oiReturnStatus = -4.
return.
end.
for each tqViolations2ByRoleResource break by tqViolations2ByRoleResource.tiSODViolation2_ID on error undo, throw:
if first-of(tqViolations2ByRoleResource.tiSODViolation2_ID)
then
if not can-find (first tSODViolation2 where tSODViolation2.SODViolation2_ID = tqViolations2ByRoleResource.tiSODViolation2_ID)
then do:
if viPrimCount = 0
then vcPrimKey = string(tqViolations2ByRoleResource.tiSODViolation2_ID).
else vcPrimKey = vcPrimKey + chr(4)
+ string(tqViolations2ByRoleResource.tiSODViolation2_ID).
viPrimCount = viPrimCount + 1.
if viPrimCount = 100
then do:
<M-3 run DataLoad
(input '' (icRowids),
input vcPrimKey (icPkeys),
input '' (icObjectIds),
input '' (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BSODViolationRule2>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
assign viPrimCount = 0
vcPrimKey = "".
end.
end.
end.
if viPrimCount > 0
then do:
<M-4 run DataLoad
(input '' (icRowids),
input vcPrimKey (icPkeys),
input '' (icObjectIds),
input '' (icFreeform),
input yes (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BSODViolationRule2>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.
end.
<M-5 run DeleteAndLog
(input iiRoleID (iiRoleID),
input iiResourceID (iiResourceID),
input 0 (iiDomainID),
input 0 (iiCompanyID),
input 0 (iiUsrID),
input 0 (iiSODCategory1ID),
input 0 (iiSODCategory2ID),
output viFcReturnSuper (oiReturnStatus)) in BSODViolationRule2>
if viFcReturnSuper <> 0
then oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0
then return.