Oracle Analytics Cloud Classic：配信機能のDeliversを利用し、完了フラグをチェックして、レポート出力する

はじめに
---
Delivers機能を使って、完了フラグをチェックして、レポート出力する方法をやってみます
バッチ処理の処理完了時にテーブルに完了のフラグを登録します
Deliversで、テーブルに完了のフラグを定期的、たとえば１０分毎にチェックします
完了フラグで、完了であれば、レポートを配信します

![g1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/2e5a296d-ea5d-54aa-4658-f755d77dffcd.jpeg)

記事記載時のOAC ver：Jan 2025 Update

前提
---
本記事では以下の方法を利用します
- 完了フラグをチェックするため、直接、物理SQLを実行する方法を利用
・RPDリポジトリ、セマンティックモデルに直接、物理SQLを実行するためのコネクションプールを作成しておく
・処理完了を示すテーブルおよび完了フラグを持つデータを作成しておく

直接、物理SQLを実行するためのコネクションプール
![g6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/f32d53fb-4b40-2895-db71-19322d7269e9.jpeg)

処理完了を示すテーブルの完了フラグをもつデータイメージ
SYORIFLAGが"Y"なら処理完了
![g2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/80d1af2d-dcc1-0ba8-55ee-58397eb0200d.jpeg)

直接、物理SQLを実行するための準備
---
本記事では、DBのテーブルに入っているデータ、完了フラグをAnswersから直接、物理SQLを実行し、取得します。
直接、物理SQLを実行するための権限を付与（確認）します
OACの管理者権限を持つユーザーでOACにログインします。クラシックのページで、アカウントアイコンをクリックし、管理のページを開きます
![g4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/fa3377c2-7e3f-09a8-3e00-6538d052c3ad.jpeg)

管理ページで、権限の管理をクリックします
![g5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/5ddd3ea0-c1c8-ab12-7109-a1d42753e6d9.jpeg)

権限の管理ページで、"管理：カタログ"-"SQLの直接発行"を確認します。デフォルトでは"BI Server Administrator"ロールを持つユーザーが、直接、物理SQLを実行することができるようにセットされてます。必要に応じてロールや、ユーザーに権限を付与します。付与するには、"BI Server Administrator"のリンクをクリックし、ロールやユーザーを追加します。本記事では"BI Server Administrator"を持つユーザーで実行するため、そのままです。
![g3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/139ae892-4636-026e-50c5-918040076d89.jpeg)

配信機能Deliversで処理完了をチェックする分析の作成
---
配信機能のDeliversで利用する直接DBにSQL問合せを実行し、完了フラグをチェックする分析を作成します
メニューの作成をクリックします。分析を選択し、その後のサブジェクト領域の選択では、"直接データベース問合せの作成"をクリックします。メニューに表示されない場合は、権限が付与されていないため、権限の付与をOAC管理者に依頼します
![g7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/8f538e3c-67a7-9121-2eb4-d916993d1a43.jpeg)

接続プールに、RPDリポジトリ、セマンティックモデルで作成したコネクションプール名を入力します。このコネクションプールの接続情報でDBに接続します
SQL文のところに物理SQLを記載します。このSQLが直接DBに対して発行されます。
Oracle Analytics Presentations Servicesキャッシュをバイパスのチェックボックスをチェックします。
"SQLの確認と列の取得"をクリックします。
![g8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/714ee313-6261-ae01-154e-e3a69fbdf5f2.jpeg)

"結果"タブをクリックします。物理SQLの実行結果、図では処理フラグのデータ取得を確認します。完了フラグをチェックする分析を保存します。保存アイコンをクリックします。
![g9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/55be4c25-aa47-1a26-ef48-31bd0006f38d.jpeg)

分析の名前を入力します。"OK"をクリックします
![g10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/2fa94082-4486-c9bc-54eb-0490ab10f858.jpeg)

配信機能Deliversで配信するレポート作成
---
配信するレポートを作成します。
本記事では以下のレポートを使います
![g11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/a49d646d-d233-1149-d141-9d736252c6f2.jpeg)

配信機能Deliversでスケジュールを作成
---
処理完了をチェックする分析を開きます
結果タブで、上部の"スケジュール"アイコンをクリックします
![g12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/0d8b22c1-0a67-feb6-7ec7-0dd758d7e6c9.jpeg)

"スケジュール"タブをクリックします
スケジュールをセットします。本記事では、頻度：日、開始日時、エージェントの再実行間隔15分、次まで：23:59:00、終了日なしをセットしています
毎日15分間隔で、物理SQLを実行し、完了フラグをチェック、データが返ってきたらレポートを配信する。という設定です。
![g13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b4cf05fc-7ff8-e0b3-e382-0c76c7d9dc82.jpeg)

"条件"タブをクリックします。完了フラグをチェックする分析がセットされていることを確認します。
![g14.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/0347b093-7eec-2021-4344-23255b238bde.jpeg)

配信するレポートをセットします。"配信コンテンツ"タブをクリックします。コンテンツで、"分析"を選択します。"参照"をクリックします。配信するレポートを選択します。
![g15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b55a9827-9f0a-90d1-6dc9-1c9a6ec4e614.jpeg)

配信を受信する先を指定します。"受信者"タブをクリックします。"＋"アイコンをクリックし、OACのユーザー、アプリケーションロールもしくは直接メールアドレスを指定します。直接メールアドレスは、メールアイコンをクリックし、メールアドレスを追加します。
![g16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/288004f1-b862-2598-8a50-58404fe66a64.jpeg)

"送信先"タブをクリックします。上部の"保存"アイコンをクリックします
![g17.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/28e5585f-c0a5-c35b-fd02-67612d50d842.jpeg)

設定したスケジュールに名前を付けて保存します。名前を入力し、"OK"をクリックします。
![g18.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b76ede1f-1445-3934-4daf-c1ea556248b9.jpeg)


配信の実行と結果
---
作成したスケジュールのことをOACではエージェントと呼びますがエージェントを実行します。
右上部の"エージェントを今すぐ実行"アイコンをクリックします。エージェントの実行が開始されます。
![g19.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b9942541-2d15-ca4f-dc82-01a7086d39dd.jpeg)

エージェントの実行に成功しました。が表示されます。OKをクリックします。エラー発生時はメールの設定等をチェックします。
![g20.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/f826ca68-d8c6-bcb6-e50e-25684400a21e.jpeg)

メールでレポートが配信されてきていることを確認します。
![g22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/d1df12ed-e582-0b46-b504-745b2667a196.jpeg)

配信の実行履歴は、OAC管理者で、"コンソール"の"配信のモニター"で確認します。
![g21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/db2adbfc-24d6-b5f9-eb72-2f9a889b1cb9.jpeg)

まとめ
---
Delivers機能を使っての、完了フラグをチェックして、レポート出力する方法を試してみました。本記事では直接物理SQLを実行して完了フラグをチェックしています。サブジェクト領域から処理実行の結果を取得こともできます。

以上