Need to fetch approval details in a widget with assignment group name

rmishra4395
Tera Contributor

I have created a widget where i am fetching a approver name , state and assignment group name .

 

I am able to fetch the approver name and state but it's not fetching the group name when it is going to  group approval

 

rmishra4395_0-1722263226135.png

Please find below script for refrerence

 

HTML:

 

<div ng-if="c.data.table == 'sc_req_item'" class="panel b">
<div class="panel-heading bg-primary">Approvals</div>
<div class="panel-body">
<table class="table table-striped table-responsive" ng-if="data.approvals.length">
<thead>
<tr>
<th ng-repeat="field in data.fields_array track by $index">
<div class="th-title">{{field.label}}</div>
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in data.approvals track by item.sys_id">
<td class="pointer" ng-repeat="field in data.fields_array" data-field="{{field}}" data-th="{{field.label}}">
{{item[field.name]}}
</td>
</tr>
</tbody>
</table>

<div ng-repeat="item in data.approvals track by item.sys_id" class="nested-approvals">
<div ng-if="item.sub_approvals.length">
<h5>Sub-approvals for {{item.approver}}:</h5>
<table class="table table-striped table-responsive" ng-if="item.sub_approvals.length">
<thead>
<tr>
<th ng-repeat="field in data.fields_array track by $index">
<div class="th-title">{{field.label}}</div>
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="subItem in item.sub_approvals track by subItem.sys_id">
<td class="pointer" ng-repeat="field in data.fields_array" data-field="{{field}}" data-th="{{field.label}}">
{{subItem[field.name]}}
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>

 

Server Script:

 

(function() {
    // Get table & sys_id
    data.sys_id = $sp.getParameter("sys_id");
    data.table = $sp.getParameter("table");

    // Function to fetch individual approvals recursively
    function getIndividualApprovals(parentSysId) {
        var approvals = [];
        var gr = new GlideRecord("sysapproval_approver");
        gr.addQuery("sysapproval", parentSysId);
        gr.addQuery('state', '!=', 'not_required');
        gr.query();
        while (gr.next()) {
            var entry = {};
            entry.approver = gr.getDisplayValue('approver');
            entry.state = gr.getDisplayValue('state');
            entry.sys_id = gr.getValue('sys_id');
            approvals.push(entry);

            // Recursively fetch nested individual approvals
            entry.sub_approvals = getIndividualApprovals(entry.sys_id);
        }
        return approvals;
    }

    // Function to fetch group approvals recursively
    function getGroupApprovals(parentSysId) {
        var approvals = [];
        var gr = new GlideRecord("sysapproval_group");
        gr.addQuery("sysapproval", parentSysId);
        gr.addQuery('state', '!=', 'not_required');
        gr.query();
        while (gr.next()) {
            var entry = {};
            entry.approver = gr.getDisplayValue('approval_user');
            entry.state = gr.getDisplayValue('state');
            entry.group_name = gr.getDisplayValue('assignment_group'); // Correctly fetch the group name
            entry.sys_id = gr.getValue('sys_id');
            approvals.push(entry);

            // Recursively fetch nested group approvals
            entry.sub_approvals = getGroupApprovals(entry.sys_id);
        }
        return approvals;
    }

    // Fetch top-level approvals
    var individualApprovals = getIndividualApprovals(data.sys_id);
    var groupApprovals = getGroupApprovals(data.sys_id);
    data.approvals = individualApprovals.concat(groupApprovals);

    // Define fields array
    data.fields_array = [
        {
            "name": "approver",
            "label": "Approver"
        },
        {
            "name": "state",
            "label": "State"
        },
        {
            "name": "group_name",
            "label": "Group Name"
        }
    ];
})();
 
 
 
Please help me with this , it's urgent!
0 REPLIES 0