Nützliche Skripts für Genehmigungszuweisung
Dies ist eine durchsuchbare Version der nützlichen Genehmigungs- und Zuweisungsskripts.
Eine einfach zu navigierende Version finden Sie unter Portal für nützliche Skripts.
Weisen Sie eine Gruppe für ESS-Anforderungen zu
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();}Weisen Sie der Gruppe ein Katalogelement basierend auf der Bereitstellungsplanaufgabe zu
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;}}}Weisen Sie Elemente mit einer Aufgabe zu
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 basierend auf Arbeitsauslastung
Typ: Business-Regel.
Beschreibung: Füllen Sie „Zugewiesen an“ basierend auf dem Mitglied der Zuweisungsgruppe aus, das die geringste Anzahl aktiver Incidents hat.
- Reihenfolge: >1000, wenn Sie nach Zuweisungsregeln ausführen möchten
- Bedingung: Current.assigned_to == „“ und& current.assignment_Group != „“
- Wenn: 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();}Führen Sie Zuweisungsregeln aus, wenn die Kategorie geändert wird
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','','');}}}Anwenderdefiniertes GenehmigungsUI-Makro
Typ: UI-Makro.
- Navigieren Sie zu System-UI Und klicken Sie auf UI-Makros .
- Benennen Sie die vorhandene „approval_summarizer_sc_task“ in eine Art wie „approval_summarizer_sc_task_old“ um, und deaktivieren Sie sie.
- Erstellen Sie eine neue mit demselben Namen („approval_summarizer_sc_task“). Der Name sollte im Grunde sagen, was das Makro tut und was es betrifft. In diesem Fall ersetzen wir einen vorhandenen, daher haben wir uns entschieden, den vorhandenen Namen wiederzuverwenden.
Kopieren Sie dann das XML-Skript unten in diesem artikel in das XML-Codefenster im neuen UI-Makro. Dies ist eine großartige Möglichkeit, einem Genehmiger einige Details zu geben, wenn Sie Einzelelementgenehmigungen mithilfe von Genehmigungsaufgaben innerhalb der Servicekatalog-Ausführungspläne durchführen.
Verschiedene Möglichkeiten
Alte Art
Dies ist die Ansicht, die Sie in sehen Meine Genehmigungen Bei Verwendung einer Genehmigungsaufgabe mit der alten Methode.
Beachten Sie, dass es nicht viele Details gibt, die dem Genehmiger mitteilen, was er tatsächlich genehmigt. Sie können die kurze Beschreibung der Aufgabe, aber nicht viele Informationen zum Element sehen.
Neue Methode
Dies ist die Ansicht, die angezeigt wird, wenn Sie das XML-Skript unten anstelle des OOB-UI-Makros (sofort einsatzbereit) verwenden.
Mit dieser Methode können Sie Details wie die Anforderungsgenehmigung anzeigen. Sie haben einen Link zum bestellten Artikel, eine Kurzbeschreibung (die die Möglichkeit enthält, die Variablen aus dem Artikel zu erweitern), Preis, Menge und Gesamtpreis. Diese Methode hilft dem Genehmiger, mehr Details anzuzeigen. Der Genehmiger kann jetzt sehen, was er tatsächlich genehmigt.