4.4.3. アンケートアプリケーションの業務ロジックの作成¶
4.4.3.1. アンケート情報取得処理の作成¶
4.4.3.1.1. ロジックの作成¶
4.4.3.1.2. 入出力値の設定¶
業務ロジックへの入力値と出力値を設定します。アンケート情報取得処理は、アンケートIDを受け取り、アンケート情報とアンケート設問のデータを1つにまとめて返却します。まず、入力値の設定を行います。画面上部の「入出力設定」をクリックし「入出力設定」ダイアログを表示します。入力値は「アンケートID」のみとするため、文字列の変数を追加します。「入力」 - 「+string」をクリックし、入力値一覧に「string1」を追加します。「string1」を選択した状態で入力値一覧上部の「キー名を変更」をクリックし、キー名を「enqueteId」に変更します。入力値はJSON入力で以下のコードを記載しても設定できます。{ "enqueteId": "" }JSON入力する場合は、入力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。次に、出力値の設定を行います。まずは、設問内容を格納する配列を作成します。「出力」 - 「+object」をクリックすると出力値一覧に「object1」が追加されます。「object1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「records」に変更します。「records」を選択した状態で「配列型にする」にチェックをいれ、「records」を汎用オブジェクトの配列にします。次に、各設問内容の値を格納していくための出力値を「records」配下に追加します。出力値一覧の「records」を選択した状態で「配下に配置する」にチェックを入れます。「出力」 - 「+string」をクリックし、「records」配下に「string1」という変数を追加します。「string1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「enquete_id」に変更します。同様の手順で「records」配下に下記の設定の変数を追加します。次に、アンケート情報テーブルから取得した、「アンケートタイトル」と「アンケート概要」を格納するための出力値を作成します。前記の作業で、配下に変数を追加してきた「records」を選択した状態で「配下に配置する」のチェックを外します。「出力」 - 「+string」をクリックし、出力値一覧に「string1」を追加します。「string1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「enqueteTitle」に変更します。「出力」 - 「+string」をクリックし、出力値一覧に「string1」を追加します。「string1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「enqueteOverview」に変更します。出力値はJSON入力で下記コードを記述して設定できます。{ "records": [ { "enquete_id": "", "question_id": "", "question": "", "left_scale": "", "right_scale": "", "question_no": 0 } ], "enqueteTitle": "", "enqueteOverview": "" }JSON入力する場合は、出力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。全ての出入力設定が完了したら、出入力設定ダイアログの「決定」をクリックし、設定を終了します。
4.4.3.1.3. アンケート情報取得タスクの作成¶
アンケートIDをもとに、アンケート情報テーブルからデータを取得するユーザ定義タスクを作成します。パレットで「ユーザ定義追加」にカーソルを合わせ、「SQL定義新規作成」を選択します。ユーザ定義共通設定を下記の通り設定します。入力値に以下を設定します。クエリに以下のSQLを設定します。
4.4.3.1.4. アンケート設問取得タスクの作成¶
アンケート情報取得タスクと同様にアンケートIDをもとに、アンケート設問テーブルからデータを取得するユーザ定義タスクを作成します。パレットで「ユーザ定義追加」にカーソルを合わせ、「SQL定義新規作成」を選択します。ユーザ定義共通設定を下記の通り設定します。
ラベル 入力値 ユーザ定義ID tutorial_enquete_question_select ユーザ定義名(標準) 【チュートリアル】アンケート設問取得 ユーザカテゴリ 【チュートリアル】チュートリアルガイドカテゴリ 入力値に以下を設定します。
項目 型 キー名 アンケートID string enqueteId クエリに以下のSQLを設定します。
4.4.3.1.5. タスクの配置と変数設定¶
作成した「【チュートリアル】アンケート情報取得」タスクと「【チュートリアル】アンケート設問取得」タスクをフローに配置し、線で繋ぎます。まずは、パレットから「【チュートリアル】チュートリアルガイドカテゴリ」 - 「【チュートリアル】アンケート情報取得」を選択し、「開始」の次のタスクとして配置します。「開始」の「out」からドラッグし、「【チュートリアル】アンケート情報取得」の「in」にドロップしてタスク同士を線で繋げます。アンケートIDの誤り等でアンケート情報が取得できなかった場合、エラーを返却します。パレットから「基本」 - 「分岐」を選択し、「【チュートリアル】アンケート情報取得」タスクの次の要素として配置します。「【チュートリアル】アンケート情報取得」タスクの「out」と「分岐」の「in」を線で繋げます。パレットから「基本」 - 「エラー終了」を選択し、「分岐」の次の要素として配置します。配置した分岐をクリックして選択し、画面の右側領域で「タスク固有設定」-「条件式(EL式)」の「編集」をクリックします。「EL式の編集」ダイアログの右側から「tutorial_enquete_info_select1 > count」を選択します。画面上部のエディタ領域で条件式(EL式)を下記の通りに設定し、「EL式の編集」ダイアログの「決定」をクリックして編集を終了します。「${tutorial_enquete_info_select1.count > 0}」「分岐」の「else」と「エラー終了」の「in」を線で繋げます。「エラー終了」をクリックし、画面の右側領域の「エラーメッセージ」の入力ボックスに「no enquete」と入力します。パレットから「【チュートリアル】チュートリアルガイドカテゴリ」 - 「【チュートリアル】アンケート設問取得」を選択し、「分岐」の次のタスクとして配置します。「分岐」の「then」と「【チュートリアル】アンケート設問取得」の「in」を線で繋げます。「【チュートリアル】アンケート設問取得」の「out」と「終了」の「in」を線で繋げます。ダイアログ左側の入力の「enqueteId」の端子からドラッグし、右側の「tutorial_enquete_info_select1」の「enqueteId」の端子でドロップして線で繋げます。「決定」をクリックしてマッピング設定を終了します。同様に、「【チュートリアル】アンケート設問取得」タスクのマッピング設定を行います。ダイアログ左側の入力の「enqueteId」と右側の「tutorial_enquete_question_select1」の「enqueteId」を線で繋げ、「決定」をクリックしてマッピング設定を終了します。最後に「終了」要素のマッピング設定を行います。「マッピング設定」ダイアログの入力側プルダウンから「エイリアス一覧」 - 「tutorial_enquete_info_select1」を選択し、「+入力を追加」をクリックします。追加した「tutorial_enquete_info_select1」の「enquete_title」と出力の「enqueteTitle」を線で繋げます。同様に「tutorial_enquete_info_select1」の「enquete_overview」と出力の「enqueteOverview」を線で繋げます。次に、入力側プルダウンから「エイリアス一覧」 - 「tutorial_enquete_question_select1」を選択し、「+入力を追加」をクリックします。追加した「tutorial_enquete_question_select1」の「records」と出力の「records」を線で繋げます。ここまでの設定ができたら「決定」をクリックし、マッピング設定を終了します。これでアンケート情報取得処理は作成完了です。「ロジックフロー定義編集」画面上部の「新規保存」をクリックし、「新規保存」ダイアログの各項目を下記の通り入力してください。入力が完了したら「決定」をクリックして、ロジックを登録します。
4.4.3.2. 回答登録処理の作成¶
4.4.3.2.1. ロジックの作成¶
4.4.3.2.2. 入出力値の設定¶
業務ロジックへの入力値と出力値を設定します。アンケート回答登録処理は、アンケートIDとアンケートの回答内容を配列型のデータとして受け取ります。出力値は設定しません。入力値の設定を行うため、画面上部の「入出力設定」をクリックし「入出力設定」ダイアログを表示します。入力値は「アンケートID」と「回答情報」のみなので、文字列の変数を追加します。「入力」 - 「+string」をクリックし、入力値一覧に「string1」を追加します。「string1」を選択した状態で入力値一覧上部の「キー名を変更」をクリックし、キー名を「enqueteId」に変更します。同様に「入力」 - 「+string」をクリックし、入力値一覧に「string1」を追加します。「string1」を選択した状態で入力値一覧上部の「キー名を変更」をクリックし、キー名を「answers」に変更します。追加した「answers」を選択した状態で「配列型にする」にチェックをいれます。ここまでの設定が完了したら、出入力設定ダイアログの「決定」をクリックし、設定を終了します。入力値はJSON入力で以下のコードを記載しても設定できます。{ "enqueteId": "", "answers": [ "" ] }JSON入力する場合は、入力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。アンケート回答登録タスクでは、配列型データとして渡ってくる回答内容を「,(カンマ)」区切で1つの文字列として繋げて登録します。その変換処理に利用するための定数を設定します。画面上部の「定数設定」をクリックして「定数設定」ダイアログを表示し、「+定数を追加」から下記の通り設定します。
ラベル 入力値 定数ID sep 定数値 , 入力が完了したら「決定」をクリックして設定を終了します。
4.4.3.2.3. 回答登録タスクの作成¶
入力内容をもとに、アンケート回答テーブルにデータを登録するユーザ定義タスクを作成します。パレットで「ユーザ定義追加」にカーソルを合わせ、「SQL定義新規作成」を選択します。ユーザ定義共通設定を下記の通り設定します。
ラベル 入力値 ユーザ定義ID tutorial_enquete_answer_insert ユーザ定義名(標準) 【チュートリアル】アンケート回答登録 ユーザカテゴリ 【チュートリアル】チュートリアルガイドカテゴリ 「SQL定義」のクエリ種別のプルダウンから「INSERT」を選択します。「テーブルからクエリを生成する」をクリックし、テーブル検索ダイアログを表示します。テーブル検索ダイアログで「tutorial_enquete_answer_app」を選択し、「クエリ生成」をクリックします。SQL定義編集画面の入力値とクエリにそれぞれ以下の値が自動で設定されていることを確認してください。
入力値
項目 型 キー名 回答ID string answerId アンケートID string enqueteId 回答者 string respondent 回答日時 sqltimestamp answerDate 回答 string answers クエリ
INSERT INTO tutorial_enquete_answer_app (answer_id, enquete_id, respondent, answer_date, answers) VALUES (/*answerId*/null, /*enqueteId*/null, /*respondent*/null, /*answerDate*/null, /*answers*/null)内容を確認出来たら「登録」をクリックし、タスクを登録します。
4.4.3.2.4. タスクの配置と変数設定¶
作成した「【チュートリアル】アンケート回答登録」タスクをフローに配置し、線を繋げます。パレットで「【チュートリアル】チュートリアルガイドカテゴリ」にカーソルを合わせ、「【チュートリアル】アンケート回答登録」を選択します。「【チュートリアル】アンケート回答登録」と「開始」、「終了」のin、outをそれぞれ線で繋げます。要素配置の順番等は以下の図を参考にしてください。「【チュートリアル】アンケート回答登録」タスクをクリックし、画面の右側領域の「マッピング設定」をクリックしてマッピング設定ダイアログを表示します。ダイアログ上部の関数追加プルダウンで「identifier」を選択し、「+関数を追加」をクリックして「identifier」関数を追加します。追加した「identifier」の「out」と「【チュートリアル】アンケート回答登録」の入力値の「answerId」を線で繋げます。入力値の「enqueteId」と「【チュートリアル】アンケート回答登録」の入力値の「enqueteId」を線で繋げます。次に回答内容のデータについて設定していきます。もとは文字列の配列型データである回答をデータベースに登録する際に1つの「文字列」へと変形し、「【チュートリアル】アンケート回答登録」の入力値として扱います。ダイアログ上部の関数追加プルダウンで「文字列操作 > join」を選択し、「+関数を追加」をクリックしてマッピング設定に「join」関数を追加します。入力値の「answers」を「join」関数の「value」に、定数の「sep」を「join」関数の「sep」にそれぞれ繋げます。「join」関数のoutと「【チュートリアル】アンケート回答登録」のanswersを線で繋げます。続けて、回答者と回答日を設定します。回答者はアカウントコンテキストのユーザコードを利用します。「マッピング設定」ダイアログのプルダウンから「アカウントコンテキスト」を選択し、「+入力を追加」を選択します。アカウントコンテキストの「userCd」と「【チュートリアル】アンケート回答登録」の「respondent」を線で繋げます。回答日はセッション情報のシステム日時を利用します。アカウントコンテキストと同様の手順で「マッピング設定」ダイアログのプルダウンから「セッション情報」を選択し、「+入力を追加」を選択します。セッション情報の「systemDate」と「【チュートリアル】アンケート回答登録」の「answerDate」を線で繋げます。ここまでの設定ができたら「決定」をクリックし、マッピング設定を終了します。これでアンケート回答登録処理の作成は終了です。「ロジックフロー定義編集」画面上部の「新規保存」をクリックし、「新規保存」ダイアログの各項目を下記の通り入力してください。入力が完了したら「決定」をクリックして、ロジックを登録します。
4.4.3.3. アンケート回答取得処理の作成¶
4.4.3.3.1. ロジックの作成¶
4.4.3.3.2. 入出力値の設定¶
アンケート回答取得処理の入出力を設定します。業務ロジックへの入力値と出力値を設定します。アンケート回答取得処理は、アンケートIDを受け取り、アンケート回答を配列型データとして返却します。アンケートの回答は1ユーザの回答につき、配列の1データを格納します。また、回答内容についてもカンマ区切りで保持されている文字列の回答を配列に変換して格納します。まずは、入力値の設定を行います。画面上部の「入出力設定」をクリックし「入出力設定」ダイアログを表示します。入力値は「アンケートID」のみとするため、文字列の変数を追加します。「入力」 - 「+string」をクリックし、入力値一覧に「string1」を追加します。「string1」を選択した状態で入力値一覧上部の「キー名を変更」をクリックし、キー名を「enqueteId」に変更します。入力値はJSON入力で以下のコードを記載しても設定できます。{ "enqueteId": "" }JSON入力する場合は、入力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。次に出力値の設定を行います。まずは、設問内容を格納する配列を作成します。「出力」 - 「+object」をクリックすると出力値一覧に「object1」が追加されます。「object1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「records」に変更します。配置した「records」を選択した状態で「配列型にする」にチェックをいれ、「records」を汎用オブジェクトの配列にします。次に、設問内容の値を格納していくための出力値を「records」配下に追加します。出力値一覧の「records」を選択した状態で「配下に配置する」を選択します。「出力」 - 「+string」をクリックし、出力値一覧の「records」配下に、「string1」を追加します。「string1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「answer_id」に変更します。次に、回答を配列型データとして格納する出力値を設定します。「出力」 - 「+string」をクリックし、出力値一覧の「records」配下に、「string1」を追加します。「string1」を選択した状態で出力値一覧上部の「キー名を変更」をクリックし、キー名を「answers」に変更します。「answers」を選択した状態で出力値一覧上部の「配列型にする」にチェックを入れます。同様の手順で「records」配下に下記の設定の変数を追加します。出力値も、JSON入力で下記コードを記述して設定できます。{ "records": [ { "answer_id": "", "enquete_id": "", "respondent": "", "answer_date": null, "answers": [ "" ] } ] }JSON入力する場合は、出力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。全ての出入力設定が完了したら、出入力設定ダイアログの「決定」をクリックし、設定を終了します。アンケート回答取得タスクでは、「,(カンマ)」区切で1つの文字列として取得した回答を配列型データに変換して返却します。その変換処理に利用するための定数を設定します。画面上部の「定数設定」をクリックして「定数設定」ダイアログを表示し、「+定数を追加」から下記の通り設定します。
ラベル 入力値 定数ID sep 定数値 , 入力が完了したら「決定」をクリックして設定を終了します。
4.4.3.3.3. アンケート回答取得タスクの作成¶
アンケートIDをもとに、アンケート回答テーブルからデータを取得するユーザ定義タスクを作成します。パレットで「ユーザ定義追加」にカーソルを合わせ、「SQL定義新規作成」を選択します。ユーザ定義共通設定を下記の通り設定します。
ラベル 入力値 ユーザ定義ID tutorial_enquete_answer_select ユーザ定義名(標準) 【チュートリアル】アンケート回答取得 ユーザカテゴリ 【チュートリアル】チュートリアルガイドカテゴリ 入力値に以下を設定します。
項目 型 キー名 アンケートID string enqueteId クエリに以下のSQLを設定します。SELECT * FROM tutorial_enquete_answer_app WHERE enquete_id = /*enqueteId*/'dummyId'クエリ設定上部にある「データ定義を取得する」をクリックし、タスクの出力値を設定します。「登録」をクリックし、タスクを登録します。
4.4.3.3.4. タスクの配置と変数設定¶
作成した「【チュートリアル】アンケート回答取得」タスクをフローに配置し、線を繋げます。パレットで「【チュートリアル】チュートリアルガイドカテゴリ」 - 「【チュートリアル】アンケート回答取得」を選択します。配置した「【チュートリアル】アンケート回答取得」と「開始」、「終了」のin、outをそれぞれ線で繋げます。配置した「【チュートリアル】アンケート回答取得」タスクをクリックし、画面の右側領域の「マッピング設定」をクリックしてマッピング設定ダイアログを表示します。入力値の「enqueteId」と「【チュートリアル】アンケート回答取得」の入力値の「enqueteId」を線で繋げます。設定が完了したら「決定」をクリックし、マッピング設定を終了します。続いて、返却値の設定を行います。「終了」をクリックし、画面の右側領域の「マッピング設定」をクリックしてマッピング設定ダイアログを表示します。マッピング設定の上部で「tutorial_enquete_answer_select1」を選択し、「+入力を追加」をクリックします。「tutorial_enquete_answer_select1」の「records」と出力の「records」を線で繋げます。次に、回答を線で繋げます。回答は「tutorial_enquete_answer_select1」でカンマ区切りの文字列データとして渡ってきますが、タスクの出力値としては配列型データとして返却するため、データの変換も行います。画面上部の関数追加プルダウンで「文字列操作 > split」を選択し、「+関数を追加」をクリックしてマッピング設定に「split」関数を追加します。入力値の「answers」を「split」関数の「value」に、定数の「sep」を「split」関数の「sep」にそれぞれ繋げます。「split」関数のoutと「出力値」のanswersを線で繋げます。「決定」をクリックし、マッピング設定を終了します。これでアンケート回答取得処理の作成は終了です。「ロジックフロー定義編集」画面上部の「新規保存」をクリックし、「新規保存」ダイアログの各項目を下記の通り入力してください。入力が完了したら「決定」をクリックして、ロジックを登録します。