Data Serviceにてこんな感じでエンティティを作ったとします。
- エンティティ名:社員別勤怠情報(AttendanceInfo)
- 主キー:社員番号(EmployeeNum)
Appsでエンティティのデータを作成し、その作成したデータに対して更新をかけたいとき、どうしたらええんや??ってなったので備忘録として残しておきます。
データは↓のような感じで入っているとします。
社員番号:10000のデータに対して更新をかけることにしましょう。
App Studioで作成中のアプリの編集画面 > 任意のコントロールからイベントルール設定画面へ
ルール一覧から値を設定を選択
社員番号:10000のデータを格納するための変数を作成する。
任意の変数名(Listと分かる名前が良い)をつけ、型はListSource / * AttendanceInfo
社員別勤怠情報(AttendanceInfo)のリストを格納する変数を作るというわけですね。
値の入力欄右のアイコンをクリックすると、クエリビルダーというよく分からぬメニューが出てくるのでクリックします。
画面上部のプルダウンからはデータ検索対象のエンティティを選択できます。迷わず社員別勤怠情報(AttendanceInfo)を選択。
そのすぐ下で検索条件を入力します。
つまりクエリビルダーとは、エンティティからデータ検索するための条件を分かりやすく設定するための機能なんですね。
今回は社員番号(EmployeeNum)=10000
という条件に合致するデータを引っ張り出すことにします。
条件を保存してクエリビルダーを閉じると、値の欄に何やら長い関数っぽいものが入っていることが分かります。クエリビルダーを使わずにこんな式を手打ちで入れるのは不可能ですね。おとなしくクエリビルダーを使いましょう^^;
値を設定ルールを定義した後は、エンティティレコードを更新ルールを定義していきます。
レコードを更新するエンティティを選択します。今回は社員別勤怠情報(AttendanceInfo)です。
その下の欄、エンティティレコードID??ん???ってなると思いますw
社員別勤怠情報(AttendanceInfo)のデータのキャプチャを改めて見てもらいたいのですが、一番左にIdというフィールドがあったかと思います。アレです。
主キーとは別に、データを一意に特定するためのIdを各データごとに持っているというわけですね。
このIdを取る方法は色々あるのですが、今回はList_empに格納されているデータが1件になる前提で、List_emp.data.First.Idと入力しておきましょう。
List_empのデータリストのうち、一番最初のデータのIdという意味になります。
あとは更新したいフィールドの値を設定して終わりです。
- 社員別勤怠情報(AttendanceInfo)のリストを格納する変数を作る
- クエリビルダーでデータ検索条件を定義する
- エンティティレコードIDの取り方を定義する
部分がつまづきやすいポイントかなと思います。