- 結論から言うとGlideRecordはテーブルのレコード情報を持つオブジェクトなので、カラムの値を返す
glideRecord.column
はcolumn
のデータ型に依存する
- この辺はまあ当たり前なのだが、
glideRecord.loginTime(String)
とか平気でされるので、
ハマりポイントになりがち。ORM系のAPI全般でSNowに限った話ではないけど
- ただSNowはTableに
Reference
という独自の型を持つ
- この
Reference
もオブジェクトとして扱われ、テーブルの依存関係(SNowは一方向)や外部キーが持つ情報をオブジェクト化したもので、ドット演算子を用いて参照先のテーブルのカラムも取得可能(これがDot-Warkができる理由)
- そのため、
GlideRecord.refA.columnA
みたいな書き方も可能
- Reterence(Dot-Walk)の性質上、跨ぐテーブルに上限は(おそらく)ないため、
Scriptとして記載されると、じゃあ返り値の型はなんなのかと曖昧になりバグの温床になる
- しかもTable上は
sys_id
というランダムなハッシュ値を持つのでこいつを返すと勘違いしがち
var inc = new GlideRecord('incident');
inc.addQuery('user', 'John Doe');
inc.query();
inc.next();
inc.userName
inc.userID
inc.userID.userRole
inc.sys_id