claude-skills/

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

last sync 22h ago
スキルOfficialdevelopment

🔗aidp-fusion-rest

説明

Oracle Fusion ERP / HCM / SCM の REST API からデータを取得し、AIDP ノートブック上の Spark DataFrame に読み込みます。 次のような場合に使用: ユーザーが Fusion ERP、Fusion REST API、FA REST、Cloud ERP について言及している場合、または Fusion Pod からリアルタイムデータを取得したい場合。 認証方式は HTTP Basic 認証のみに対応。 1ページあたり499行を超える大量データの取得やバルクエクストラクトが必要な場合は、`aidp-fusion-bicc` にルーティングしてください。

原文を表示

Pull data from Oracle Fusion ERP / HCM / SCM REST APIs into a Spark DataFrame from an AIDP notebook. Use when the user mentions Fusion ERP, Fusion REST API, FA REST, Cloud ERP, or wants live data from a Fusion pod. HTTP Basic auth only. For volumes >499 rows/page or bulk extracts, route to aidp-fusion-bicc.

ユースケース

  • Fusion ERP のデータを取得するとき
  • Fusion REST API からデータを読み込むとき
  • Cloud ERP からリアルタイムデータを取得するとき
  • Spark DataFrame にデータを変換するとき

本文(日本語訳)

aidp-fusion-rest — Fusion ERP / HCM / SCM REST → Spark

次のような場合に使用

  • ユーザーが Fusion REST API(/fscmRestApi//hcmRestApi/ 等)から小〜中規模のレコードを Spark DataFrame に取り込みたい場合。
  • ユーザーが「Fusion ERP」「Fusion REST」「FA REST」「Cloud ERP API」と言及している場合。
  • 取得予定の総行数がメモリに余裕を持って収まる場合(≤ 約50,000行)。 499行を超える場合はヘルパーが自動ページングを行うが、大量取得には BICC の方が高速。

次のような場合には使用しない

  • バルク抽出(>50,000行、日次スナップショット等)→ aidp-fusion-bicc を使用。 Fusion の REST は1ページあたり499行が上限(MOS Doc ID 2429019.1)であり、数百万行をページングで取得するのは低速。
  • EPM Cloud Planning → aidp-epm-cloud を使用。
  • Essbase MDX → aidp-essbase を使用。

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

  1. pip install requests pandas(通常はクラスターに導入済み)。
  2. ヘルパーが sys.path に含まれていること。
  3. Fusion ポッドの URL と HTTP Basic 認証情報が用意されていること。

認証: HTTP Basic

import os
from oracle_ai_data_platform_connectors.auth import http_basic_session
from oracle_ai_data_platform_connectors.rest.fusion import (
    fetch_paged, rows_to_spark_dataframe,
)

session = http_basic_session(
    username=os.environ["FUSION_USER"],
    password=os.environ["FUSION_PASSWORD"],
    base_url=os.environ["FUSION_BASE_URL"],
)

rows = fetch_paged(
    session=session,
    base_url=os.environ["FUSION_BASE_URL"],
    path="/fscmRestApi/resources/11.13.18.05/invoices",
    fields="InvoiceId,InvoiceNumber,InvoiceAmount,InvoiceDate",
    extra_params={"q": "InvoiceDate >= '2026-01-01'"},
)

df = rows_to_spark_dataframe(spark, rows)
df.show(5)
print("rows:", df.count())

注意事項

  • 1ページあたり499行の上限 — Fusion は limit=500 以上を指定しても黙って499行に切り捨てる。ヘルパーはこれを自動的に強制する。
  • onlyData=true — ヘルパーがこれを設定することで、Fusion の HATEOAS リンクエンベロープではなく実際のフィールドのみが返される。帯域幅の節約に有効。
  • q= フィルター構文は Fusion 固有 — 例: q=InvoiceDate >= '2026-01-01' AND Status = 'PAID' 文字列値はシングルクォートで囲むこと。
  • ネストされた構造体カラム — Fusion のレスポンスにはネストされたオブジェクト(リンク、住所等)が含まれる。 rows_to_spark_dataframe() はデフォルトで mode="json_string" を使用し、各行を単一の row_json カラムにまとめる。特定フィールドを取り出すには下流で from_json を使用すること。
  • ネットワーク — Fusion ポッドはパブリックアクセス可能(*.fa.<region>.oraclecloud.com)であるため、AIDP VCN のルーティング設定は不要。

参考資料

原文(English)を表示

aidp-fusion-rest — Fusion ERP / HCM / SCM REST → Spark

When to use

  • User wants to pull a small-to-medium volume of records from Fusion REST APIs (/fscmRestApi/, /hcmRestApi/, etc.) into a Spark DataFrame.
  • User mentions: "Fusion ERP", "Fusion REST", "FA REST", "Cloud ERP API".
  • Total expected rows fit comfortably in memory (≤ ~50k); for >499 rows the helper auto-pages, but for bulk → BICC is faster.

When NOT to use

  • For bulk extracts (>50k rows, daily snapshots) → use aidp-fusion-bicc. Fusion's REST surface is hard-capped at 499 rows/page (MOS Doc ID 2429019.1) — pulling millions paginated is slow.
  • For EPM Cloud Planning → use aidp-epm-cloud.
  • For Essbase MDX → use aidp-essbase.

Prerequisites in the AIDP notebook

  1. pip install requests pandas (usually already on the cluster).
  2. Helpers on sys.path.
  3. Fusion pod URL + HTTP Basic credentials.

Auth: HTTP Basic

import os
from oracle_ai_data_platform_connectors.auth import http_basic_session
from oracle_ai_data_platform_connectors.rest.fusion import (
    fetch_paged, rows_to_spark_dataframe,
)

session = http_basic_session(
    username=os.environ["FUSION_USER"],
    password=os.environ["FUSION_PASSWORD"],
    base_url=os.environ["FUSION_BASE_URL"],
)

rows = fetch_paged(
    session=session,
    base_url=os.environ["FUSION_BASE_URL"],
    path="/fscmRestApi/resources/11.13.18.05/invoices",
    fields="InvoiceId,InvoiceNumber,InvoiceAmount,InvoiceDate",
    extra_params={"q": "InvoiceDate >= '2026-01-01'"},
)

df = rows_to_spark_dataframe(spark, rows)
df.show(5)
print("rows:", df.count())

Gotchas

  • 499 row/page hard cap — Fusion silently truncates limit=500+ to 499. Helper enforces this automatically.
  • onlyData=true — helper sets this so only the actual fields come back, not Fusion's HATEOAS link envelope. Saves bandwidth.
  • q= filter syntax is Fusion-specific (q=InvoiceDate >= '2026-01-01' AND Status = 'PAID'). Quote string values in single quotes.
  • Nested struct columns — Fusion responses contain nested objects (links, addresses). rows_to_spark_dataframe() defaults to mode="json_string" which packs each row into a single row_json column. Use from_json downstream to project specific fields.
  • Network — Fusion pods are public (*.fa.<region>.oraclecloud.com); no AIDP VCN routing needed.

References

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