CPI iFlows
BTP & Integrationintermediate

BTP CPI iFlows Part 2: Adapters, Mapping and Message Processing Steps

Key takeaway

Configure common adapters (HTTPS, OData, SOAP, IDoc, SFTP, Mail, JMS) and their key settings, use converters (JSON↔XML, CSV↔XML), Content Modifier, Request-Reply vs Send, and apply externalized parameters so iFlows move cleanly between tenants.

Explanation

📌 KEY POINTS
✅ Sender adapters: HTTPS, SOAP, IDoc, SFTP polling, JMS; receivers: OData, HTTP, SOAP, IDoc, SFTP, Mail and more.

✅ Converters switch formats (JSON↔XML, CSV↔XML) before mapping.

✅ Request-Reply waits for a response; Send is fire-and-forget (one-way).

✅ Adapter addresses, credentials and paths should be externalized.

⚠️ Mapping JSON directly without a defined schema/converter causes fragile, hard-to-debug flows.

━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE

Part 1 explained building blocks. Now adapters and steps.

━━━━━━━━━━━━━━━━━━━━
▶ 1. SENDER ADAPTERS

  • HTTPS, SOAP, IDoc, SFTP poll, JMS.

━━━━━━━━━━━━━━━━━━━━
▶ 2. RECEIVER ADAPTERS

  • OData, HTTP, SOAP, IDoc, SFTP, Mail.

━━━━━━━━━━━━━━━━━━━━
▶ 3. CONVERTERS

  • JSON/XML/CSV.

━━━━━━━━━━━━━━━━━━━━
▶ 4. CALL STEPS

  • Request-Reply vs Send.

━━━━━━━━━━━━━━━━━━━━
▶ 5. EXTERNALIZATION

  • Parameters per tenant.

━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP

  1. Build SFTP → CSV to XML → mapping → OData receiver.
  2. Externalize host, directory and credential.
  3. Deploy and verify.

✅ CHECKPOINT: file processed once and moved to archive.

Code example

ABAP Code
===== EXAMPLE FLOW =====SFTP sender (poll every 5 min, post-processing: move to /archive) → CSV to XML converter → Message Mapping → Request-Reply → OData receiver (POST A_SalesOrder) ===== EXTERNALIZED ====={{sftp_host}} {{sftp_dir}} {{sftp_cred}} {{odata_url}} {{odata_cred}}

Real project scenario

A project team saw duplicate sales orders every few minutes. The SFTP sender had no post-processing, so files were read again. Setting "move file" after processing fixed it.

Common mistakes

  • No SFTP post-processing.
  • Hand-written OData queries.
  • Mapping JSON without conversion.
  • Send when response needed.
  • Hard-coded addresses.

Best practices

  • Post-processing set.
  • Query wizard.
  • Converters first.
  • Right call step.
  • Externalize.

Interview angle

Questions: "Request-Reply vs Send?", "Which sender adapters exist?", "How do you handle JSON?"
Strong answer: adapters, converters, call steps, externalization, pitfalls.

Practice this lesson

Quick check

1. In an SAP Cloud Integration (CPI) iFlow, a developer needs to store a value in the Content Modifier so it can be referenced later using Groovy script via message.getProperty() but should NOT be automatically forwarded to the receiver system in the message header. Which Content Modifier action type should be used?

2. When configuring a receiver adapter in CPI that requires OAuth2 Client Credentials authentication, where should the client ID and client secret be stored?

3. Duplicate sales orders appear every few minutes from an SFTP-based iFlow. What is the likely cause?

Interview questions

1. Design an iFlow that picks up CSV files via SFTP and creates sales orders in S/4HANA.

Answer it in your own words first, then compare.

2. How would you apply CPI iFlows in a real SAP project? Walk through the design or implementation approach.

Answer it in your own words first, then compare.

Practice more with Interview AI →

Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.

More lessons in this topic

Interview questions on this topic

Related SAP topics