The CreatorCon Call for Content is officially open! Get started here.

Control frequency

Pyskow
Kilo Expert

Hi,

I am wondering how the frequency option works. I if i for example choose monthly, how does the counter work, when does it start etc?

And a sidenote to this? Isn't there a notification related to this? If so, what its called....i can't find it...

1 ACCEPTED SOLUTION

Jan Spurlin
ServiceNow Employee
ServiceNow Employee

There is a frequency flag on the profile and on the control.  When a control is created, if the frequency is set on the profile then the control will inherit that value. It can be changed. Then as ashik,uhammed stated a nightly job called "Control attestation nightly run" will process all the control attestations.

View solution in original post

5 REPLIES 5

Imran Ali5
Tera Contributor

A scheduled job named "checkAndMoveControlsToAttestByFrequency" runs daily to set the entity/control state to "Attest" based on Attestation frequency(Anually,Weekly,Monthly,Quaterly,Daily,Semi-Anually) and executes the following script:

ControlAttestationUtils().checkAndMoveControlsToAttestByFrequency(); 

Within the checkAndMoveControlsToAttestByFrequency() function, we can trigger a custom event using gs.eventQueue(). This enables us to notify stakeholders when controls are moved for attestation based on their defined frequency.

A notification can then be configured in ServiceNow to listen for this event:

  • Event name: controls.to.attest
  • Table: The relevant table (e.g., sn_compliance_control)
  • Condition: Optional, based on control attributes
  • Recipients: Users or groups to be notified

 

 Alternative Approach (Non-OOB Modification)

To avoid modifying out-of-the-box (OOB) components, we can:

  • Create a copy of the scheduled job checkAndMoveControlsToAttestByFrequency
  • Duplicate the Script Include ControlAttestationUtils and rename it (e.g., CustomControlAttestationUtils)
  • Update the copied scheduled job to call the custom function:

    CustomControlAttestationUtils().checkAndMoveControlsToAttestByFrequency();


    This approach ensures that OOB functionality remains untouched, making upgrades smoother and maintaining platform integrity.