HR Leave · Australia

Script — server.js

ServiceNow Australia · Custom app · Arabic + English readable · scripts copy/paste ready

App typeCustom
Scopex_786686_hr_leave
sys_idc84db0e8839f0b509f02b0d6feaad3c9
Replace{BASE} = your instance
Instance URLs Service Portal Widgets Employee Center

Copy this script into ServiceNow under application x_786686_hr_leave (Australia). Table/API names already use the current scope.

Source: src/portal/widgets/hrlx_my_leaves/server.js

/**
 * Widget: hrlx_my_leaves — Server Script
 * Application: Custom · Scope: x_786686_hr_leave · sys_id: c84db0e8839f0b509f02b0d6feaad3c9
 * Shows the current user's leave requests (secure).
 */
(function () {
    data.leaves = [];

    var gr = new GlideRecordSecure('x_786686_hr_leave_req_v2');
    gr.addQuery('u_requested_for_user', gs.getUserID());
    gr.orderByDesc('sys_created_on');
    gr.setLimit(50);
    gr.query();

    while (gr.next()) {
        data.leaves.push({
            sys_id: gr.getUniqueValue(),
            number: gr.getValue('u_number'),
            type: gr.getDisplayValue('u_leave_type'),
            start: gr.getValue('u_start_date'),
            end: gr.getValue('u_end_date'),
            days: gr.getValue('u_days_count'),
            state: gr.getValue('u_state')
        });
    }

    // Cancel action from client
    if (input && input.action === 'cancel' && input.sys_id) {
        var c = new GlideRecord('x_786686_hr_leave_req_v2');
        if (c.get(input.sys_id) && c.getValue('u_requested_for_user') === gs.getUserID()) {
            c.u_state = 'cancelled';
            c.update();
        }
    }
})();