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.

Slef cancelling ticket - 1

nameisnani
Mega Sage

Hi Team 

 

the reason for says “closed by requested for” instead of the persons name. Can this be adjusted?

nameisnani_0-1708396979205.png

 

 

<div class="panel b" ng-if="data.showWidget">
<div class="panel-heading bg-primary">Actions</div>
<div class="panel-body">
<button type="button" class="btn btn-danger btn-block" ng-click="c.openModalCancel()" ng-if="data.showCancel">Cancel</button>
</div>
</div>


<script type="text/ng-template" id="modalTemplateCancel">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Provide a reason for the cancel</h4>
</div>
<div class="panel-body wrapper-xl">
<form name="modalTemplateResolve" ng-submit="c.uiAction('cancel')">
<div class="form-group">
<textarea required sp-autosize="true" ng-required="true" ng-model="data.cancelComments" id="cancelComments" placeholder="Comments required" class="form-control ng-pristine ng-valid ng-scope ng-empty ng-touched" aria-invalid="false" style="overflow: hidden; word-wrap: break-word; resize: horizontal;"></textarea>
</div>
<input class="btn btn-primary" type="submit" />
</form>
</div>
</div>
</script>

 

Server 

(function() {

// Get table & sys_id
data.table = input.table || $sp.getParameter("table");
data.sys_id = input.sys_id || $sp.getParameter("sys_id");

// Valid GlideRecord
gr = new GlideRecord(data.table);
if (!gr.isValid())
return;

// Valid sys_id
if (!gr.get(data.sys_id))
return;

//Button Visibility
if(data.table == 'incident' && gr.active == true && gr.incident_state != 6 && (gr.caller_id == gs.getUserID() || gs.hasRole("admin"))){
data.showWidget = true;

data.showCancel = true;
}
else if(data.table == 'sc_req_item' && gr.active == true && (gr.request.requested_for == gs.getUserID() || gs.hasRole("admin"))){
data.showWidget = true;
data.showCancel = true;

}
else {
data.showWidget = false;
data.showCancel = false;
}

//input
if (input && input.action) {
var action = input.action;

//Incident table
if (data.table == 'incident') {


if (action == 'cancel') {
gr.setValue('incident_state', 8);
gr.setValue('state', 8);
gr.setValue('resolved_by', gs.getUserID());
gr.setValue('close_code','Customer Cancelled');
gr.setValue('close_notes','Cancelled by caller with comment: '+ input.cancelComments);
//gr.work_notes = 'Cancelled by caller with comment: ' + input.resolveComments;
gr.update();
}

}

//Requested Item table
if (data.table == 'sc_req_item' && input.cancelComments !='') {
if (action == 'cancel') {
var workflow = new Workflow();
workflow.cancel(gr);
gr.setValue('approval','withdrawn');
gr.setValue('stage','Request Cancelled');
gr.setValue('state','4');
gr.setValue('active','false');
gr.comments.setJournalEntry("Closed by Requested For with comment: "+ input.cancelComments);
gr.update();
}
if (action == 'status' && input.statusComments !='') {

gr.comments.setJournalEntry("Status request by user: "+ input.statusComments);
gr.update();
}
}

}
})();

Clinet 

function($uibModal, $scope, spUtil) {
var c = this;

$scope.$on('record.updated', function(name, data) {
c.data.cancelComments = '';
spUtil.update($scope);
})

c.uiAction = function(action) {
c.data.action = action;
c.server.update().then(function() {
c.data.action = undefined;
})
c.modalInstance.close();
}

c.openModalCancel = function() {
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplateCancel',
scope: $scope
});
}


c.closeModal = function() {
c.modalInstance.close();
}
}

 

Example :

Closed by NameisNani with comment : 

 

Where should i update in the script . can anyone pleae help me 

 

I have updated Server side script lik this 

 

gr.comments.setJournalEntry("Closed by " + gr.request.requested_for + "with comment: "+ input.cancelComments);

 

But result is not up to mark  , Instead of name , Sys id is coming , can anyone please help me . to resolve this 

nameisnani_1-1708397073671.png

 

Thanks 

1 ACCEPTED SOLUTION

Nick Parsons
Mega Sage

You want to get the display value of the requested for field, so:

 

 

gr.comments.setJournalEntry("Closed by " + gr.request.requested_for.getDisplayValue() + " with comment: "+ input.cancelComments);

 

 

Alternatively, if `requested_for` on the REQ can be empty or null, use getDisplayValueExt() to provide a default fallback:

 

 

gr.comments.setJournalEntry("Closed by " + gr.request.requested_for.getDisplayValueExt(40, "Requested for") + " with comment: "+ input.cancelComments);

 

 

 

View solution in original post

1 REPLY 1

Nick Parsons
Mega Sage

You want to get the display value of the requested for field, so:

 

 

gr.comments.setJournalEntry("Closed by " + gr.request.requested_for.getDisplayValue() + " with comment: "+ input.cancelComments);

 

 

Alternatively, if `requested_for` on the REQ can be empty or null, use getDisplayValueExt() to provide a default fallback:

 

 

gr.comments.setJournalEntry("Closed by " + gr.request.requested_for.getDisplayValueExt(40, "Requested for") + " with comment: "+ input.cancelComments);