Trigger Daily Notification if renewal date is expired

Naman Jain2412
Tera Expert

Hi, 

Please provide the relevant code so that schedule job can be run daily if renewal date is expired.

Do let me know in case of any query.

 

Thanks

1 ACCEPTED SOLUTION

Hello @Naman Jain2412 

Please try code below

function checkExpiredPolicies() {
    var gr = new GlideRecord('sn_compliance_policy'); // Target table: Compliance Policy

    var today = new GlideDateTime(); // Get current date and time
   
    var todayFormatted = today.getLocalDate().getValue();

    // Query for policies where the 'u_next_renewal_date' is before today
    // and the policy state is NOT already 'Expired' or 'Inactive' (adjust as per your state values)
    gr.addQuery('u_next_renewal_date', '<', todayFormatted);

    // We only want to process policies that are currently 'Active' (or similar state) and not already marked 'Expired' or 'Inactive'.
    gr.addActiveQuery(); // Only process active records, if 'active' field exists and is used
    gr.addQuery('state', '!=', 7); // Assuming 7 is your 'Expired' or 'Requires Review' state value
    gr.addQuery('state', '!=', 3); // Assuming 3 is your 'Retired' state value (don't process retired policies)
    gr.query();
    var updatedCount = 0;
    while (gr.next()) {
        // 1. Update the state field
        // IMPORTANT: Replace '7' with the correct integer value for your desired 'Expired' or 'Requires Review' state.
        gr.state = 7; // Example: Set state to 'Expired' or 'Requires Review'
        gr.update();
        updatedCount++;

        gs.eventQueue('policy.expired', gr, gr.owner.sys_id, gr.assignment_group.sys_id); // Pass relevant user/group sys_ids
}

checkExpiredPolicies();

Try this and let me know in case of queries

Thank you!

If my response helped you, please accept the solution and mark it as helpful.
Thank You!

View solution in original post

10 REPLIES 10

J Siva
Tera Sage

Hi @Naman Jain2412 
Try flow designer with Schedule type trigger. Let us know if you stuck ..

JSiva_0-1752125226482.png

Regards,
Siva

 

Rushi Savarkar
Kilo Sage

Hello @Naman Jain2412 

Please elaborate on your question.

What is the table name? What is the field name? Are there any choices in that field? so that we can make the logic of expiration

 

Thank you!

If my response helped you, please accept the solution and mark it as helpful.
Thank You!

Hi Thanks for the response Rushi
Table Name is sn_compliance_policy and field name is Next Renewal Date (u_next_renewal_date)

 

Hello @Naman Jain2412 

Please try code below

function checkExpiredPolicies() {
    var gr = new GlideRecord('sn_compliance_policy'); // Target table: Compliance Policy

    var today = new GlideDateTime(); // Get current date and time
   
    var todayFormatted = today.getLocalDate().getValue();

    // Query for policies where the 'u_next_renewal_date' is before today
    // and the policy state is NOT already 'Expired' or 'Inactive' (adjust as per your state values)
    gr.addQuery('u_next_renewal_date', '<', todayFormatted);

    // We only want to process policies that are currently 'Active' (or similar state) and not already marked 'Expired' or 'Inactive'.
    gr.addActiveQuery(); // Only process active records, if 'active' field exists and is used
    gr.addQuery('state', '!=', 7); // Assuming 7 is your 'Expired' or 'Requires Review' state value
    gr.addQuery('state', '!=', 3); // Assuming 3 is your 'Retired' state value (don't process retired policies)
    gr.query();
    var updatedCount = 0;
    while (gr.next()) {
        // 1. Update the state field
        // IMPORTANT: Replace '7' with the correct integer value for your desired 'Expired' or 'Requires Review' state.
        gr.state = 7; // Example: Set state to 'Expired' or 'Requires Review'
        gr.update();
        updatedCount++;

        gs.eventQueue('policy.expired', gr, gr.owner.sys_id, gr.assignment_group.sys_id); // Pass relevant user/group sys_ids
}

checkExpiredPolicies();

Try this and let me know in case of queries

Thank you!

If my response helped you, please accept the solution and mark it as helpful.
Thank You!