Skip to content

Document SAP JCo transactional RFC operations and add an example page - #628

Open
RDPerera wants to merge 1 commit into
wso2:mainfrom
RDPerera:sap-jco-transactional-docs
Open

Document SAP JCo transactional RFC operations and add an example page#628
RDPerera wants to merge 1 commit into
wso2:mainfrom
RDPerera:sap-jco-transactional-docs

Conversation

@RDPerera

Copy link
Copy Markdown
Contributor

Purpose

Documents the transactional RFC operations on the SAP JCo action reference, and adds the example page this connector was missing.

sap.jco is currently the only SAP connector in the catalog without an example.md — every sibling (sap.businessone.*, sap.signavio, sap.commerce.webservices) has one.

Changes

action-reference.md — new Transactional RFC operation group covering the operations for calling a function module with a delivery guarantee:

Operation Purpose
sendTRfc Calls a function module as a tRFC, applied exactly once
sendQRfc Calls a function module as a qRFC, exactly once and in order per inbound queue
sendBgRfcUnit Commits several calls as a single bgRFC unit of work (type T or Q)
getBgRfcUnitState / confirmBgRfcUnit Unit state polling and confirmation
createTid / confirmTid Transaction ID lifecycle for retry flows

Each follows the page's existing structure: a <details> block with a parameter table, Returns, and sample code. The prose explains the parts that are easy to get wrong — that these calls are asynchronous so export values are discarded, that autoConfirm = false is what makes a retry safe, that a confirmed TID must never be reused, and that CONFIRMED only exists after the client confirms, so polling for it before confirming would never return.

example.md (new) — walks through calling an RFC-enabled function module with execute against STFC_CONNECTION, which exists on every ABAP system so the example runs anywhere. A second section shows the same call made exactly once with sendTRfc, for interfaces that post business documents and must never post them twice.

overview.md — key features and the actions table now mention transactional RFC.

en/sidebars.ts — registers the new example page. Placed after trigger-reference, matching the ordering used by other connectors that have both.

Verification

  • Every Ballerina snippet on both pages was compiled against the connector rather than written by eye.
  • The output shown on the example page was captured from a real SAP system (ECC, release 750), not composed by hand.

Note on release timing

The transactional operations are added by ballerina-platform/module-ballerinax-sap.jco#79 and are not released yet, so this documentation PR should merge only after that connector change ships.

The example page is written as a code-first guide and does not include the six low-code UI screenshots that sibling example pages carry. Happy to regenerate it in that format if preferred.

The SAP JCo action reference covered execute, sendIDoc, and close. It now also
documents the transactional operations for calling function modules: sendTRfc
and sendQRfc, bgRFC units through sendBgRfcUnit with getBgRfcUnitState and
confirmBgRfcUnit, and the TID lifecycle through createTid and confirmTid.

Adds the example page that this connector was missing while every sibling SAP
connector has one. It walks through calling an RFC-enabled function module with
execute, then shows the same call made exactly once with sendTRfc for
interfaces that must never post a document twice.

Registers the new page in the sidebar and mentions transactional RFC in the
overview's key features and actions table.

Every Ballerina snippet on both pages was compiled against the connector, and
the example page's output was captured from a real SAP system rather than
written by hand.
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 7f1a0ca1-7539-40c7-ae4a-a7bfaeffc39a


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Broken links, images & orphan pages

Passing — no broken links or images found.

Links/images come from one crawl of the production build (baseUrl-aware). Orphans are docs not referenced by sidebars.ts.

Summary

  • Broken links & images — total 0 · 🆕 introduced 0 · 📄 already on main 0
  • Orphan pages — total 8 · 🆕 introduced 0 · 📄 already on main 8

Broken links & images

Introduced by this PR

No new broken link(s)/image(s) introduced by this PR. ✅

Already on main — 0 total

None.

Orphan pages

Introduced by this PR

No new orphan page(s) introduced by this PR. ✅

Already on main — 8 total

Already present on the base branch (not caused by this PR):

Show 8
  • docs/deploy-operate/observe/datadog-integration
  • docs/deploy-operate/observe/elastic-stack-elk
  • docs/deploy-operate/observe/metrics-prometheus-grafana
  • docs/deploy-operate/observe/opensearch-integration
  • docs/deploy-operate/observe/recipe-elk-stack
  • docs/deploy-operate/observe/recipe-kubernetes-production
  • docs/deploy-operate/observe/recipe-local-development
  • docs/deploy-operate/observe/recipe-opensearch-setup

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant