UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
ドキュメント · SKILL.md

sap-integration-wiki

sap-integration-wiki

Comprehensive integration guide for connecting external systems (Java, Python, .NET, Node.js, low-code platforms, etc.) to SAP (ECC, S/4HANA On-Premise, S/4HANA Cloud). Covers OData V2/V4, RFC/JCo, SOAP over HTTP RFC (no-JCo RFC calls via standard HTTPS), IDoc/PI-PO, BAPI, RAP REST APIs, BTP Integration Suite, SAP Event Mesh, FI-AA asset accounting, AR/AP o…

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: sap-integration-wiki description: > Comprehensive integration guide for connecting external systems (Java, Python, .NET, Node.js, low-code platforms, etc.) to SAP (ECC, S/4HANA On-Premise, S/4HANA Cloud). Covers OData V2/V4, RFC/JCo, SOAP over HTTP RFC (no-JCo RFC calls via standard HTTPS), IDoc/PI-PO, BAPI, RAP REST APIs, BTP Integration Suite, SAP Event Mesh, FI-AA asset accounting, AR/AP open items, and Financial Shared Service Center (FSSC) integration patterns (Kingdee/金蝶 ↔ SAP, SAP Central Finance CFIN) with scenario-driven recommendations, working code examples, payload samples, and error troubleshooting. Activate this skill whenever someone asks how to integrate with SAP, call a SAP API, create or read SAP data (purchase orders, inventory, sales orders, financial documents, AR/AP open items, asset accounting, material master, business partner, production orders) from outside SAP, configure JCo or RFC, call SAP BAPI without JCo, use SOAP to call SAP RFC, call SAP from Python/Node.js/Go without installing SAP libraries, handle SAP IDoc messages, use BTP Cloud Integration or iFlow, set up Communication Arrangements for S/4HANA Cloud, troubleshoot SAP HTTP 400/401/403 errors, implement retry or idempotency for SAP calls, build a financial shared service center on SAP, connect Kingdee/金蝶/用友 to SAP, replicate financial documents into SAP Central Finance (CFIN), or says things like "connect to SAP", "get data from SAP", "SAP keeps returning 401", "how do I call BAPI from Java", "how do I call SAP RFC from Python", "call SAP without JCo", "SAP SOAP endpoint", "/sap/bc/soap/rfc", "SAP OData not working", "CSRF token validation failed", "IDoc status 51", "BAPI_PO_CREATE1", "API_PURCHASEORDER_PROCESS_SRV", "JCo connection", "RFC destination", "BTP iFlow", "Cloud Connector", "SAP Event Mesh", "Communication Arrangement", "BAPI_FIXEDASSET_GETLIST", "BAPI_ASSET_ACQUISITION_POST", "CFIN OData V4", "API_CFinRpldSupplierInvoice", "财务共享中心" — even when the user does not say "SAP" and just describes the problem symptomatically.

SAP Integration Wiki

This skill routes integration questions to the right reference based on your context. Before loading any reference file, ask the following if not already clear from the user's message:

Clarifying questions (ask only what is unknown)

  1. SAP version: ECC 6.0 / S/4HANA On-Premise / S/4HANA Cloud Public Edition / S/4HANA Cloud Private Edition?
  2. Integration direction: External → SAP (write/trigger) / SAP → External (event/push) / Bidirectional / Read-only query?
  3. Latency requirement: Synchronous (real-time response needed) / Asynchronous (fire-and-forget or queue)?
  4. Business object: Purchase Order / Sales Order / Inventory/Stock / Financial Document / Material Master / Business Partner / Production Order / BOM / Other?
  5. Consumer technology: Java/JVM / Python / .NET / Node.js / Low-code (Zapier, Power Automate) / Other?

Routing logic

After clarifying, follow this decision tree to pick the right reference files:

Step 1: Pick the scenario file

Read the relevant file from references/scenarios/ based on the business object:

Business ObjectFile
Purchase Order (create, read, change, approve)references/scenarios/mm-po.md
Inventory / Stock query or reservationreferences/scenarios/mm-stock.md
Sales Order (create, track, confirm)references/scenarios/sd-order.md
Financial Document (post GL, read FI docs)references/scenarios/fi-doc.md
AR / AP open items, supplier invoice, payment, down paymentreferences/scenarios/fi-ar-ap.md
Fixed Asset (read register, acquisition, retirement, transfer)references/scenarios/fi-asset.md
Financial Shared Service Center (FSSC) — Kingdee↔SAP, CFINreferences/scenarios/fi-fssc.md
Material Master / Business Partner / Org Data (cost center, plant)references/scenarios/master-data.md
Production Order / BOM / Goods Movement (261/101) / MRPreferences/scenarios/pp-production.md

Always read the scenario file first before reading any tech file. The scenario file specifies which integration technology to recommend per version.

Step 2: Pick the technology file

Read the relevant file from references/tech/ based on the recommended approach from Step 1:

TechnologyFileUse when
OData REST V2/V4references/tech/odata.mdS/4HANA On-Prem or Cloud, standard scenario, HTTP-native client
RFC / JCo (Java remote function call)references/tech/rfc-jco.mdECC (primary), S/4 when no OData exists, bulk operations, Java-only
SOAP over HTTP RFC (no JCo)references/tech/soap-rfc-http.mdCall any RFC-FM from non-JVM runtime via HTTPS — Python, Node.js, Go, curl; ECC or S/4 On-Prem
IDoc / SAP PI-POreferences/tech/idoc-pi.mdAsync integration, EDI, partner/supplier message exchange
BAPI or RAPreferences/tech/bapi-rap.mdECC BAPIs, S/4HANA RAP OData V4 services, decision on which to use
Authentication (any technology)references/tech/auth.mdAuth failures, first-time setup, OAuth2, SSL/TLS, ICF activation
BTP Integration Suite / iFlow / Cloud Connector / Event Meshreferences/tech/btp-cloud-integration.mdBTP-mediated integration, S/4HANA Cloud + BTP, Event Mesh consumers, Communication Arrangements
Retry / idempotency / security / monitoring / testingreferences/tech/best-practices.mdProduction hardening, error classification, structured logging, connection pooling, CI patterns

Step 3: If there is an error or failure

Read references/troubleshoot/ based on symptom:

SymptomFile
HTTP 4xx / 5xx from OData endpointreferences/troubleshoot/odata-errors.md
Login failures / token issues / CSRF errorsreferences/troubleshoot/auth-errors.md
IDoc stuck / status 51 / port not configuredreferences/troubleshoot/idoc-errors.md
Behavior differs between SAP versionsreferences/troubleshoot/version-diff.md

Quick technology decision matrix

Use this when the user has not specified a technology preference:

SAP VersionScenarioRecommendedFallback
S/4HANA On-Prem 2020+Create/Read POOData V2 API_PURCHASEORDER_PROCESS_SRVJCo + BAPI_PO_CREATE1
S/4HANA On-Prem 2023+Create/Read POOData V4 API_PURCHASEORDER (if released)OData V2
ECC 6.0Create/Read POJCo + BAPI_PO_CREATE1IDoc ORDERS
ECC 6.0 (non-JVM client)Call any RFC-FM without JCoSOAP over HTTP (/sap/bc/soap/rfc)Java JCo microservice proxy
S/4HANA Cloud PublicAnyOData V4 / RAPNone (RFC unavailable externally)
Any versionStock query (real-time)OData API_MATERIAL_STOCK_SRVBAPI_MATERIAL_STOCK_REQ_LIST
Any versionFI postingJCo + BAPI_ACC_DOCUMENT_POST(no standard OData for posting)
S/4HANA On-Prem 1809+Query AR/AP open itemsOData V2 API_OPLACCTGDOCITEMCUBE_SRVJCo BAPI_AR_ACC_GETOPENITEMS / BAPI_AP_ACC_GETOPENITEMS
ECC 6.0Query AR/AP open itemsJCo BAPI_AR_ACC_GETOPENITEMS / BAPI_AP_ACC_GETOPENITEMS—
S/4HANA On-Prem 1809+Create supplier invoiceOData V2 API_SUPPLIERINVOICE_PROCESS_SRVJCo BAPI_INCOMINGINVOICE_CREATE
Any versionRead fixed asset list/valuesJCo BAPI_FIXEDASSET_GETLIST—
Any versionPost asset acquisition/retirement/transferJCo BAPI_ASSET_ACQUISITION_POST / _RETIREMENT_POST / _TRANSFER_POST (always CHECK first)—
S/4HANA CloudFixed asset operationsOData V4 CE_FIXEDASSET_0001 / OP_FIXEDASSETACQUISITION_0001 (Comm. Arr. SAP_COM_0510)—
S/4HANA CFINPost from non-SAP (Kingdee) to Central FinanceOData V4 API_CFinRpldSupplierInvoice / API_CFinRpldBillingDocument (Comm. Arr. SAP_COM_0453)BTP iFlow + CFIN
Any versionAsync supplier EDIIDoc via PI/POFile-based integration
S/4HANA On-PremRead Material MasterOData V2 API_PRODUCT_SRVJCo + BAPI_MATERIAL_GET_DETAIL
S/4HANA On-PremCreate/Change MaterialJCo + BAPI_MATERIAL_SAVEDATAIDoc MATMAS05
S/4HANA On-Prem 2020+Business Partner (Customer/Vendor)OData V2 API_BUSINESS_PARTNERJCo + BAPI_BUPA_CREATE_FROM_DATA
ECC 6.0Business Partner / Customer / VendorJCo + BAPI_CUSTOMER_CREATEFROMDATA1 / BAPI_VENDOR_CREATEIDoc DEBMAS/CREMAS
S/4HANA On-PremProduction Order (create/change)OData V2 API_PP_ORDERS_SRVJCo + BAPI_PRODORD_CREATE
Any versionGoods Movement (261/101/etc.)JCo + BAPI_GOODSMVT_CREATEOData API_MATERIAL_DOCUMENT_SRV (S/4)
Any versionProduction Order ConfirmationJCo + BAPI_PRODORDCONF_CREATE_TTIDoc LOIPRO
AnyBTP-mediated integration to S/4HANA CloudBTP Integration Suite iFlow + Communication ArrangementN/A
AnyEvent-driven / decoupled asyncSAP Event Mesh (BTP)IDoc via PI/PO

