ステートレスなフォーム

概要

新しいフォームを作成する際、SkyDesk Creatorは、[データはSkyDesk クリエーターに保存されます]のオプションがデフォルトで選択されています。この選択を解除すると、ステートレスなフォームとしてフォームが作成されます。標準フォームと異なり、このフォームはデフォルトで[送信]や[リセット]ボタンがありません。代わりに、記述したDelugeスクリプトに基づき、クリック時に自動化したタスクを実行することができる(スクリプト可能な)カスタムボタンを追加することができます。入力したデータは、挿入されたレコードとして、自動的にテーブルに追加されません。これが、SkyDesk Creatorのレポートやレコード、項目へ入力されたデータの格納に柔軟性を与えます。SkyDesk Creatorのレポートやレコード、項目からのデータの取得にも使用できます。ステートレスなフォームの基本的な利用方法は、以下になります。

  • Webフォームの作成: ステートレスなフォームは、Webサイトに組み込まれたWebフォームとして動作します。このフォームのデータは、 どのサービスへも送信可能で、また、SkyDesk Creatorにデータを持たない他のフォームやアプリケーションのレコードの更新に使用されます。Deluge Get URLPost URLタスクは、外部のサイトや、SkyDesk Creatorにある他のアプリからのデータの取得や投稿に使用されます。
  • 1つのレポート内でデータを更新する複数のフォームの作成: ステートレスなフォームは、特定のレポートと接続しないように定義されますので、特定のレポート内の項目の各サブセットとは異なるステートレスなフォームを作成できます。例えば、1つのステートレスなフォームを[技術者]の役割に、別のステートレスなフォームを[マネージャー]の役割に作成して、各役割にそれを共有します。しかし、同じメインレポートにあるすべてのステートレスなフォームから送信されたデータが格納されます。これは、自分たちが割り当てられたタスクを実行するために、レコードの他の項目にアクセスすることなく、組織内の異なるユーザーが異なるステートレスなフォームを利用することが可能になります。
  • リアルタイムアプリのためのユーザー設定ダイアログの作成: ステートレスなフォームを作成して、1つのフォームにあるアプリのすべてのプロパティのカスタマイズをユーザーに許可します。例えば、設定リンクをアプリに追加して、現在のサインインユーザーのレコードを取得します。そして、ステートレスなフォームの読込時の値を設定します。ユーザーは、自分の設定を編集して、フォームを送信できます。このフォームは、メインフォームのレコードを更新します。
  • 他のフォームからの情報の取得と表示: ステートレスなフォームを作成して、他のSkyDesk Creatorのフォームや、他のサービスから、フォームの入力に基づいて情報を取得、表示します。例えば、仕事の順序のステータスを表示するアプリに[Status form]があると仮定します。ユーザーが自分の仕事の順番を入力して、フォームのボタンをクリックすると、ステータスが表示されます。この場合、フォームのデータを格納する必要はありません。Status フォームを作成して、Note 項目にステータスを表示するためのクリック時のフォームのアクションを記述します。
  • 動的なHTMLページの生成:ページへパラメーターとしてフォームのデータを渡すことによって、動的なHTMLビューを生成するステートレスなフォームを作成します。例えば、連絡先管理アプリから、レコードを表示する検索条件を指定して、特定の期間に存在するレコードを表示する月と年を指定します。
  • メール送信の実行: メールの送信のような、フォームボタンのクリック時にDelugeタスクを実行するためのステートレスなフォームを作成します。クリック時フォームアクションに加えて、ユーザー入力時項目のアクションスクリプトも実行できます。

 ステートレスなフォームの作成

ステートレスなフォームを作成するには、

  1. アプリケーションのホームページから[新しく作成]-[フォーム]オプションをクリックします。 
  2. 新しいフォームダイアログで、フォーム名を指定します。 
  3. [データはSkyDesk Creatorに保存されます]の選択を外し、[作成]をクリックして、ステートレスなフォームを作成します。
  4. フォームで対象の項目をドラッグ&ドロップします。
  5. (+) リンクを使って、項目のプロパティでボタン名と種類を指定し、[カスタム]ボタンをフォームに追加します。
    • カスタムボタン: ボタンをクリックすると、ボタンの[クリック時]アクションが呼び出されます。詳細についてはポイント6を参照してください。
    • 送信ボタン: ボタンをクリック、または[Enter]キーを押すと、ボタンの[クリック時]アクションが呼び出されます。詳細についてはポイント6を参照してください。
    • リセットボタン: マウスをクリックすると、フォームが初期状態に戻ります。[クリック時]アクションは、リセットボタンには設定されません
  6. フォームボタンをクリックしてアクションを実行するには、ワークフローで、対象の(自動化タスクを実行する)Delugeスクリプトをフォームのアクション -> フォームのボタン名 -> クリック時に追加します。例えば、[追加]という名前のカスタムボタンを追加する場合、 ワークフロー -> フォーム -> 追加 -> クリック時にDelugeスクリプトを記述します。
  7. [スクリプトの保存]をクリックして、スクリプトを更新します。
  8. [このアプリケーションにアクセス]をクリックして、ステートレスなフォームにデータを入力します。フォームボタンのクリックによって、 [追加時]ブロックに追加されたスクリプトが実行されます。

 標準フォームからステートレスなフォームへ変換

既存のSkyDesk Creatorのフォームは、ステートレスなフォームに変換可能です。詳細は、こちらのリンクを参照してください。

 実例

名前、住所、携帯の番号、メールアドレスなど連絡先の情報を格納するための[連絡先]フォームがあると仮定します。また、指定した[メールアドレス]を元に、表示データを連絡先フォームから取得するステートレスなフォームがあるとします。取得したデータは編集したり、送信したり、連絡先のレポート内で更新したりすることができます。

  1. 名前、住所、携帯の番号、メールアドレスの項目の種類がある連絡先フォームを作成します。
  2. 下記の図のように、連絡先フォームに検索項目として、[Email Id]を持つステートレスなフォームを作成します。
  3. 選択したメールアドレスを元に連絡先フォームから対象のレコードを取得するには、以下のスクリプトを ワークフロー -> 項目アクション - > Email_id -> ユーザーの入力時の下に追加します。
    record  =  Contacts  [ID == input.Email_id];            // Contactsはフォームのリンク名
    input.Address = record.Address;                         // Addressは項目のDeluge名
    input.Mobile_Number = record.Mobile_Number;             // Mobile_Numberは項目のDelege名
    input.Name = record.Name;                              // Nameは項目のDelege名
  4. [Email id]が選択されていると、下記のように関連のレコードが連絡先フォームから取得され、[ステートレスな]フォームに表示されます。
  5. レコードを対象の値でアップデートし、[更新]をクリックします。更新された値は[連絡先]フォームの中でアップデートされます。これはワークフロー -> フォームアクション -> 更新 -> クリック時の下に以下のスクリプトを記述することで実施されます。
    record  =  Contacts  [ID == input.Email_id];            // Contactsはフォームのリンク名
    record.Name = input.Name;                               // Nameは項目のDelege名
    record.Address = input.Address;                         // Addressは項目のDelege
    record.Mobile_Number = input.Mobile_Number;            // Mobile_Numberは項目のDelege名

 関連リンク