Skriptfähige Zuweisung von Ausführungsplänen
Jedem Katalogelement ist ein Ausführungsplan zugeordnet, der immer verwendet wird, wenn ein Element dieses Typs bestellt wird. Wenn kein Plan angegeben ist, wird der Standardplan verwendet. Dieser Standard ist für die meisten Organisationen wirksam, Ihr Ausführungsplan muss jedoch möglicherweise basierend auf zusätzlichen Kriterien variieren.
Beispielsweise verwendet eine Anforderung für einen neuen PC im Servicekatalog des Basissystems immer den PC-Bereitstellungsplan. Dieser Plan muss jedoch unter ungewöhnlichen Umständen variieren, z. B. wenn eine anfordernde Person von zu Hause aus an einem Remote-Standort arbeitet.
Um diese Flexibilität zu bieten, können Sie ein Skript verwenden, um den Standardausführungsplan für ein bestimmtes Katalogelement zu überschreiben.
Einschränkungen während der Skriptausführung
Ausführungsplan-Skripts haben Einschränkungen, die bei ihrer Implementierung berücksichtigt werden müssen.
Während das Ausführungsplan-Skript ausgeführt wird:
- Sie können nicht mit Katalogaufgaben interagieren, da Katalogaufgaben erst erstellt werden, nachdem der Ausführungsplan ausgewählt wurde.
- Einige Felder wie Gesamtlieferzeit Und Fälligkeitsdatum Sind noch nicht berechnet, obwohl die Anforderung selbst im Skript über verfügbar ist Aktuell.Anforderung() .
- Genehmigungen wurden noch nicht generiert.
Skripts werden geschrieben
Befolgen Sie diese Richtlinien beim Schreiben von Ausführungsplan-Skripts.
Ausführungsplan-Skripts können auf dieselben globalen Variablen und andere Funktionen wie in jedem anderen serverseitigen Ausführungsplan zugreifen.
- Aktuell Ist das derzeit angeforderte Katalogelement,
sc_req_item. - current.delivery_plan() Ist der zugewiesene Ausführungsplan für dieses Katalogelement.
Der ausgewertete Wert aus dem Skript wird als verwendet sys_ID Des Ausführungsplans.
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 wird jedes Mal, wenn eine Anforderung für einen Anwender in Atlanta gilt, ServiceNowVerwendet den Remote-PC-Bereitstellungsplan. Andernfalls wird der Ausführungsplan und nicht überschrieben ServiceNowVerwendet den normalen Ausführungsplan des Katalogelements, den PC-Bereitstellungsplan.
Fügen Sie einem Katalogelement ein Skript hinzu
Sie können einem Katalogelement ein Skript hinzufügen, damit das Skript jedes Mal ausgeführt wird, wenn ein Anwender dieses Element anfordert.
Prozedur
Ergebnisse
Verwenden Sie ein Skript, um einen Ausführungsplan zu genehmigen
Sie können ein Genehmigungsregelskript verwenden, um einen Ausführungsplan zu genehmigen.
Prozedur
- Ruft eine Aufgabe für den Genehmigungsausführungsplan ab.
- Zeigen Sie an Genehmigungsskript Feld.
- Füllen Sie ein Genehmigungsskript mit derselben Syntax und denselben Regeln aus, die Sie für eine Genehmigungsregel verwenden würden.
Beispiel
Im folgenden Skript ist beispielsweise der Manager der anfordernden Person der Genehmiger.