1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ServiceNowのCreated(sys_created_on)に任意の時間を設定する

Last updated at Posted at 2025-02-11

Version: WasigntonDC

試したのはCreated(sys_created_on)だけですが同じ手段で他のSystem Field(sys_created_by, sys_updated_on, sys_updated_by)にも値は入れられるのではと思います

動機

100日前に作成されたユーザーをinActiveにするといった処理をテストするとして

ユーザーテーブルの作成日(sys_user.sys_created_on)に100日前(任意)の時間を入れられないかと考えました

作ったもの

ここのCommunityのScriptを

[Can i update sys_created_on field value ]
https://www.servicenow.com/community/developer-forum/can-i-update-sys-created-on-field-value/td-p/1380126

少し修正して以下にしましたATFのStepなどで汎用的に使えるように実行した時間の100日前の値を設定するようにしていますupdate()は事故防止でコメントにしていますので必要に応じて外して使ってください肝はupdate()の行の上2つの行で自動でSystem Fieldに値が設定されないようにしてその他のBusiness Ruleが動かない設定にしています

var gdt = new GlideDateTime();
gdt.addDays(-100); // 100 days ago !!!!
gs.info("******** Let's get party started!!! " + gdt.getDate());

var gr = new GlideRecord("sys_user");
gr.addQuery('user_nameLIKEマグロ');
gr.query();
while (gr.next()){
  gs.info(gr.name + " before:" +  gr.sys_created_on);
  gr.sys_created_on = gdt;
  gr.autoSysFields(false); // Do not update sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by, and sys_created_on
  gr.setWorkflow(false); // Do not run any other business rules
//  gr.update(); // ******** if u need, uncomment ********
  gs.info(gr.name + " after:" +  gr.sys_created_on);
}

実行結果

Scripts - Backgroundで上記Scriptを実行します

User IDにマグロを含むユーザー7人のCreatedを

image.png

100日前にしました

image.png

XMLのExport/Importでもできた

更新対象のユーザーのレコードをXMLでExportしてテキストエディタでsys_created_onの値を編集してImportしても出来ました毎回決まった時間に戻したいときはXMLを使ってもいいかもです

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?