LoginSignup
0
1

More than 1 year has passed since last update.

【パブリッシャー】丸見えトークンへの対応を試みる

Last updated at Posted at 2023-03-22

前回ポストした記事 SharperlightインスタンスAからSharperlightインスタンスBのスケジュールタスクを実行してみるで課題として残した丸見えトークンを解決してみようと思います。

方法としては、クライアント側JavaScript内でスケジュールタスクを実行するのではなく、スケジュールタスクを実行する関数を定義した公開レポートを別に準備して、その公開レポートをクライアント側JavaScriptから呼び出すことで、定義した関数をサーバー側で実行するようにします。そうすればクライアント側JavaScript内でトークンを扱う必要がなくなりますね。
image.png

タスク始動レポートの準備

タスクを始動する公開レポートを作成します。このレポートがSharperlightサービスを利用して呼び出されると、その中に定義されているクエリが実行され目的のタスクが始動するようになります。これはタスクを呼び出す側なのでSharperlightインスタンスA側に作成します。
Sharperlightパブリッシャーを起動します。
新規ボタンで新しい公開レポートの作成を開始します。
コードグループおよびタイトルを記入し、クエリを編集ボタンでクエリの作成を開始します。
image.png
タスクを実行するだけなのでクエリ結果は1行のみで良いので、製品にはシステムテーブルにはユーザーアカウント、そしてモードは既定値のCUとします。
image.png
出力アイテムに拡張表現を利用してタスクのトリガを定義します。
SharperlightインスタンスBのサービス名、トークンおよび実行対象のタスク名は、定数としてSharperlightシステムプロパティに定義しておきます。それらを参照してトリガを作成します。
4つの出力アイテムで作成してみます。
image.png
Server Name: システムプロパティに定義したSharperlightインスタンスBのサービス名を取得。
image.png
Task Name: 実行対象タスク名を定義。
image.png
Token: システムプロパティに定義したSharperlightインスタンスB用のトークンを取得。
image.png
Trigger: タスクを始動させます。上記のアイテムをコントロールタグを利用して参照し始動関数を定義します。
image.png
これでトリガは完成。保存します。クエリのプレビュー機能でクエリを実行すると実際にタスクが始動します。動作確認できますね。

検証用レポートの編集

では、前回の記事で作成した検証用レポート(トークンが丸見えだったもの)を編集します。
JS内でタスク実行関数を実行するのではなく、上記で作成したタスク始動用のレポートを呼び出すだけとします。
そうすることでタスク始動用レポートのクエリで定義したタスク実行関数が、サーバー側で作動するようにします。
そのためには、Sharperlightサービスのコマンド DataSourceを利用します。
'DataSource'コマンドを使用して呼び出したレポートは、通常のレポートとして表示されるのではなく、内包されたクエリが実行され、その結果得たデータセットをJSON形式でクライアント側に返すといった働きをします。
今回は、定義したクエリがサーバー側で実行されればOKなので、つまりタスクが始動するので、戻ってきたクエリ結果は無視します。
前回のJSコードのこの部分を変更します。
image.png
ここがこのようになります。DataSourceコマンドを利用して、タスク始動用レポートを呼んでいるのが見えますね。
image.png
この新しいコードを検証用のレポートのカスタムHTMLオプションに設定し保存します。
image.png
image.png

検証

SharperlightインスタンスAおよびBのサービスを起動します。
検証用レポートをブラウザで表示します。
image.png
実行されるSharperlightスケジュールタスクの定義を開き、履歴タブを表示しておきます。
image.png
検証用レポートのExecute Taskボタンをクリックします。すぐにタスクの履歴タブに行き更新アイコンで履歴を表示します。
ボタンのクリックによって作動したタスクの履歴が表示されます。
image.png
検証用レポートに対してデバッガーを開いてみます。今回、トークンは見えませんね。
image.png

では、失礼します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1