Scripts and assets

Point users to these runnable artifacts when they need working code or templates:

NeedResource
Generate Postman Collection for any OData servicescripts/gen-odata-postman.js
Generate JCo .jcoDestination properties filescripts/gen-jco-config.py
Generate IDoc XML skeleton for any message typescripts/gen-idoc-template.py
PO creation payload (OData V2 POST body)assets/payloads/po-create.json
PO item quantity update (PATCH body)assets/payloads/po-update.json
IDoc ORDERS05 XML exampleassets/payloads/idoc-orders05.xml
OAuth2 config template for S/4HANA On-Premiseassets/configs/oauth-template.json
JCo connection properties template (all properties)assets/configs/jco-props.template

Response format

When answering an integration question, always structure the response as:

  1. Recommended approach — one sentence naming the technology and why it fits the user's version and scenario
  2. Prerequisites — what must be configured on the SAP side first (user roles, service activation, RFC destination, partner profile, etc.)
  3. Implementation steps — numbered list with working code snippets (curl, Java, Python as appropriate to the user's tech stack)
  4. Common pitfalls — 2–3 things that typically go wrong and exactly how to avoid or fix them
  5. Reference — link to SAP API Business Hub or SAP Help Portal page when available

Important SAP concepts for non-SAP developers

  • CSRF token: SAP OData services require a two-step process for mutating operations (POST/PATCH/DELETE). First GET to fetch the token, then include it in all write calls. Token is tied to a session cookie.
  • BAPI_TRANSACTION_COMMIT: Every write BAPI call in SAP must be followed by an explicit BAPI_TRANSACTION_COMMIT call, or the changes will be rolled back. This is a hard requirement, not optional.
  • OData $batch: SAP OData supports $batch for grouping multiple operations, but has strict ordering and boundary requirements.
  • SAP system number (SYSNR): A two-digit instance number (e.g., 00), not the host port. Do not confuse with port 3300+SYSNR.
  • Client: SAP is multi-tenanted within a single system. Always specify the client (e.g., 100, 800) in every connection.
  • ICF node: SAP Internet Communication Framework. OData services are only reachable if the corresponding ICF node is activated. Transaction: SICF.
  • SOAP over HTTP RFC: SAP exposes all RFC-enabled function modules via a standard SOAP endpoint at /sap/bc/soap/rfc. No SAP-specific client library is required — any HTTP library works. The ICF node for this path must be activated in SICF. Use this when JCo is not practical (non-JVM runtimes, containerised workloads, rapid prototyping). Does not support IDoc, tRFC, or qRFC.
保存したスキル