2018-12-04スプレッドシートのJsonデータとバインディングデータは、Formaヘッダーテーブルにバイナリカラムで格納されます。Formaヘッダーテーブルに格納されたスプレッドシートデータは、登録データ情報管理APIやLogicDesignerのユーザ定義タスク「Forma登録情報」で取得できます。バイナリカラムに登録するため、直接SQLでスプレッドシートデータを扱うことはできません。このCookBookでは、スプレッドシートのバインディングデータを別途テーブルに出力する方法について紹介します。別テーブルに登録することで、スプレッドシート上の任意のカラムデータがSQLで操作することができます。サンプルのフローを承認します。案件終了処理で、スプレッドシートのバインディングデータが、テーブルに出力されます。完成サンプル以下の完成サンプルをダウンロードしてご活用ください。Winterの環境を利用して作成したものです。Winterに追加された機能の為、より前のバージョンでは動作しません。im_cookbook_152072_lump_bis.zipBISの一括インポート機能からインポートしてください。サンプルのフローが登録されます。手順の詳細は以下のドキュメントをご覧ください。im_cookbook_152072_logicdesigner.zipIM-LogicDesignerのインポート機能からインポートしてください。ロジックフローが登録されます。手順の詳細は以下のドキュメントをご覧ください。」の手順で、データを格納するためのテーブルを作成します。完成サンプルをご利用の際は、テナント環境セットアップでサンプルデータのインポートを行い、利用するユーザのロールに「BIS担当者」を設定してください。レシピBISワークフローを作成する。SQL定義を作成する。Forma登録情報定義を作成する。ロジックフローを作成する。ユーザプログラムの案件終了処理を設定する。BISワークフローを作成する。申請と承認ができるBISワークフローを作成します。BIS名152072_Cookbook画面アイテム「スプレッドシート」と「ボタン(登録)」を配置してください。「スプレッドシート」のプロパティからワークブックエディタを開き、以下をインポートします。152072_Cookbook.xlsx配置した画面上のスプレッドシートのスクロールを制御するには、ワークブックエディタの設定⇒スクロールバーで行えます。今回は、不要なスクロールを防ぐために、「最終行・列に合わせてバーを表示」にチェックを入れます。次に、データのバインディングを行います。詳細設定タブに移動しバインディング設定にチェックを入れ、フィールド定義タブが選択できるようになります。スプレッドシート上のセルを選択し、「選択中のセルを追加」をクリックすることでバインディングを行うことができます。今回は以下の通りです。文字列テーブル定義タブのに移動し、テーブル1が選択された状態で、「定義を設定」をクリックします。続いて、以下のように設定します。バインディングデータを格納するテーブルを作成します。テナント管理⇒データベース操作を選択し、以下のSQLを実行します。PostgreSQL向けに作成しています。他DBご利用の場合、適切な状態に変更してご利用ください。SQL定義を作成する。テーブルにデータをインサートする為のIM-LogicDesignerユーザ定義を作成します。」で作成した二つのテーブル向けに、一つずつ作成します。サイトマップ⇒LogicDesigner⇒ユーザ定義⇒SQL定義新規作成を選択します。」で作成したテーブルを選択することで自動的にフィールドが埋まります。Forma登録情報定義を作成する。バインディングデータを取得する為のIM-LogicDesignerユーザ定義を作成します。BISワークフローを作成する。」で作成したBISワークフローを選択します。返却値にバインディングデータが表示されることを確認します。ロジックフローを作成する。SQL定義を作成する。Forma登録情報定義を作成する。」で作成したユーザ定義を組み合わせたロジックフローを作成します。SampleIM-LogicDesignerで、以下のようにアイテムを配置します。入出力設定の入力には以下を設定します。userDataId出力には以下を設定します。mailSendFlagマッピング設定では、以下のようにマッピングを行います。Forma登録情報定義を作成する。」で作成した「152072_Cookbook_GET」は以下の通りです。登録データIDは、入出力設定の入力で設定したuserDataIdをマッピングします。SQL定義を作成する。」で作成した「152072_Cookbook_SQL_USER」は以下の通りです。「152072_Cookbook_GET」から同名の項目を「152072_Cookbook_SQL_USER」にマッピングします。SQL定義を作成する。」で作成した「152072_Cookbook_SQL_EXPENSE」は以下の通りです。配列を扱うため、「繰り返し開始」と「繰り返し終了」のタスクを利用します。※今回は説明簡素化のため、明細行の行数分の繰り返しを行い、入力されていない行のデータも出力されます。「繰り返し開始」の繰り返し対象を設定します。明細行の「transport_expense_table」の配列を指定します。以下の項目から「152072_Cookbook_SQL_EXPENSE」にマッピングします。ユーザ情報を「152072_Cookbook_GET」から明細情報を「繰り返し開始」から終了タスクは以下の通りです。今回は、メール送信を利用しないので、定数設定に「false」を設定した定数を用意し、終了タスクの出力、mailSendFlagとerrorにマッピングします。ユーザプログラムの案件終了処理を設定する。ロジックフローを作成する。」で作成したロジックフローのリソース設定画面を開きます。BISワークフローを作成する。」作成したワークフローのユーザプログラムタブを開きます。新規作成で以下のように設定します。ロジックフローを作成する。」で作成したロジックフローを選択します。1以上でスプレッドシートのバインディングデータを別途テーブルに出力する準備が整いました。「152072_Cookbook」フローの承認を行い、入力されたデータがテーブルに出力されていることが確認できます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。アクション設定の「条件」の書き方このCookbookでは、アクション設定の条件式の書き方を説明します。この方法により入力値に応じてアクション設定の外部連携や入力モード変換などのイベントの実行をコントロールすることができます。ブログについて紹介したいと思います。関する様々な記事が投稿されています。投稿種別を追加する方法について紹介しています。投稿種別を追加することができます。使用して、3桁区切りの数値フォーマットを自動で行うテキストボックスを作成する方法を紹介します。リリースした「ファイルアップロード」エレメントの利用方法について説明していきます。アップデート版をリリースしました。アップデート版をリリースしました。アップデート版をリリースしました。パッチをリリースしました。パッチをリリースしました。パッチをリリースしました。アップデートしました。アップデートしました。アップデートしました。