4.4.3. アンケートアプリケーションの業務ロジックの作成¶
4.4.3.1. アンケート情報取得処理の作成¶
4.4.3.1.1. ロジックの作成¶
4.4.3.1.2. 入出力値の設定¶
業務ロジックへの入力値と出力値を設定します。アンケート情報取得処理は、アンケートIDを受け取り、アンケート情報と設問を一つにまとめて返却します。まずは、入力値の設定を行います。画面上部の「入出力設定」をクリックし「入出力設定」ダイアログを表示します。入力値は「アンケートID」のみとするため、文字列の変数を追加します。「入力」 - 「+string」をクリックすると入力値一覧に「string1」が追加されます。入力値一覧の「キー名を変更」をクリックし、キー名を「enqueteId」と設定してください。入力値はJSON入力で以下を記載しても設定できます。{ "enqueteId": "" }JSON入力する場合は、入力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。次に、出力値の設定を行います。まずは、設問内容を格納する配列を作成します。「出力」 - 「+object」をクリックすると出力値一覧に「object1」が追加されます。追加された「object1」を選択し、「キー名を変更」をクリック、キー名を「records」と変更します。配置した「records」を選択し、「配列型にする」を選択し、「records」を汎用オブジェクトの配列とします。次に、設問内容の値を格納していく為の出力値を「records」配下に追加します。出力値一覧の「records」を選択し、「配下に配置する」選択します。「出力」 - 「+string」をクリックすると出力値一覧の「records」配下に、「string1」という値が追加されます。追加された「string1」を選択し、「キー名を変更」をクリック、キー名を「enquete_id」と変更します。同様の手順で「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定義新規作成」を選択します。ユーザ定義共通設定を以下のように設定します。※カテゴリについては、本チュートリアルではユーザカテゴリIDを「tutorial_task_category」、ユーザカテゴリ名を「【チュートリアル】チュートリアルガイドカテゴリ」で新規で作成しています。入力値に以下を設定します。クエリに以下の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式)を以下のように設定し、決定ボタンをクリックします。「${tutorial_enquete_info_select1.count > 0}」「分岐」の「else」と「エラー終了」の「in」を線で繋げます。「エラー終了」を選択し、「エラーメッセージ」に「no enquete」と入力します。パレットから「【チュートリアル】チュートリアルガイドカテゴリ」 - 「【チュートリアル】アンケート設問取得」を選択し、「分岐」の下に配置します。「分岐」の「then」と「【チュートリアル】アンケート設問取得」の「in」を線で繋げます。「【チュートリアル】アンケート設問取得」の「out」と「終了」の「in」を線で繋げます。ダイアログ左側の入力の「enqueteId」と右側の「tutorial_enquete_info_select1」の「enqueteId」を線でつなげ、決定ボタンをクリックしてマッピング設定を登録します。同様に、配置した「【チュートリアル】アンケート設問取得」タスクを選択し、「マッピング設定」ダイアログを表示します。ダイアログ左側の入力の「enqueteId」と右側の「tutorial_enquete_info_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」が追加されます。入力値一覧の「キー名を変更」をクリックし、キー名を「enqueteId」と設定してください。次に、「入力」 - 「+string」をクリックすると出力値一覧に「string1」が追加されます。入力値一覧の「キー名を変更」をクリックし、キー名を「answers」と設定してください。追加した「answers」を選択し、「配列型にする」を選択し、「決定」ボタンをクリックして設定を保存してください。入力値はJSON入力で以下を記載しても設定できます。{ "enqueteId": "", "answers": [ "" ] }JSON入力する場合は、入力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。アンケート回答登録タスクでは、配列の回答を「,(カンマ)」区切で一つの文字列として繋げて登録するため、定数を設定します。画面上部の定数設定ボタンをクリックして「定数設定」ダイアログを表示し、以下のように設定します。
ラベル 入力値 定数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 回答者 respondent string 回答日時 sqltimestamp enqueteId 回答 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. タスクの配置と変数設定¶
作成した「【チュートリアル】アンケート回答登録」タスクをフローに配置し、線を繋げます。パレットから「【チュートリアル】チュートリアルガイドカテゴリ」にカーソルを合わせ、「【チュートリアル】アンケート回答登録」を選択します。配置した「【チュートリアル】アンケート回答登録」と開始、終了タスクを線で繋げます。配置した「【チュートリアル】アンケート回答登録」を選択し、マッピング設定を表示します。画面上部の関数選択で「Identifier」を選択し、「+関数を追加」をクリックしてマッピング設定に「Identifier」関数を追加します。配置した「Identifier」の「out」と「【チュートリアル】アンケート回答登録」の入力値の「answerId」を線でつなげます。次に、入力値の「enqueteId」と「【チュートリアル】アンケート回答登録」の入力値の「enqueteId」を線でつなげます。次に、回答を線で繋げます。回答は、入力値としては文字列の「配列」で「【チュートリアル】アンケート回答登録」の入力値はデータベースに登録するため一つの「文字列」ですのでその変換を行います。画面上部の関数選択で「文字列操作 > 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」が追加されます。入力値一覧の「キー名を変更」をクリックし、キー名を「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」と変更します。同様の手順で「records」の配下の変数が以下の値になるようにその他の値を設定し、決定ボタンをクリックして設定を保存してください。出力値も、JSON入力で以下を記載して設定できます。{ "records": [ { "answer_id": "", "enquete_id": "", "respondent": "", "answer_date": null, "answers": [ "" ] } ] }JSON入力する場合は、出力値の「JSON入力」をクリックして「JSON入力画面」を表示してください。また、JSON形式での入力の際には型が上記の表と誤りが無いか注意してください。アンケート回答取得タスクでは、「,(カンマ)」区切で一つの文字列として取得した回答を配列に変換して返却します。変換処理に利用するための定数を設定します。画面上部の定数設定ボタンをクリックして「定数設定」ダイアログを表示し、以下のように設定します。
ラベル 入力値 定数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. タスクの配置と変数設定¶
作成した「【チュートリアル】アンケート回答取得」タスクをフローに配置し、線を繋げます。パレットから「【チュートリアル】チュートリアルガイドカテゴリ」にカーソルを合わせ、「【チュートリアル】アンケート回答取得」を選択します。配置した「【チュートリアル】アンケート回答取得」と開始、終了タスクを線で繋げます。配置した「【チュートリアル】アンケート回答登録」を選択し、マッピング設定を表示します。入力値の「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を線でつなげます。「決定」ボタンをクリックしマッピング設定を保存します。これで、アンケート回答取得処理の作成は終了です。画面上部の「新規保存」をクリックし、以下のように入力し、「決定」ボタンをクリックして、ロジックの登録を行います。