はじめに
こんかいの実装は少しニッチかもしれません。
今回の記事ではプリザンターのテーブル上でレコード内の分類項目にユーザーIDを入力したら、自動でユーザー情報を同レコードに転記するという内容です。
設定
存在しているユーザーを対象にしています。
分類DにユーザーIDを入力し、フォーカスが外れたときに同レコードの分類EにログインID、タイトルに名前、分類Fに組織コード、分類Gにメールアドレスを転記します。
ソースコード
try {
// マスターテーブルのサイトID
let siteId = XXXX;
// 「ClassD」(=ユーザーID)項目のフォーカスが外れた際の処理
if (context.Forms.ControlId() === 'Results_ClassD') {
// 「ClassD」に入力されたIDをもとにユーザー情報を取得
const user = users.Get(parseInt(model.ClassD));
// ユーザー情報が存在した際の処理
if (user) {
// JSON形式で「ClassD」に入力された値を指定
let data = {
View: {
ColumnFilterHash: {
ClassD: '' + model.ClassD + ''
}
}
};
// サイトから入力されたユーザーIDをもとにレコードを特定
let results = items.Get(siteId, JSON.stringify(data))
// 取得した数分処理を反復
for (let result of results) {
// 「ClassE」にログインIDを設定
model.ClassE = result.ClassE;
// 「Title」に名前を設定
model.Title = result.Title;
// 「ClassF」に組織コードを設定
model.ClassF = result.ClassF
// 「ClassG」にメールアドレスを設定
model.ClassG = result.ClassG
}
}
}
} catch (e) {
context.Log(e.stack);
}
解説
今後のナレッジとしては下記の条件式です。
context.Forms.ControlId() === 'Results_ClassD'
これによって、サーバースクリプトでクライアントスクリプトのような実装ができることを知りました。今回の実装ではこちらのみが真新しい技術です。
最後に
今までの記事では(個人的に)真新しい内容が中心でした。これからは既存知識+ α や既存知識の応用の内容が主たる内容になるかと思います。個人としてのナレッジの蓄積と会社としてのナレッジの蓄積、そして誰かの役に立てばという思いで記事を投稿していこうと思っていますので、よろしくお願いいたします。