はじめに
OACでは、セマンティックモデラーを利用してセマンティックモデルを作成します
作成したセマンティックモデルをOACにデプロイすると、ワークブック、分析からセマンティックモデルのサブジェクト領域を利用できるようになります
また、セマンティック・モデルでは、式で利用できるいくつかの種類の変数を設定することができます
本記事では、セマンティック・モデルで、動的変数を設定してみます。
動的変数は、OACにユーザーがサインインした際に、データベースから取得した値を変数にセットします。
データベースから値を取得する際に条件としてサインインしたユーザーを使用して、動的に値を変えるといった用途での利用が考えられます
セマンティック・モデル内での利用の他、分析、ダッシュボードなどから利用することができます。
記載時のOACバージョン:OAC 2024 March版
前提
セマンティックモデルが作成済のOACインスタンスがある。
動的変数にセットする際に参照するテーブル、データがある。
初期化ブロックおよび静的変数の作成
初期化ブロックおよび動的に値を格納するセッション変数を作成します
セマンティック・モデルを開きます
上部左のメニューアイコンをクリックし、セマンティック・モデルをクリックします
左上部の"(x) 変数"タブをクリックします。右上部の"新規"ボタンをクリックし、"初期化ブロック"をクリックします
動的変数の初期化ブロックを作成します。任意の名前を入力します。タイプをクリックし、"セッション"を選択します
動的変数にセットする値を取得するSQLを記載します。本記事では、以下を入力しています。
select corporate_name,area from shjp.tbl_dynamic_variables where username='VALUEOF(NQ_SESSION.USER)'
入力後、SELECT文の下部の"選択"ボタンをクリックし、取得するデータベースを指定します。セマンティック・モデルの物理レイヤーに定義されている接続プールを指定します。
物理レイヤーを展開し、接続プールをクリック、"選択"ボタンをクリックします
結果を格納する変数を作成します
中程、"+ 変数の追加"をクリックします
変数の名前を入力します。入力後、"詳細ビュー"アイコンをクリックします
デフォルト値を入力します。"検証"をクリックし、"保存"をクリックします。
値を取得する際には取得した値で上書きされます。
SELECT文では、列を2つ指定しています。2つめの変数を追加します。
"+ 変数の追加"をクリックします
デフォルト値を入力します。"検証"をクリックし、"保存"をクリックします。
値を取得する際には取得した値で上書きされます。
右上部のアクションメニューアイコン"・・・(縦)"をクリックし、"デプロイ"をクリックします
セマンティック・モデル変数の動的変数の利用
分析で、テキストやナレーティブで動的変数を利用する
@{biServer.variables['NQ_SESSION.<変数名>']}{<デフォルト値>}で参照します。本記事では@{biServer.variables['NQ_SESSION.dynamic_area']}{}
分析で、式列で静的変数を利用する
VALUEOF(NQ_SESSION.<変数名>)で参照します
サインイン時に、サインインしたユーザーを条件に、データベースから動的に値を取得して、セッション変数に動的に値をセットし、表示しています。
まとめ
セマンティック・モデルでは、セマンティック・モデル・変数という式で利用できる静的変数、動的変数など、いくつかの種類の変数を設定することができます。
本記事では、セマンティック・モデルで、セッション変数に動的に値を設定する動的変数をためしてみました。
分析で動的変数を参照する他、セマンティック・モデルの論理レイヤーの式列でも動的変数を参照できます。
以上