Skriptfähige Zuweisung von Ausführungsplänen
Jedem Katalogelement ist ein Ausführungsplan zugeordnet, der immer dann verwendet wird, wenn ein Element dieses Typs bestellt wird. Wenn kein Plan angegeben ist, wird der Standardplan verwendet. Diese Standardeinstellung ist für die meisten Organisationen geeignet, Ihr Ausführungsplan weicht jedoch möglicherweise aufgrund zusätzlicher Kriterien ab.
Im Servicekatalog des Basissystems verwendet eine Anforderung für einen neuen PC beispielsweise immer den PC-Bereitstellungsplan (PC Delivery Plan). Dieser Plan muss jedoch möglicherweise für ungewöhnliche Umstände variieren – z. B. wenn ein Anforderer von zu Hause aus an einem entfernten Standort arbeitet.
Um diese Flexibilität zu bieten, können Sie den Standardausführungsplan für ein bestimmtes Katalogelement mithilfe eines Skripts überschreiben.
Einschränkungen bei der Skriptausführung
Für Ausführungsplanskripts gelten Einschränkungen, die bei der Implementierung berücksichtigt werden müssen.
Während das Ausführungsplanskript ausgeführt wird, gelten die folgenden Einschränkungen:
- Sie können nicht mit Katalogaufgaben interagieren, da Katalogaufgaben erst erstellt werden, nachdem der Ausführungsplan ausgewählt wurde.
- Einige Felder wie Gesamte Lieferzeit und Fälligkeitsdatum sind noch nicht berechnet, obwohl die Anforderung selbst im Skript über current.request() verfügbar ist.
- Genehmigungen wurden noch nicht erstellt.
Skripte schreiben
Befolgen Sie beim Schreiben von Ausführungsplanskripts diese Richtlinien.
Ausführungsplanskripts können auf die gleichen globalen Variablen und anderen Funktionen zugreifen wie in jedem anderen serverseitigen Ausführungsplan.
- current ist das aktuell angeforderte Katalogelement,
sc_req_item. - current.delivery_plan() ist der zugewiesene Ausführungsplan für dieses Katalogelement.
Der aus dem Skript ausgewertete Wert wird als sys_id des Ausführungsplans verwendet.
Einfaches Beispiel:
current.delivery_plan.setDisplayValue('PC Delivery Plan')Wenn ein ungültiger Wert zurückgegeben wird (z. B. nicht definiert oder nicht gefunden), wird der vorhandene zugewiesene Wert verwendet.
Komplexeres Beispiel:
getexecutionplan();
function getexecutionplan() {
var location = current.request.requested_for.location.getDisplayValue();
// if we're in Atlanta
if (location == 'Atlanta') {
// use the remote pc delivery plan instead of the normal one
var remote_plan = new GlideRecord('sc_cat_item_delivery_plan');
remote_plan.addQuery('name', 'Remote PC Delivery Plan');
remote_plan.query();
remote_plan.next();
current.delivery_plan = remote_plan.sys_id;
return remote_plan_sys_id;
}
return current_delivery_plan;
}In diesem Beispiel verwendet ServiceNow jedes Mal, wenn eine Anforderung für einen Benutzer in Atlanta erfolgt, den „Remote PC Delivery Plan“. Andernfalls wird der Ausführungsplan nicht überschrieben und ServiceNow verwendet den normalen Ausführungsplan des Katalogelements, den „PC Delivery Plan“.
Skripts zu Katalogelementen hinzufügen
Sie können einem Katalogelement ein Skript hinzufügen, sodass das Skript jedes Mal ausgeführt wird, wenn ein Benutzer dieses Element anfordert.
Prozedur
Ergebnisse
Ausführungspläne mithilfe eines Skripts genehmigen
Sie können ein Genehmigungsregelskript verwenden, um einen Ausführungsplan zu genehmigen.
Prozedur
- Rufen Sie eine Aufgabe zur Genehmigung des Ausführungsplans ab.
- Sehen Sie sich das Feld Freigabeskript an.
- Füllen Sie ein Genehmigungsskript mit derselben Syntax und denselben Regeln aus, die Sie für eine Genehmigungsregel verwenden würden.
Beispiel
Im nachfolgenden Skript ist der Genehmiger beispielsweise der Manager des Anforderers.