claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialdevelopment

☁️aidp-epm-cloud

説明

Oracle EPM Cloud(Planning / EPBCS)に対してPlanningデータスライスのエクスポートを実行し、AIDPノートブック上でSpark DataFrameとして具体化します。 次のような場合に使用: ユーザーがEPM Cloud、EPBCS、Hyperion Planning、Planningアプリ、MDXエクスポートについて言及している場合、またはSparkでPlanningデータを利用したい場合。 認証にはIDドメインプレフィックス付きユーザー名によるHTTP Basic認証を使用します。

原文を表示

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データをエクスポートするとき
  • AIDPノートブックでPlanningデータを扱うとき
  • SparkでPlanningデータを利用したいとき
  • MDXエクスポートを実行するとき

本文(日本語訳)

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 = アクセス権限なし(異なるコードパスに該当するため、リトライしないでください)。

参考リンク

原文(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

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

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