Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

autoSysFieldsメソッドの使用とその影響について

Fagi
Tera Contributor

コミュニティの皆様へ

いつもお世話になっております。

以下の項目をインポートに使用する、CSVファイルの値で更新したいと考えております。

・sys_created_by

・sys_updated_on

・sys_created_on

 

トランスフォームスクリプト(onComplete)でautoSysFieldメソッドを使用して、CSVファイルの値で上記の項目を更新したいと考えておりますが、以下の点が気になっております。

・onCompleteでobject.autoSysField(false)が実行後は、autoSysField(true)を実行しない限り、objectに指定したテー 

 ブルのsysフィールドは自動更新は無効な状態が続くのでしょうか?

 

・objectは構成アイテムテーブルを継承した子テーブルですが、親テーブルにあたる構成アイテムテーブルや他の 

 子テーブルなどに影響はありませんでしょうか?

3 REPLIES 3

iwai
Giga Sage
  • 質問:onCompleteでobject.autoSysField(false)が実行後は、autoSysField(true)を実行しない限り、objectに指定したテーブルのsysフィールドは自動更新は無効な状態が続くのでしょうか?
    • 回答:影響範囲はobject変数だけです。その変数を使っていない個所は影響を受けません。object変数を参照して使いまわしている場合はそれらの変数でも影響を受けます。トランスフォームスクリプトでもsourceやtargetをインポートの処理中は使いまわしているかもしれません。
  • 質問:objectは構成アイテムテーブルを継承した子テーブルですが、親テーブルにあたる構成アイテムテーブルや他の子テーブルなどに影響はありませんでしょうか?
    • 回答:影響範囲はobject変数だけなので、親テーブルや子テーブルを別変数で処理しているのであれば影響はありません。

 

Fagi
Tera Contributor

iwai さん

ご回答ありがとうございます。

autoSysFieldsメソッドでsysフィールドの自動更新が無効になるのは、autoSysFiedsメソッドを使用した直後のみという認識でよろしいでしょうか?

sysフィールドの自動更新が無効か有効かは変数だけの問題です。直後という問題ではないです。

GlideRecordの gr1とgr2変数を作成してそれぞれ同じテーブルで作成して、gr1だけautoSysFields falseを設定したら、gr1だけ影響を受けて、gr2は普通の動作です。一緒に処理してもgr2は普通の動作です。その後 gr1だけautoSysFields true に設定しておけばgr1 も 普通の動作になります。autoSysFields trueに永遠設定しなくてもgr1以外は、どの処理も普通の処理です。gr1は ひとつの処理を抜けたら 変数は解放されます。また次回gr1を宣言して使うときは、設定値は初期値になるので、autoSysFields falseを設定しない限り普通の動作です。