• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

aidp-epm-cloud

プラグイン
oracle-ai-data-platform-workbench-spark-connectors
ソース
GitHub で見る ↗
説明

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.

ユースケース
  • EPM CloudやEPBCSからデータスライスをエクスポート
  • Planning/EPBCS上の特定条件でデータ抽出
  • エクスポートしたデータをSpark DataFrameに変換
  • PlanningデータをSparkで処理したい場合
本文(日本語訳)

aidp-epm-cloud — EPM Cloud Planning REST → Spark

使用する場面

次のような場合に使用:

  • EPM Cloud から Planning のデータスライス(POV × 列 × 行)を Spark に取り込みたい場合。
  • ユーザーが「EPM Cloud」「EPBCS」「Hyperion Planning」「planning app」「exportdataslice」「MDX export」といったキーワードに言及している場合。

使用しない場面

  • オンプレミスの Essbase 21c で MDX を使用する場合 → aidp-essbase を使用してください。
  • Fusion ERP / HCM の場合 → aidp-fusion-rest を使用してください。

AIDP ノートブックの前提条件

  1. pip install requests pandas(通常はプリインストール済み)。
  2. ヘルパーが sys.path に追加されていること。
  3. EPM の pod URL と、tenancy.user@domain 形式の認証情報。

認証方式: HTTP Basic

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 が返されます。
  • POV のメンバーはリーフレベルである必要があります。 IChildren() や ILvl0Descendants() を使わずに親メンバーを渡すと、EPM は 400 エラーまたは空のレスポンスを返します。
  • #Missing セルについて — 空の Planning ブロックはリテラル文字列 "#Missing" として返されます。 ヘルパーはこの値を value 列にそのまま保持します。必要に応じて数値型にキャストするか、フィルタリングして除外してください。
  • 401 と 403 の違い — 401 = 認証失敗(Basic 認証情報を再確認してください)。 403 = アクセス権限なし(異なるコードパスに該当するため、リトライしないでください)。

参考リンク

  • ヘルパースクリプト: scripts/oracle_ai_data_platform_connectors/rest/epm.py
  • EPM Planning REST ドキュメント: https://docs.oracle.com/en/cloud/saas/planning-budgeting-cloud/pbcrr/
原文(English)を表示

aidp-epm-cloud — EPM Cloud Planning REST → Spark

When to use

  • User wants to pull a Planning data slice (POV × columns × rows) from EPM Cloud into Spark.
  • User mentions: "EPM Cloud", "EPBCS", "Hyperion Planning", "planning app", "exportdataslice", "MDX export".

When NOT to use

  • For Essbase 21c on-prem MDX → use aidp-essbase.
  • For Fusion ERP / HCM → use aidp-fusion-rest.

Prerequisites in the AIDP notebook

  1. pip install requests pandas (usually pre-installed).
  2. Helpers on sys.path.
  3. EPM pod URL + credentials in the form tenancy.user@domain.

Auth: HTTP Basic

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())

Gotchas

  • Username MUST include the identity-domain prefix. tenancy.user@domain (e.g. epmloaner622.first.last@oracle.com). The bare first.last@oracle.com returns 401.
  • POV members must be leaf-level. EPM returns 400 / empty if you pass a parent member without 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.
  • 401 vs 403 — 401 = auth fail (re-check Basic creds). 403 = permission denied (different code path; don't retry).

References

  • Helpers: scripts/oracle_ai_data_platform_connectors/rest/epm.py
  • EPM Planning REST docs: https://docs.oracle.com/en/cloud/saas/planning-budgeting-cloud/pbcrr/

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。