Deluge 文>データアクセス>レコードの取得(Fetch Records)
解説
フォームは、Zoho Creator 内にデータを有する構造体です。
フォームデータは、リレーショナルデータベースに保存され、Deluge スクリプトは、これらのデータへのアクセスのために、集合変数 と呼ばれる簡単な wrapper (プログラムの返り値を別のプログラムに渡すためのプログラム)を提供します。
データベース内へのフォームデータの保存前に実行される、送信時(on submit) スクリプトとは違い、 完了時(on success)とユーザ入力時(on user input) アクションは、保存されたデータ上で実行されます。
データへのアクセスには、集合変数が必要になります。集合変数は、別フォームからの取得(参照)した1つ以上のレコードを持ちます。
今、送信/保存 されたフィールド値へアクセスするには、Deluge スクリプトが、自動的に input と呼ばれる変数を初期化し、完了時(on success)とユーザ入力時(on user input)関数に渡します。
今、送信/保存 されているフィールド値にアクセスするには、渡された 'input' 変数を利用する必要があります。
構文
ここで、
使用例① - フリー スクリプトを利用する場合
ここでは、問題管理アプリケーション というサンプルアプリケーションをご紹介します。別フォームからのデータが、取得・利用される様子を示しています。
このアプリには、2つのフォームがあります。
form team_member { name ( type = text ) mailid ( type = email ) }
|
form post_issue { id ( type = number ) issue_title description ( type = textarea )
submitted_by
submitted_date ( type = date ) priority ( type = radiobuttons values = {v.high, high, medium, low} ) assigned_to ( type = picklist values = team_member.name ) status ( type = radiobutton values = {open, in progress, closed, suspended} on user input { tm = team_member[name == input.assigned_to]; sendmail [ To : tm.mailid Subject : "status of the issue " + input.id + " modified to " + input.status Message : input.description ] } ) }
|
issue (問題)のステータスが修正されると、イシューが割り振られているチームメンバーに、issue description (問題の内容)の書かれたメールが送信されます。
コードの説明
post_issue フォームには、issue (問題)の詳細があります。フィールドの1つは、team_member フォームからのチームメンバー名の参照です。
チームメンバーの全詳細は、team_member フォームにあります。
両フォーム間には参照フィールドがあり、両フォームは関連しています。
team_member
フォームから、post_issue
フォームの assigned_to フィールドで入力されたメンバー名に対して、チームメンバーの詳細を取得(参照)することが可能です。
フォーム内のフィールドは、ビューにて列として参照されます。
input というキーワードに注意してください。
ビュー内のすべての列は、input というキーワードを利用して、参照されなければなりません。
ここで、Deluge スクリプトが、自動で 'input' とよばれるビュー変数を初期化します。
tm = team_member [name == input.assigned_to];
ここでは、tm は、team_member ビューで、特定のissue (問題)が割り当てられたチームメンバーに対応するレコードを持ちます。
on user input { tm = team_member[name == input.assigned_to]; sendmail [ To : tm.mailid Subject : "status of the issue " + input.id + " modified to " + input.status Message : input.description ] }
|
ユーザは、tm ビューを利用したチームメンバーフォームに関する全データにアクセスできます。
tm.mailid - チームメンバーのメールアドレス
input.status - issue (問題)のステータス
input.description - issue (問題)の説明
|
注意: フォーム内のフィールドは、ビュー内で列として参照されます。 ビュー内の全列は、input
キーワードを利用して、参照されなければなりません。Deluge スクリプトが、'input' と呼ばれるビュー変数を初期化します。
|
使用例② - スクリプトビルダーを利用する場合
詳細は、Deluge 文>データアクセス>レコードの更新(Update Records)>使用例② - スクリプトビルダーを利用する場合 をご参照下さい。