- OpenAPI
- Automation Hub API について
- API リファレンス
- Automation Hub からトークンを生成する
- 出力ディクショナリー
- Automation Hub OpenAPI Power Query データ解析
Automation Hub OpenAPI Power Query データ解析
Automation Hub API からのデータの解析は、特に非常に複雑なレポートをまとめる場合など、簡単ではないことがあります。
このページでは、データ解析のプロセス全体の向上に使用可能なヒントと秘訣をいくつかご紹介します。このページの内容は次のとおりです。
- OpenAPI および Power Query のドキュメントへの参照を含む手順
- Power Query で直接手順を実行できるサンプル ファイル
以下の手順を実行してメイン クエリを設定します。
- Power BI または Excel に移動し、[データの取得] をクリックします。次に [Web から] を選択します。
- 新しいウィンドウで [詳細設定] をクリックします。
- ここで、接続に対応する OpenAPI データを追加する必要があります。
- 最初にエンドポイントを追加します (例: GET Automation Pipeline)。
- 次のヘッダーには、
- ヘッダーに認証トークンを追加します。
- トークンの値を挿入する前に、必ず Bearer という単語を追加してください。
- [接続] をクリックします。
Power BI で OpenAPI から JSON 応答を取得する必要があります。さらに、表を保存する前に、以下の手順を使用してデータを詳しく調査する必要があります。
- データ オブジェクトを展開します。
- 次に、プロセスのオブジェクトを展開します。
- これで、データを表に変換できるようになり、単一の列にすべてのレコードが表示されます。
- その列を展開して、JSON ファイル内の利用可能なレコードをすべて取得します。すべてを取得するか、その一部だけを取得するのかを選べます。
- 展開を実行した後は、必ずすべての列を確認してください。一部の列でレコードが入れ子になっているため、展開する必要があります。
- データに問題がないことを確認できるまで、各列の確認を行います。必要に応じて、一部の列の書式を設定することもできます。
- データに問題がなければ、[保存して閉じる] をクリックし、データが読み込まれるのを待ちます。
- これで、ダッシュボード/レポートの構築を開始できます。
limit パラメーターを使用しない単純なクエリから始めます。既定では、項目の既定数 (20) の応答を取得し、以下の手順に進みます。
- totalPages フィールドにドリルダウンします。
- [関数] ボタンをクリックすると、式が =totalPages に変わります。
- 式
=List.Numbers(1,totalPages,1)
を挿入します。 - API 応答で利用可能なすべてのページ番号を含むリストが生成されます。
これは、応答から取得するページの数に基づく動的なリストです。したがって、API クエリを更新して新しいデータ (新しいページ) を取得すると、そのデータが自動的にリストに表示されます。次の手順に進みます。
- リストを表に変換します。
- 列の名前を「Page」に変更し、データ型を「Text」に変更します。
- カスタム列を作成します。
- 列の数式に次のクエリを追加します。
let
Source = Json.Document(Web.Contents(" https://{yourDomain}/automationhub_/api/v1/openapi/automationpipeline?pre=all&page="&[Page], [Headers=[#"Content-Type"="application/json", #"x-ah-openapi-app-key"="test", #"x-ah-openapi-auth"="openapi-token", Authorization="Bearer xxxxxx"]])),
data = Source[data],
processes = data[processes]
in
processes
let
Source = Json.Document(Web.Contents(" https://{yourDomain}/automationhub_/api/v1/openapi/automationpipeline?pre=all&page="&[Page], [Headers=[#"Content-Type"="application/json", #"x-ah-openapi-app-key"="test", #"x-ah-openapi-auth"="openapi-token", Authorization="Bearer xxxxxx"]])),
data = Source[data],
processes = data[processes]
in
processes
上記のクエリは自動化案件からデータを取得し、Page パラメーター (リストで動的に取得) を使用して、利用可能なすべてのページのコンテンツを取得します。5. [OK] をクリックし、列を展開します。API が返すページ数に関係なく、応答から利用可能な項目がすべて表示されるようになりました。
アプリケーション解析 (コンマ区切り) を実行するには、以下の手順を使用します。
- クエリ エディターでアプリケーションがある列に移動し、[展開] をクリックして新しい行を作成します。
- もう一度 [展開] をクリックし、抽出するアプリケーション メタデータ (アプリケーション名など) を選択します。
- [ホーム] タブ/リボンの [グループ化] をクリックします。
-
[グループ化] ウィンドウで、以下を選択します。
- [プロセス ID] 列でのグループ化。これは ID が一意であるためです。
- 新しい列名。「applications aggregated」のような名前にする必要があります。
- 関数: Sum。
- 列: アプリケーションに対して展開した列 (上の例では、Column.1applications.applications_name)。
- [OK] をクリックすると、Sum 関数がテキスト エントリを処理できないため、エラーが発生します。
- 数式バーに移動し、関数として List.Sum を Text.Combine に置き換えます。
-
また、数式内で、アプリケーションの列名の後に、テキスト エントリの区切り文字を追加します (例: ", ")。
変更の前後で数式は次のようになります。
変更前
変更後
= Table.Group(#"Expanded Column1.applications1", {"Column1.process_id
= Table.Group(#"Expanded Column1.applications1", {"Column1.process_id
- [保存] をクリックし、列エントリを確認します。
説明の場合も同じ手順ですが、説明はテキスト フィールドであり、異なる段落を区切る必要があるため、異なる区切り文字「#(lf)」を数式で使用します。
変更前 |
変更後 |
---|---|
|
|
GET Automations の新しいクエリから開始し (前述のページネーションを使用したクエリを使用可能)、以下の手順を実行します。
-
以下の列を展開します。
- プロセス ID
- Advanced_Information または概要評価 (どちらも同じように動作しますが、このチュートリアルでは advanced_information を使用します)
- もう一度展開して質問フィールドを取得します。
-
もう一度展開して以下のフィールドを取得します。
- Question_text
- Answer_text
- Question_response_answers
- Question_response_answers を展開し、response_choice_text を抽出します。
- 以下の数式を使用して、Answer_text 列と Response_choice_text 列を単一の列に結合します。
if [AnswerText] is null then [AnswerChoice.response_choice_text] else [AnswerText]
です。
テキストで回答するか、それとも回答を選択するかのいずれか (両方は不可) を選択できるので、これは常に適用可能です。以下の手順を実行してプロセスを続行します。
- Question 列に null エントリがないかどうかを確認し、あれば削除します。
- ピボット列を使用して、Question と Answer の列の現在のデータをすべて行内に移します。
- Question 列を選択し、[変換] メニューの [列のピボット] をクリックします。
- Answer 列を値列として選択します。
- [集計しない] を値の集計関数として選択し、[OK] をクリックします。
これですべてのアイデアに、カスタムの質問とそれに対応する値を表す、対応する列が設定されました。
2 つの異なるクエリを Power BI にマージするために、これを Power Query で実行する一般的な方法を確認します。5. [OK] をクリックし、列を展開します。その後、自動化案件のクエリから開始し、それを Get Automations クエリとマージします。
- このようにして、Get Automation Pipeline からの利用可能な列を Get Automations からの列とともに展開します。
- プロセス ID を使用してクエリをマージする必要があります。これは、プロセス ID が一意の ID であると同時に、すべてのクエリに共通のキーでもあるからです。
- メイン クエリを設定する (GET Automation Pipeline の場合)
- ページネーションを使用して、OpenAPI 要求からすべての項目を動的に取得する
- 異なるクエリ (GET Automations) を解析して [説明] フィールドと [アプリケーション] フィールドを抽出する
- 説明の解析 (段落で区切り)
- 異なるクエリ (GET Automations) を解析してカスタムの質問/概要評価の質問を抽出する
- (GET Automations からの) クエリをメイン クエリ (GET Automation Pipeline) にマージする
- Automation Hub API Power Query 解析のデモ