Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

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