How to pass Multiple SN Record picker values to update a single record
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2022 12:18 PM
Hello All,
I'm able to update the single SN record picker value to the asset record but I want to update the New Department and New service center values at once on click submit button.
HTML:
<div class="col-md-10 center-div">
<form class="form-horizontal">
<div>
<table class="table" class="table table-striped" class="table table-bordered border-primary" >
<thead style="background-color: #6c7ae0;color: white;line-height: 30px;">
<tr >
<!-- <th>Picture</th> -->
<th>Asset Tag</th>
<th>Department</th>
<th>Assigned to</th>
<th>Service Center</th>
<th>Mobile Number</th>
<th>New Department</th>
<th>New Service Center</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="catalogItemValue in data.incidents track by $index">
<td><a href="alm_hardware.do?sys_id={{catalogItemValue.sys_id}}" target = '_blank' >{{catalogItemValue.assettag}}</a></td>
<td><a>{{catalogItemValue.department}}</a></td>
<td><a>{{catalogItemValue.assignedto}}</a></td>
<td>{{catalogItemValue.servicecenter}}</td>
<td><a>{{catalogItemValue.mobileno}}</a></td>
<td>
<span class="fa fa-asterisk mandatory" ng-class="{'mandatory-filled': field.mandatory_filled()}" style="padding-right: .25em" aria-label="Mandatory " aria-hidden="false"></span>
<sn-record-picker
field="department"
table="'cmn_department'"
placeholder="${Select a new department}"
display-field="'name'"
value-field="sys_id"
search-fields="'name'"
>
</sn-record-picker>
<!-- <sn-record-picker field="department" table="'cmn_department'" display-field="'name'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker> -->
</td>
<input name="myInputModel" class="form-control" ng-model="c.data.reason" type="hidden" />
<td>
<span class="fa fa-asterisk mandatory" ng-class="{'mandatory-filled': field.mandatory_filled()}" style="padding-right: .25em" aria-label="Mandatory " aria-hidden="false"></span>
<sn-record-picker
field="u_name"
table="'u_service_centers'"
placeholder="${Select a new service center}"
display-field="'u_name'" value-field="'sys_id'"
search-fields="'u_name'"
>
</sn-record-picker>
<!-- <sn-record-picker field="serviceCenter" table="'u_service_centers'" display-field="'u_name'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker> -->
</td>
<input name="myInputModel2" class="form-control" ng-model="c.data.servicecenter" type="hidden" />
<td>
<button type="button" class="btn btn-primary" ng-click="updatePrice(catalogItemValue.sys_id,myInputModel,myInputModel2)" >SUBMIT</button>
</tr>
</tbody>
</table>
</form>
<!--
<script>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Put whatever text you want here</h4>
</div>
<div class="panel-body wrapper-xl">
Thank you {{c.data.name}}, a ticket has been created on your behalf.<p>
<b><font size='4'>You are number {{c.data.count}} in the queue.</font size></b><p>
You will now be redirected to the Service Portal Home page.
</div>
</div>
</div>
</script>
-->
</div>
CLIENT:
function($scope, spUtil) {
var c = this;
$scope.$on('record.updated', function(name, data) {
spUtil.update($scope);
});
var department = '';
$scope.$on("field.change", function(evt, parms) {
confirm(parms.field.name + ' parms.newValue ' + parms.newValue + ' parms.displayValue ' + parms.displayValue);
//if (parms.field.name == 'reason_picker'){
department = parms.displayValue;
c.data.reason = parms.newValue;
c.server.update().then(function(response) {
spUtil.update($scope);
})
//}
});
$scope.$on('record.updated', function(name, data) {
spUtil.update($scope);
});
var servicecenter = '';
$scope.$on("field.change", function(evt, parms) {
confirm(parms.field.name + ' parms.newValue ' + parms.newValue + ' parms.displayValue ' + parms.displayValue);
//if (parms.field.name == 'reason_picker'){
servicecenter = parms.displayValue;
c.data.servicecenter = parms.newValue;
c.server.update().then(function(response) {
spUtil.update($scope);
})
//}
});
var c = this;
$scope.updatePrice = function(newPrice, catItemName, sysiD, value,index,priceValue,OldPrice) {
spUtil.addInfoMessage("Record has been Updated Successfully!");
//alert('Catalog Item: ' + catItemName+'`s price has been changed from $'+OldPrice + " to $"+ priceValue );
c.data.selected = $scope.selection;
c.data.newPrice = newPrice;
c.data.sysID = sysiD
c.data.value = value;
c.data.index = index;
c.server.update(c.data).then(function() {});
spUtil.update($scope);
}
$scope.data.selection = [];
$scope.selectedList = function(y) {
alert(y);
}
}
SERVER:
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
var grlogged = gs.getUser().getDepartmentID();
gs.log('dl Mobile input evt ' + input.reason);
data.incidents = [];
var gr = new GlideRecord('alm_hardware');
//gr.orderBy('category');
//gr.addActiveQuery();
gr.addEncodedQuery("^u_device_type=Cell Phone");
gr.addQuery('department', grlogged);
gr.query();
var grcount = gr.getRowCount();
while (gr.next()) {
var catalogItemValue = {};
catalogItemValue.assettag = gr.getDisplayValue('asset_tag');
catalogItemValue.department = gr.getDisplayValue('department');
catalogItemValue.assignedto = gr.getDisplayValue('assigned_to');
catalogItemValue.servicecenter = gr.getDisplayValue('u_service_center');
catalogItemValue.mobileno = gr.getDisplayValue('u_mobile');
catalogItemValue.sys_id = gr.getUniqueValue();
data.incidents.push(catalogItemValue);
}
if(input.newPrice){
//gs.log('input.myInputModel'+input.myInputModel + ' value returns '+input.myInputModel[input.index]);
//var priceEntered = input.myInputModel[input.index];
//if(priceEntered != 0){
var gr1 = new GlideRecord('alm_hardware');
if(gr1.get(input.newPrice)){
gr1.department = input.reason;
gr1.u_service_center = input.servicecenter;
gr1.update();
}}
//}
})();
Labels:
- Labels:
-
Service Catalog
-
Service Portal
-
Workflow
0 REPLIES 0