agentsclimarketplace

Sap build process automation

Skill efeumutaslan/SAP-SKILLS/skills/sap-build-process-automation

23 SAP development skills for Claude Code — ABAP, RAP, CAP, Fiori, BTP, HANA, S/4HANA, Integration Suite and more. Agent Skills Specification compatible.

Install
npx -y skills add efeumutaslan/SAP-SKILLS --skill sap-build-process-automation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

SAP Build Process Automation skill for workflow, RPA, and business rules development. Use when creating approval workflows, decision tables, RPA bots (Desktop Agent), API triggers, or event-driven processes from S/4HANA. Also covers Forms, Actions (OData/REST connectors), Visibility dashboards, and process monitoring. If the user mentions SBPA, SAP workflow, approval process, decision table, or RPA bot on BTP, use this skill.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

10.7 KB, as published. Nobody here has run it

SAP Build Process Automation

Related Skills

  • sap-s4hana-extensibility — S/4HANA event sources and API integration
  • sap-security-authorization — BTP authorization for process automation
  • sap-rap-comprehensive — RAP business events as process triggers
  • sap-event-mesh — Event-driven triggers from S/4HANA business events
  • sap-signavio — Model processes in Signavio, automate in SBPA
  • sap-integration-suite-advanced — Complex API connectors for Actions

Quick Start

Create a workflow in 5 steps:

  1. SAP Build Lobby → Create → Business Process Project
  2. Add a Process → Choose trigger: Form, API, or Event
  3. Add steps: Approval → Decision → Action → (repeat)
  4. Configure conditions (If/Else gateways)
  5. Release → Deploy → Test in Monitor tab

Architecture:

SAP Build Process Automation (BTP)
├── Process Builder    — Visual workflow modeling
├── Decision Editor    — Business rules / decision tables
├── Automation Editor  — RPA bot designer
├── Form Builder       — Trigger, approval, task forms
├── Visibility         — Process monitoring dashboards
└── Actions            — API connectors (OData, REST)

Core Concepts

Trigger Types

TriggerStart MethodUse Case
FormUser fills a request formLeave request, purchase approval
APIREST API call (OAuth2)System integration, external apps
EventEvent Mesh subscriptionS/4HANA business events, SuccessFactors events

Step Types

StepDescription
ApprovalRoutes to approver(s) with approve/reject form
DecisionEvaluates business rules (decision table or text rule)
AutomationRuns RPA bot (attended or unattended)
ActionCalls external API (OData/REST)
Sub-ProcessReusable embedded process
MailSends notification email
ConditionIf/Else routing based on data

Decision Tables

Decision tables are if/then rule engines:

IF OrderAmount > 10000 AND Region = "EMEA"
THEN ApprovalLevel = "Director", Priority = "High"

IF OrderAmount > 5000 AND Region = "EMEA"
THEN ApprovalLevel = "Manager", Priority = "Medium"

IF OrderAmount <= 5000
THEN ApprovalLevel = "TeamLead", Priority = "Low"

Execution modes:

  • First Match — Returns the first matching rule (top-down, stops at first hit)
  • All Match — Returns all matching rules

Decisions can be deployed independently and called via RESTful Decision API.

Form Types

TypePurposeEditable
Trigger FormStarts the process (user input)Yes — full input
Approval FormShows context + approve/rejectRead-only context + action buttons
Task FormAdditional user input mid-processYes — partial input
Notification FormInformation display onlyRead-only

Common Patterns

Pattern 1: Purchase Order Approval Workflow

[Form Trigger: PO Request]
    → [Decision: Approval Level]
        IF amount > 10000 → [Approval: Director]
        IF amount > 5000  → [Approval: Manager]
        ELSE              → [Auto-Approve]
    → [Action: Create PO in S/4HANA via OData]
    → [Mail: Notify Requester]

Pattern 2: API Trigger Setup

  1. Add API trigger to process
  2. Note the generated API endpoint and definition ID
  3. Configure OAuth2 credentials in BTP service key
  4. Call endpoint:
POST /workflow/rest/v1/workflow-instances
Headers: Authorization: Bearer <token>
Body: {
  "definitionId": "{{process_definition_id}}",
  "context": {
    "orderId": "PO-12345",
    "amount": 15000,
    "requester": "[email protected]"
  }
}

Pattern 3: Event Trigger from S/4HANA

  1. Configure SAP Event Mesh on BTP
  2. In S/4HANA: Enable business events (e.g., sap.s4.beh.purchaseorder.v1.PurchaseOrder.Created.v1)
  3. In SBPA: Add Event Trigger → select event from catalog
  4. Map event payload to process context variables
  5. Process starts automatically when event fires

