Nützliche Genehmigungs- und Zuweisungsskripts
Dies ist eine durchsuchbare Version der nützlichen Genehmigungs- und Zuweisungsskripts.
Eine Version, in der Sie problemlos navigieren können, finden Sie im Portal für nützliche Skripts.
Gruppe für ESS-Anforderungen zuweisen
Typ: Zuweisungsregel.
Beschreibung: Dieses Skript weist automatisch eine Gruppe für alle ESS-Anforderungen zu.
Skriptbeispiel:
if(current.opened_by.roles==""){
current.assignment_group.setDisplayValue('Network');
current.update();}Einer Gruppe basierend auf einer Bereitstellungsplanaufgabe ein Katalogelement zuweisen
Typ: Zuweisungsregel.
//Return catalog items that have no group but do have a delivery plan assigned
var ri =new GlideRecord("sc_cat_item");
ri.addQuery("group","=",null);
ri.addQuery("delivery_plan","!=",null);
ri.query();
while(ri.next()){
gs.log("Found an item");
//Return tasks that point to the same delivery plan as the above item
var dptask =new GlideRecord("sc_cat_item_delivery_task");
dptask.addQuery("delivery_plan","=",ri.delivery_plan);
dptask.query();while(dptask.next()){
gs.log("Found a task");var gp = dptask.group.getDisplayValue();
gs.log(gp);//If the task is assigned to desktop, assign the item's group to desktop
if(dptask.group.getDisplayValue()=="Desktop"){
ri.group.setDisplayValue("Desktop");
gs.log("updating "+ ri.getDisplayValue());
ri.update();break;}}}Elemente mit einer Aufgabe zuweisen
Typ: Zuweisungsregel.
//Get the catalog item for the current requested item
var scCatItem =new GlideRecord("sc_cat_item");
if(scCatItem.get('sys_id', current.cat_item)){
// If the catalog item already has an assignment group or if using workflow we don't need to make an assignment
if(!scCatItem.delivery_plan.nil()&& scCatItem.group.nil()){
var dpTask =new GlideRecord("sc_cat_item_delivery_task");
dpTask.addQuery("delivery_plan","=",scCatItem.delivery_plan);
dpTask.query();
if(dpTask.getRowCount()==1&& dpTask.next()){
// Check that there is only 1 record in the GlideRecord
dpTask.group;}}}Zuweisung auf Basis der Auslastung
Typ: Geschäftsregel.
Beschreibung: Füllen Sie das Feld „Zugewiesen an“ basierend auf dem Zuweisungsgruppenmitglied aus, das die geringste Anzahl aktiver Incidents aufweist.
- Bestellung: > 1.000, wenn Sie nach Zuweisungsregeln ausführen möchten
- Bedingung: current.assigned_to == '' && current.assignment_group != ''
- Wann: vor Einfügen/Aktualisieren
var assignTo = getLowestUser();
gs.addInfoMessage("assigning to is "+ assignTo);
current.assigned_to= assignTo;
function getLowestUser(){
var userList =new Array();
var cg =new GlideRecord('sys_user_grmember');
cg.addQuery('group', current.assignment_group);
cg.query();
while(cg.next()){
var tech = cg.user.toString();
var cnt = countTickets(tech);
gs.addInfoMessage("Tech counts "+ cg.user.name+' '+ cnt +" "+ tech);
userList.push({ sys_id: tech,name: cg.user.name, count: cnt });}
for(var i=0; i < userList.length; i++){
gs.addInfoMessage(userList[i].sys_id+" "+ userList[i].name+" "+ userList[i].count);}
userList.sort(function(a, b){
gs.addInfoMessage("Sorting: "+ a.sys_id+"("+ a.count+");
"+ b.sys_id+"("+ b.count+")");
return a.count- b.count;});
if(userList.length<=0)return"";
return userList[0].sys_id;}
function countTickets(tech){
var ct =new GlideRecord('incident');
ct.addQuery('assigned_to',tech);
ct.addQuery('active',true);
ct.query();
return ct.getRowCount();}Zuweisungsregeln bei Kategorieänderung ausführen
Typ: Client-Skript.
Tabelle: Incident
// Make an AJAX request to the server to get who this incident would be
// assigned to given the current values in the record. This runs the assignment
// rules thathave been defined in System Policy and returns the assigned_to and
// the assignment_group
function onChange(control, oldValue, newValue, isLoading){
if(isLoading){return;
// No change, do not do anything
}
// Construct the URL to ask the server for the assignment
var url ="xmlhttp.do?sysparm_processor=AJAXAssignment&sys_target=incident";
var uv = gel('sys_uniqueValue');
if(uv){
url +="&sys_uniqueValue="+ uv.value;}
// Make the AJAX request to the server and get the response
var serial = g_form.serialize();
// get all values currently assigned to the incident
var response = ajaxRequest(url, serial,true, responseFunc);}
// This callback function handles the AJAX response.
function responseFunc(response){
varitem= response.responseXML.getElementsByTagName("item")[0];
// Process the item returned by the server
if(item){
// Get the assigned_to ID and its display value and put them on the form
varname=item.getAttribute("name");
var name_label =item.getAttribute("name_label");
if(name_label &&name){
g_form.setValue('assigned_to',name, name_label);}
else{
g_form.setValue('assigned_to','','');}
// Get the assignment_group ID and its display value and put then on the form
var group =item.getAttribute("group");
var group_label =item.getAttribute("group_label");
if(group_label && group){
g_form.setValue('assignment_group', group, group_label);}
else{
g_form.setValue('assignment_group','','');}}}Benutzerdefiniertes Genehmigungs-UI-Makro
Typ: UI-Makro
- Navigieren Sie zu System-UI, und klicken Sie auf UI-Makros.
- Benennen Sie das vorhandene Makro „approval_summarizer_sc_task“ um, z. B. in „approval_summarizer_sc_task_old“, und deaktivieren Sie es.
- Erstellen Sie ein neues Makro mit demselben Namen (approval_summarizer_sc_task). Der Name sollte im Wesentlichen aussagen, welche Funktion das Makro hat und für was es gilt. In diesem Fall ersetzen wir ein vorhandenes Makro, daher haben wir uns dafür entschieden, den vorhandenen Namen wiederzuverwenden.
Kopieren Sie dann das XML-Skript am Ende dieses Artikels in das XML-Codefenster im neuen UI-Makro. Dies ist eine großartige Möglichkeit, einem Genehmiger einige Details zu geben, wenn Sie Einzelpostengenehmigungen über Genehmigungsaufgaben in den Servicekatalog-Ausführungsplänen durchführen.
Verschiedene Methoden
Alte Methode
Dies ist die Ansicht, die unter „ Meine Genehmigungen “ angezeigt wird, wenn Sie eine Genehmigungsaufgabe mit der alten Methode verwenden.
Beachten Sie, dass dem Genehmiger nicht viele Details darüber mitgeteilt werden, was er tatsächlich genehmigt. Sie können die Kurzbeschreibung der Aufgabe sehen, aber nicht viele Informationen über das Element.
Neue Methode
Dies ist die Ansicht, die angezeigt wird, wenn Sie das folgende XML-Skript anstelle des sofort einsatzbereiten UI-Makros verwenden.
Mit dieser Methode können Sie Details anzeigen, ähnlich wie die Anforderungsgenehmigung. Es stehen ein Link zum bestellten Artikel, eine Kurzbeschreibung (die die Möglichkeit enthält, die Variablen des Artikels zu erweitern), Preis, Menge und Gesamtpreis zur Verfügung. Diese Methode hilft dem Genehmiger, indem sie mehr Details anzeigt. Der Genehmiger kann jetzt sehen, was er tatsächlich genehmigt.