REST APIを使用してOracle AnalyticsキャンバスをPDFまたはPNGにエクスポートする方法 (2025/08/30)

REST APIを使用してOracle AnalyticsキャンバスをPDFまたはPNGにエクスポートする方法 (2025/08/30)

https://medium.com/oracledevs/how-to-export-an-oracle-analytics-canvas-to-pdf-or-png-using-rest-apis-9dfd21e81d02

投稿者:Mike Durran

はじめに

以前のブログでは、Oracle Analytics REST APIと、それらを使ってカタログを検索する方法について紹介しました。このブログでは、REST APIを使用してワークブックからキャンバスをPDFまたはPNGファイルにエクスポートする方法について説明します。

APIを使用するにはアクセストークンが必要です。Oracle Analyticsで使用するためのアクセストークンを取得する様々な方法については、以前ブログ記事で解説しました。また、 Postmanで認可コードフローを使用してアクセストークンを取得する方法については、こちらのブログ記事も併せてご覧ください。

ワークブックIDの取得

エクスポートするワークブックとキャンバスのIDを取得する必要があります。ワークブックIDを取得する最も簡単な方法は、カタログREST APIを使用して、対象のワークブックを検索することです。私の場合は、「sales by city」というワークブックを検索します。

/api/20210901/catalog/workbooks?search='sales by city'

API 応答は次のとおりです。

[
{
"owner": "<owners userid>",
"path": "/@Catalog/shared/Embed/Sales By City",
"name": "Sales By City",
"description": "",
"id": "L3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5",
"lastModified": "2022-07-12T16:56:44Z",
"type": "workbooks",
"parentId": "L3NoYXJlZC9FbWJlZA"
}
]

「id」(L3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5)は、次のステップで使用するこの応答の重要な部分です。

注: 必要に応じて ID を手動で導出できますが、完全なカタログ パスからbase64url の安全な IDに ID をエンコードするメカニズムを使用していることを確認してください

ワークブックIDを使用してキャンバスIDを取得する

次の段階では、/actions/getCanvases API を使用して、ワークブック内のキャンバス参照を検索します。これは POST であることに注意してください。

/api/20210901/catalog/workbooks/L3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5/actions/getCanvases

(scroll right to view)

応答には、'presentCanvases' からのエクスポート API に必要なキャンバス ID が表示されます。

{
"visualizeCanvases": [
{
"canvasId": 1,
"canvasName": "Canvas 1"
}
],
"presentCanvases": [
{
"canvasId": "d902b6c6-6693-4721-bf3e-23e0e4a53cf0",
"canvasName": "Canvas 1",
"visualizeCanvasId": 1,
"isEnabled": true
}
]
}

エクスポートAPIを呼び出す

キャンバス ID は、エクスポートAPI 呼び出し (POST)のペイロード内で使用されます。

/api/20210901/catalog/workbooks/L3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5/exports

この API 呼び出しには、上記のドキュメント リンクで完全に説明されているペイロードが必要です。例:

{
"name": "Sales By City",
"type": "file",
"canvasIds": ["d902b6c6-6693-4721-bf3e-23e0e4a53cf0"],
"format": "pdf",
"screenwidth": 1440,
"screenheight": 900
}

この例ではPDFファイルをエクスポートしていますが、PNG画像もオプションとして利用可能です。Oracle Analyticsの最新バージョンでは、キャンバスIDの形式が、この例で示されているGUIDからsnapshot!canvas!1のような形式に変更されています。

ペイロード内で次のように複数のキャンバスを参照することもできます。

"canvasIds": ["snapshot!canvas!1", "snapshot!canvas!2"]

これは非同期操作であるため、応答にはエクスポート ジョブを追跡するために使用できる作業要求 ID が含まれます。


{
"resourceUri": "/api/20210901/catalog/workbooks/L3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5/exports/biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn"
}

(scroll right to view)

この場合、作業依頼IDは末尾にあります:
biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn

エクスポートジョブの監視

作業リクエスト ID は次のエンドポイントで監視されます。

/api/20210901/workRequests/biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn

応答にはジョブのステータスが含まれます。たとえば、ここではジョブが進行中です。

{ 
"id" : "biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn"
"operationType" : "CREATE_WORKBOOK_EXPORT"
"resourceType" : "WORKBOOK_EXPORT"
"status" : "IN_PROGRESS"
"resources" : [
{
"actionResult" : "CREATED"
"resourceUri" : null
"resourceType" : "WORKBOOK_EXPORT"
"id" : "biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn"
"metadata" : { }
}
]
"Errors" : null
"percentComplete" : 0.0
"timeAccepted" : "2025-08-29T12:57:56.983Z"
"開始時刻" : "2025-08-29T12:58:01.457Z"
"終了時刻" : null
}

完了すると、応答は次のようになります。

{
"id": "biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn",
"operationType": "CREATE_WORKBOOK_EXPORT",
"resourceType": "WORKBOOK_EXPORT",
"status": "SUCCEEDED",
"resources": [
{
"actionResult": "CREATED",
"resourceUri": "/api/20210901/catalog/workbooks/L0BDYXRhbG9nL3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5/exports/biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn",
"resourceType": "WORKBOOK_EXPORT",
"id": "biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn",
"metadata": {}
}
],
"Errors": null,
"percentComplete": 100.0,
"timeAccepted": "2025-08-29T12:57:56.983Z",
"timeStarted": "2025-08-29T12:58:01.457Z",
"timeFinished": "2025-08-29T12:59:35.336Z"
}

実際の PDF ファイルを取得するための resourceUri がこの応答で重複していることに気付くでしょう。これは、エクスポート ジョブを呼び出すための元の API 呼び出しへの応答でも見られます。

エクスポートされたファイルの取得

キャンバスの PDF は、この API 呼び出しで取得されます。これは、先ほど確認した resourceUri です。

/api/20210901/catalog/workbooks/L0BDYXRhbG9nL3NoYXJlZC9FbWJlZC9TYWxlcyBCeSBDaXR5/exports/biwj-J2M3OjYwMScuJ2NpOjE4MTI1OTYn

(scroll right to view)

エクスポートされたキャンバスは、Postman の次のスクリーン キャプチャで確認できます。

Enterキーを押すかクリックすると、画像がフルサイズで表示されます
Postmanで表示されるキャンバスのエクスポートされたPDFビュー

まとめ

このプロセスは、ワークブックのキャンバスをPDFまたはPNG形式でエクスポートする際に、さまざまな用途に使用できます。プロセスを要約すると、次のようになります。

  • エクスポートするキャンバスを含むワークブックのIDを取得します
  • ワークブックIDを使用してキャンバスID参照を取得します
  • これらのキャンバスID参照を使用してエクスポートAPIを呼び出します
  • 作業リクエストIDを使用して非同期エクスポートジョブを監視する
  • ジョブステータスが成功したらファイルをエクスポートします

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

ミリ秒の問題: BCCグループとOCIが市場データ・パフォーマンスを再定義する方法(AWSに対するベンチマークを使用) (2025/11/13)

OCI Object Storageアクセス制御ポリシーの構成 (2024/04/25)