Pattern 4: Action (API Connector)

  1. Create Action Project in SAP Build
  2. Import API specification (OData metadata or OpenAPI)
  3. Configure destination:
{
  "Name": "S4HANA_API",
  "Type": "HTTP",
  "URL": "https://my-s4.ondemand.com",
  "Authentication": "OAuth2ClientCredentials",
  "ProxyType": "Internet",
  "sap.processautomation.enabled": true,
  "sap.applicationdevelopment.actions.enabled": true
}
  1. Use Action step in process to call the API

Pattern 5: RPA Automation

Automation: Extract Invoice Data
1. Open Browser → Navigate to vendor portal
2. Read Table → Extract invoice line items
3. Loop → For each line item:
   a. Map fields to S/4HANA format
   b. Call Action: Post invoice via API
4. Log results → Send summary email

Desktop Agent requirements: Windows only, installed locally, connects to BTP tenant.

Error Catalog

ErrorCauseFix
403 Forbidden on deployMissing role collection ProcessAutomationAdminAssign role collection in BTP cockpit
"Process stuck in running"Approval task not assigned or recipient offlineCheck Monitor → open instance → reassign task
Action timeoutAPI destination unreachable or slowCheck destination config; increase timeout
Automation "Agent Offline"Desktop Agent not running or disconnectedStart Desktop Agent; check network connectivity
Event trigger not firingEvent Mesh subscription misconfiguredVerify topic subscription and event format
Decision returns emptyNo matching rule foundAdd a default/catch-all rule at bottom of decision table
Form data not passingVariable binding missing between stepsCheck input/output mapping in process flow
"503 Action Internal Error"Destination missing required propertiesAdd sap.processautomation.enabled = true to destination
Deploy fails "version exists"Same version already deployedIncrement version number before release
Memory exceeded in automationProcessing large dataset in single loopUse batch processing (chunks of 100-500 records)

Performance Tips

  • Use sub-processes for reusable logic (DRY principle)
  • Define custom variables as constants for magic values
  • Batch processing in automations: process records in chunks, not one-by-one
  • Use destination variables for multi-environment support (dev/test/prod)
  • Deploy decisions independently when business rules change frequently
  • Keep forms simple: <15 fields per form for good UX
  • Use SemVer (x.y.z) versioning for release management

Bundled Resources

FileWhen to Read
references/sbpa-complete-guide.mdFull SBPA reference with all component details
references/decision-patterns.mdDecision table design patterns and examples
references/action-connector-guide.mdSetting up API connectors with destinations
templates/approval-workflow.jsonBasic approval workflow template
templates/decision-table.jsonDecision table configuration template

Gotchas

  • Process vs. Automation: "Process" = workflow (server-side); "Automation" = RPA bot (desktop agent, client-side) — they're complementary but very different
  • Desktop Agent requirement: RPA automations require SAP Build Desktop Agent installed on user's Windows machine — cannot run headless on server
  • Decision table versioning: Published decision tables are immutable; to change, create a new version and update the process to reference it
  • Form data types: SBPA forms support limited data types; complex nested structures may need flattening before passing to forms
  • API trigger authentication: API triggers use OAuth 2.0 from BTP — the calling system needs a proper service key, not basic auth
  • Error handling scope: Try-catch in processes catches only the enclosed steps; unhandled errors in subprocesses bubble up to parent
  • Parallel branches and merge: Parallel gateways must have matching merge gateway — orphaned branches cause process to hang indefinitely
  • SAP Build Store content: Pre-built content from SAP Build Store may need customization; don't assume it works out-of-the-box for your scenario

Advanced Patterns

Pattern 6: Multi-Level Approval with Escalation

[Form: Expense Report]
    → [Decision: Approval Matrix]
        IF amount > 50000 → [Approval: CFO] (deadline: 3 days)
        IF amount > 10000 → [Approval: Director] (deadline: 2 days)
        IF amount > 1000  → [Approval: Manager] (deadline: 1 day)
        ELSE              → [Auto-Approve]
    → [Condition: Approved?]
        YES → [Action: Post to S/4HANA FI]
              → [Mail: Confirmation to requester]
        NO  → [Mail: Rejection with reason]
              → [End]

Escalation: If no response within deadline →
    → [Action: Notify substitute approver]
    → [Approval: Substitute] (deadline: 1 day)
    → [Condition: Still no response?] → [Auto-Reject]

Pattern 7: Parallel Processing with Aggregation

[API Trigger: Multi-Department Review]
    → [Parallel Gateway]
        ├── [Approval: Legal Review]
        ├── [Approval: Finance Review]
        └── [Approval: Compliance Review]
    → [Merge Gateway: All must approve]
    → [Decision: Final Assessment]
    → [Action: Update status in S/4HANA]

Pattern 8: Exception Handling

{
  "errorHandling": {
    "type": "boundary-event",
    "attachedTo": "Action: Create PO",
    "errorType": "timeout",
    "handler": [
      { "step": "Log error to monitoring" },
      { "step": "Retry with exponential backoff", "maxRetries": 3 },
      { "step": "If still failing: route to manual queue" }
    ]
  }
}

Source Documentation

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.