1.目的
ワンダーロボ設計書からビュー定義を作成します。
前提としてデータベースの基本的な概念を理解しているものとします。
2.構築手順
2.1.設計書定義~インポート
①関数設計書に以下のとおり定義。ここではとあるシステムの請求書検索ビューを作成します
以下の検索仕様で作成しています、
・一部請求書情報と登録会社名フィールドを取得
・追加フィールドとして発行元の会社ID、宛先の会社IDの登録値によって請求書区分を割り当てる
・取得する請求書データはログインユーザの所属する会社が登録したもののみとする
・画面項目から請求書区分インデックス値を取得し、取得した値によって発行元の会社ID、宛先の会社IDの検索値を変更する
・データの並び順は請求書ID(データ型:文字列)の昇順とする
・シート名は必ず、「関数定義_〇〇〇」にする必要があります。
②SaaSForce開発メニューよりインポート
③インポート結果としてビュー定義に設計書で定義したビューが作成されていることを確認します
④ビューの内容を確認します
直接SQLを記述した部分はもちろんですが、日本語で記述した部分が登録されているテーブル定義で置き換えられていることが確認できますね!
複数テーブルの場合、a.フィールド名またはb.フィールド名のように自動的に別名を割り当てられます。
getObj、getAttributeはSaaSForce内で利用できる関数となりまして、こちらは次項で解説します。
2.2.SaaSForceビュー内で利用できる関数について
SaaSForceビュー内で利用できる関数について一部紹介します。
2.2.1.getObj
getObj(“INVOICE_DIV”,”string”)のように定義。左から値を取得したい「画面項目ID、取得するデータ型」で定義。
例:項目IDが”INVOICE_DIV”のテキストボックスに値”1″が入力されていた場合、文字列の”1″として置き換えられます。
2.2.2. getAttribute
getAttribute(“APP_USER_ID”,”string”)のように定義。左から取得したい値「取得するセッション項目値、取得するデータ型」で定義。
例:APP_USER_IDの場合、ログインユーザIDを取得して、そのIDとして置き換えられます。
作成したビューを実際に実行させてみると以下のようなSQLが発行されます。
検索実行時の条件:ログインユーザIDは’test_user001’、請求書区分ラジオボタンの選択値は’0′
26行目のgetAttribute(“APP_USER_ID”,”string”)がログインユーザIDに、
29、31行目のgetObj(“INVOICE_DIV”,”string”)がラジオボタンの選択値に置き換わっていることが確認できました!
2.3.設計書記載時のポイント
①カッコ()内にテーブル名.フィールド名を記載する際は半角スペース一個分空けて記載します。※空けないと日本語のままインポートされます。
②同じ行であればセルを分けて記述することも可能です。
3.定義詳細
設計書とビュー定義の関係性まとめ
設計書の項目 | ビュー定義 | 説明 |
関数名 | ビュー名称 | 英数字で指定 |
SQL区分 | 検索(SELECT) | 固定 |
作成対象 | ビュー | 固定 |
概要 | ビュー概要 | ビューの概要を定義 |
引数 | – | 関数ではないので引数なし |
戻り値 | – | 関数ではないので戻り値なし(ここでは分かりやすく処理件数としている) |
使用テーブル | FROM | ビューで利用するテーブルを定義。結合テーブルも含めて全て定義 |
結合条件 | LEFT JOIN | 結合条件を定義。テーブル名.フィールド名のように定義 |
取得項目 | SELECT | SELECT句で取得する項目を定義
直接SQLを記述可能 |
参照元テーブル | 取得対象のフィールドが
定義されているテーブル |
SELECT句で取得するフィールドをどのテーブルから参照するか定義 |
処理 | WHERE、ORDER BY | 検索条件、ソート条件を定義
直接SQLを記述可能 |
4.おわりに
いかがだったでしょうか。
複雑なビューの場合、多少SQLの知識が必要となりますが、単純なものであればSQLの知識がなくてもビューを作成可能です。
また、SaaSForce独自の関数を併用することで画面項目やセッション値から値を取得した実践的なビューを作成することが可能なので、是非活用してみてください!