PowerBIのビジュアルなんですぐ無くなってしまうん
最初の記事で使ったビジュアルはなくなっちゃいました。
MS公式のガントチャートも、前みたやつとなんだか仕様が変わっちゃってうまいこと表示できなくなってるし…。
今あるビジュアルで作り直す
ないものはしょうがない。
今あるビジュアルで、RR別のプロセス実行状況を作り直します。
なんかいいビジュアルがないかと探していたら、すごいやつがありました。
Deneb
これです。
Deneb: Declarative Visualization in Power BI

解説とかDocsとかはこちら https://deneb.guide/
三点メニュー→編集 で設定をします。
Settingsで、VegaかVega-Liteモードを選択できます。Vega-Liteのほうがシンプルで易しいと書いてあります。
Vega-LiteのDocsはこちら
正直Vega-Liteであっても設定はむつかしい。ちょびっととは言えコードを書かないといけないし。
でも設定の自由度は相当高い。どんなビジュアルでもだいたいDenebでいける。
ただまあサ終とか有料化とか可能性はゼロではないし、書いたコードの保守も発生するので、なんでもDenebでやっちゃうのはちょっと考えもの……。
イチからコードを書くのではなく、サンプルがたくさん掲載されているので、
自分のやりたい図に近いもののコードをコピーして、「Specification」のコードのところにペーストして、Docsを見ながら改造して…という手順でがんばれば結構いける。
ドットプロットの図が、今回のやりたいことに結構近そうなので、ここらへんをとっかかりにして作成します。
ソースはBPASession。
DBサーバからテーブルのデータをひっぱってくるのとか、プロセスやRRのIDから名前をひいてくる手順は最初の記事を参照ください。
「Specification」のコードのところに以下のように書きます。
入力支援があって、fieldのところは頭文字を入力すると項目名が出てきてくれます。
detailでsessionIdを指定したので、実行セッションごとに開始日時と終了日時をプロットします。
(この指定がないと、たとえば同じプロセスを朝と夜に実行した場合、開始日時は朝の時刻で、終了日時が夜実行分の終了日時になってしまいます)
マウスをホバーしたら、実行したプロセス名、実行したユーザ、開始日時と終了日時をツールチップで表示するようにしてみました。
日時の表示形式はformatで指定します。今回は時分秒まで表示してほしい。
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": { "name": "dataset" },
"mark": {
"type": "bar",
"tooltip": true
},
"encoding": {
"y": {
"field": "BPAResource(runningresourceid)_name",
"type": "nominal",
"title": "RR"
},
"x": {
"field": "startdatetime",
"type": "temporal",
"title": "time"
},
"x2": {
"field": "最新の enddatetime"
},
"detail": {
"field": "sessionid"
},
"color": {
"field": "BPAResource(runningresourceid)_name",
"type": "nominal"
},
"tooltip": [
{ "field": "BPAProcess_name", "type": "nominal" },
{ "field": "BPAUser_username", "type": "nominal" },
{ "field": "startdatetime", "type": "temporal", "format": "%Y/%m/%d %H:%M:%S" },
{ "field": "最新の enddatetime", "type": "temporal", "format": "%Y/%m/%d %H:%M:%S" }
]
}
}