スクリプトテンプレート
JavaScript を使用して、アクティブなテンプレートをレコードに適用できます。
テンプレートを current に適用する
テンプレートを適用するには、applyTemplate メソッドを使用します。current.applyTemplate("<templatename>");
テンプレートを GlideRecord に適用する
current 以外のレコードにテンプレートを適用するには、current を GlideRecord 変数に変更します。GlideRecord 変数を使用する場合は、変数を宣言した後に初期化する必要があります。
var rec1 = new GlideRecord("incident");
rec1.initialize();
rec1.applyTemplate("my_incident_template");
UI アクションからテンプレートを適用する
次のスクリプトは、問題フォームの Create Change UI アクションをカスタマイズできる方法を示しています。このスクリプトを UI アクションに追加した後で、ユーザーは UI アクションを選択し、問題レコードと変更テンプレートの両方の情報を使用して変更レコードを作成できます。var change = new GlideRecord("change_request");
change.initialize();
change.short_description = current.short_description;
change.description = current.u_details;
change.cmdb_ci = current.u_service;
change.priority = current.priority;
change.requested_by = current.caller_id;
change.assignment_group.setDisplayValue('Change & Release');
change.u_status = 'New';
change.parent = current.number;
if(0 == change.applyTemplate("standard_rfc")) {
current.rfc = change.insert();
current.comments = 'Change ' + change.number + ' created.';
}
var mySysID = current.update();
gs.addInfoMessage("Change " + change.number + " created");
action.setRedirectURL(change);
action.setReturnURL(current);
子テンプレートを使用してテンプレートのスクリプトを作成する
1 つ以上の子テンプレートを持つテンプレートで applyTemplate を使用する場合、システムは子テンプレートを適用する前に親レコードを作成します。この動作により、子レコードから親への参照またはドット連結フィールドが有効なターゲットを持つことが保証されます。
たとえば、変更要求テーブルのテンプレートに変更タスクテーブルの子テンプレートがある場合、変更要求テンプレートを適用すると、データベースに変更要求レコードが挿入されます。このレコードを変更タスクレコードの変更要求として割り当て、子テンプレートを変更タスクレコードに適用します。
名前の代わりに sys_id を使用したテンプレートの適用
sys_id を使用してテンプレートを適用するには、次の方法を使用します。
GlideTemplate.get(template.sys_id).apply(GlideRecord)