Oracle EPM Cloud(企業計画管理クラウド)またはそこに含まれるPlanning/EPBCS上でデータスライス(特定の条件で抽出したデータ範囲)をエクスポートし、AIDP ノートブック内でSpark DataFrame(Sparkで処理するデータ形式)として具体化します。 **次のような場合に使用:** - ユーザーがEPM Cloud、EPBCS、Hyperion Planning、プランニングアプリ、MDXエクスポート、またはPlanningデータをSparkで扱うことを言及した場合 IDドメイン前置きのユーザー名によるHTTP基本認証(ユーザー名とパスワードで認証する方式)で接続します。
Run a Planning data-slice export against Oracle EPM Cloud (Planning / EPBCS) and materialize as a Spark DataFrame in an AIDP notebook. Use when the user mentions EPM Cloud, EPBCS, Hyperion Planning, planning app, MDX export, or wants Planning data in Spark. HTTP Basic auth with identity-domain-prefixed username.
aidp-epm-cloud — EPM Cloud Planning REST → Spark次のような場合に使用:
aidp-essbase を使用してください。aidp-fusion-rest を使用してください。pip install requests pandas(通常はプリインストール済み)。sys.path に追加されていること。tenancy.user@domain 形式の認証情報。import os
from oracle_ai_data_platform_connectors.auth import http_basic_session
from oracle_ai_data_platform_connectors.rest.epm import (
list_applications, export_data_slice, slice_to_long_dataframe,
)
# EPM_USERNAME はアイデンティティドメイン形式で指定すること: tenancy.user@domain
# 例: epmloaner622.first.last@oracle.com
session = http_basic_session(
username=os.environ["EPM_USERNAME"],
password=os.environ["EPM_PASSWORD"],
base_url=os.environ["EPM_BASE_URL"],
)
# 事前確認: 認証情報が有効かつアプリに到達可能かを確認
apps = list_applications(session, os.environ["EPM_BASE_URL"])
print("applications:", [a["name"] for a in apps])
# エクスポートを実行
slice_response = export_data_slice(
session=session,
base_url=os.environ["EPM_BASE_URL"],
application=os.environ["EPM_APPLICATION"],
plan_type=os.environ["EPM_PLAN_TYPE"],
grid_definition={
"suppressMissingBlocks": True,
"suppressMissingRows": True,
"pov": {
"dimensions": ["HSP_View", "Year", "Scenario", "Version", "Entity", "Product"],
"members": [["BaseData"], ["FY26"], ["Actual"], ["Working"], ["Total Entity"], ["P_TP"]]
},
"columns": [{"dimensions": ["Period"], "members": [["Jan", "Feb", "Mar", "Apr", "May", "Jun"]]}],
"rows": [{"dimensions": ["Account"], "members": [["IChildren(PL)"]]}],
},
)
df = slice_to_long_dataframe(spark, slice_response)
df.show(10)
print("cells:", df.count())
tenancy.user@domain の形式(例: epmloaner622.first.last@oracle.com)で指定してください。
プレフィックスなしの first.last@oracle.com では 401 が返されます。IChildren() や ILvl0Descendants() を使わずに親メンバーを渡すと、EPM は 400 エラーまたは空のレスポンスを返します。#Missing セルについて —
空の Planning ブロックはリテラル文字列 "#Missing" として返されます。
ヘルパーはこの値を value 列にそのまま保持します。必要に応じて数値型にキャストするか、フィルタリングして除外してください。aidp-epm-cloud — EPM Cloud Planning REST → Sparkaidp-essbase.aidp-fusion-rest.pip install requests pandas (usually pre-installed).sys.path.tenancy.user@domain.import os
from oracle_ai_data_platform_connectors.auth import http_basic_session
from oracle_ai_data_platform_connectors.rest.epm import (
list_applications, export_data_slice, slice_to_long_dataframe,
)
# EPM_USERNAME MUST be in identity-domain form: tenancy.user@domain
# e.g. epmloaner622.first.last@oracle.com
session = http_basic_session(
username=os.environ["EPM_USERNAME"],
password=os.environ["EPM_PASSWORD"],
base_url=os.environ["EPM_BASE_URL"],
)
# Pre-flight: confirm credentials work and the app is reachable
apps = list_applications(session, os.environ["EPM_BASE_URL"])
print("applications:", [a["name"] for a in apps])
# Run the export
slice_response = export_data_slice(
session=session,
base_url=os.environ["EPM_BASE_URL"],
application=os.environ["EPM_APPLICATION"],
plan_type=os.environ["EPM_PLAN_TYPE"],
grid_definition={
"suppressMissingBlocks": True,
"suppressMissingRows": True,
"pov": {
"dimensions": ["HSP_View", "Year", "Scenario", "Version", "Entity", "Product"],
"members": [["BaseData"], ["FY26"], ["Actual"], ["Working"], ["Total Entity"], ["P_TP"]]
},
"columns": [{"dimensions": ["Period"], "members": [["Jan", "Feb", "Mar", "Apr", "May", "Jun"]]}],
"rows": [{"dimensions": ["Account"], "members": [["IChildren(PL)"]]}],
},
)
df = slice_to_long_dataframe(spark, slice_response)
df.show(10)
print("cells:", df.count())
tenancy.user@domain (e.g. epmloaner622.first.last@oracle.com). The bare first.last@oracle.com returns 401.IChildren() / ILvl0Descendants().#Missing cells — empty Planning blocks come back as the literal string "#Missing". Helper preserves this in the value column; cast to numeric and filter as needed.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。