agentsclimarketplace

Sap signavio

Skill efeumutaslan/SAP-SKILLS/skills/sap-signavio

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-signavio

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 Signavio process management and mining skill. Use when modeling BPMN 2.0 processes, running process mining (Process Intelligence), configuring process KPIs, or integrating Signavio with S/4HANA and SBPA. If the user mentions Signavio, process mining, BPMN modeling, conformance checking, or process transformation, 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

9.8 KB, as published. Nobody here has run it

SAP Signavio Process Management & Mining

Related Skills

  • sap-build-process-automation — Automate processes modeled in Signavio
  • sap-s4hana-extensibility — Process variants for S/4HANA scenarios
  • sap-cloud-alm — ALM process monitoring complements Signavio insights

Quick Start

Choose your Signavio component:

ComponentPurposeKey Activity
Process ManagerBPMN modeling, process repositoryDesign & publish processes
Process IntelligenceProcess mining, conformanceAnalyze event logs
Process GovernanceApproval workflows for modelsGovern process changes
Collaboration HubStakeholder communicationShare & collect feedback
Journey ModelerCustomer/employee journeysMap experience flows

First API call — List Process Models:

curl -X GET "https://editor.signavio.com/p/revision" \
  -H "x-signavio-id: {{SESSION_TOKEN}}" \
  -H "Accept: application/json" \
  -b "JSESSIONID={{SESSION_COOKIE}}"

Core Concepts

BPMN 2.0 Modeling Standards

ElementSymbolUsage
Start EventOne per process (normal flow)
End EventAt least one; use multiple for different outcomes
User Task▭ (person)Manual human activity
Service Task▭ (gear)Automated system call
Exclusive Gateway◇ (X)Either/or branching
Parallel Gateway◇ (+)Fork/join concurrent paths
Intermediate EventTimer, message, signal mid-flow
Subprocess▭ [+]Encapsulate reusable process

Process Intelligence (Mining) Pipeline

  1. Data extraction — Pull event logs from source systems (S/4HANA, ECC, SuccessFactors)
  2. Data transformation — Map to Signavio event log format (Case ID, Activity, Timestamp)
  3. Process discovery — Auto-generate process model from event data
  4. Conformance checking — Compare discovered vs. designed process
  5. Root cause analysis — Identify bottlenecks, rework loops, deviations
  6. KPI monitoring — Track cycle time, throughput, automation rate

Event Log Format

CaseID,Activity,Timestamp,Resource,Variant
PO-001,Create Purchase Requisition,2026-01-15T08:00:00Z,User_A,Standard
PO-001,Approve Purchase Requisition,2026-01-15T09:30:00Z,Manager_B,Standard
PO-001,Create Purchase Order,2026-01-15T10:00:00Z,System,Standard
PO-001,Goods Receipt,2026-01-20T14:00:00Z,User_C,Standard
PO-001,Invoice Receipt,2026-01-22T11:00:00Z,User_D,Standard
PO-001,Payment,2026-01-25T16:00:00Z,System,Standard

Common Patterns

Pattern 1: Signavio API Authentication

import requests

SIGNAVIO_URL = "https://editor.signavio.com"

def authenticate(email, password, tenant_id):
    """Authenticate and get session token."""
    resp = requests.post(
        f"{SIGNAVIO_URL}/p/login",
        data={
            "name": email,
            "password": password,
            "tenant": tenant_id,
            "tokenonly": "true"
        }
    )
    resp.raise_for_status()
    return {
        "token": resp.text.strip(),
        "cookie": resp.cookies.get("JSESSIONID")
    }

def get_headers(session):
    return {
        "x-signavio-id": session["token"],
        "Accept": "application/json",
        "Cookie": f"JSESSIONID={session['cookie']}"
    }

Pattern 2: Export BPMN Model

def export_bpmn_xml(session, model_id):
    """Export process model as BPMN 2.0 XML."""
    headers = get_headers(session)
    resp = requests.get(
        f"{SIGNAVIO_URL}/p/revision/{model_id}/bpmn2_0_xml",
        headers=headers
    )
    resp.raise_for_status()
    return resp.text

def export_svg(session, model_id):
    """Export process diagram as SVG."""
    headers = get_headers(session)
    headers["Accept"] = "image/svg+xml"
    resp = requests.get(
        f"{SIGNAVIO_URL}/p/revision/{model_id}/svg",
        headers=headers
    )
    resp.raise_for_status()
    return resp.text

Pattern 3: Process Mining Data Preparation (S/4HANA P2P)

-- CDS view for Procure-to-Pay event log extraction
@AbapCatalog.sqlViewName: 'ZV_P2P_EVLOG'
@Analytics: { dataCategory: #FACT }
define view Z_P2P_EVENT_LOG as

  -- Purchase Requisition Created
  select from eban {
    cast(banfn as abap.char(20)) as CaseID,
    'Create Purchase Requisition' as Activity,
    badat as EventTimestamp,
    ernam as Resource,
    bsart as Variant
  }
  union all
  -- Purchase Order Created
  select from ekko {
    cast(ebeln as abap.char(20)) as CaseID,
    'Create Purchase Order' as Activity,
    aedat as EventTimestamp,
    ernam as Resource,
    bsart as Variant
  }
  union all
  -- Goods Receipt
  select from mkpf
    inner join mseg on mkpf.mblnr = mseg.mblnr
                   and mkpf.mjahr = mseg.mjahr {
    cast(mseg.ebeln as abap.char(20)) as CaseID,
    'Goods Receipt' as Activity,
    mkpf.budat as EventTimestamp,
    mkpf.usnam as Resource,
    mseg.bwart as Variant
  }
  where mseg.bwart = '101'

Pattern 4: BPMN Best Practices Template

<!-- Well-structured BPMN process -->
<bpmn:process id="P2P_Standard" name="Procure-to-Pay Standard" isExecutable="true">
  <!-- Single start event -->
  <bpmn:startEvent id="Start" name="Purchase Need Identified"/>

  <!-- Clear task naming: Verb + Object -->
  <bpmn:userTask id="T1" name="Create Purchase Requisition"/>
  <bpmn:userTask id="T2" name="Approve Purchase Requisition"/>

  <!-- Gateway with labeled outgoing flows -->
  <bpmn:exclusiveGateway id="G1" name="Approval Decision"/>
  <bpmn:sequenceFlow id="F_Approved" name="Approved" sourceRef="G1" targetRef="T3"/>
  <bpmn:sequenceFlow id="F_Rejected" name="Rejected" sourceRef="G1" targetRef="T_Reject"/>

  <bpmn:serviceTask id="T3" name="Create Purchase Order"/>
  <bpmn:userTask id="T4" name="Confirm Goods Receipt"/>
  <bpmn:serviceTask id="T5" name="Process Invoice"/>
  <bpmn:serviceTask id="T6" name="Execute Payment"/>

  <bpmn:endEvent id="End_Success" name="Payment Completed"/>
  <bpmn:endEvent id="End_Rejected" name="Requisition Rejected"/>
</bpmn:process>

Pattern 5: Process KPI Configuration

{
  "kpis": [
    {
      "name": "Cycle Time",
      "description": "Average time from requisition to payment",
      "formula": "AVG(EndTimestamp - StartTimestamp)",
      "target": "< 15 days",
      "dimension": "days"
    },
    {
      "name": "First-Time-Right Rate",
      "description": "Percentage of cases without rework loops",
      "formula": "COUNT(cases_no_rework) / COUNT(all_cases) * 100",
      "target": "> 85%",
      "dimension": "percentage"
    },
    {
      "name": "Automation Rate",
      "description": "Activities executed by system vs. total",
      "formula": "COUNT(system_activities) / COUNT(all_activities) * 100",
      "target": "> 60%",
      "dimension": "percentage"
    },
    {
      "name": "Maverick Buying Rate",
      "description": "POs created without prior requisition",
      "formula": "COUNT(po_without_pr) / COUNT(all_po) * 100",
      "target": "< 5%",
      "dimension": "percentage"
    }
  ]
}

Error Catalog

ErrorMessageRoot CauseFix
401Session expiredToken timeout (default 30 min)Re-authenticate; implement token refresh
403Access deniedMissing workspace permissionsCheck Signavio role assignments
404Model not foundWrong revision ID or deleted modelUse directory API to get current revision
409ConflictConcurrent model editReload model, merge changes manually
Mining: No dataEmpty process graphEvent log has no matching casesVerify CaseID linking across activities
Mining: SpaghettiToo many variantsMissing activity normalizationStandardize activity names; filter outliers
Export: TimeoutLarge model export failedModel too complex (>200 elements)Split into subprocesses; export parts
Import: Invalid BPMNSchema validation errorNon-standard BPMN extensionsRemove vendor-specific extensions before import

Performance Tips

  1. Event log size — Keep under 10M events per analysis; sample or partition by date range
  2. Activity normalization — Standardize naming before import; "Create PO" and "PO Creation" = same activity
  3. Case linking — Use document flow tables (VBFA, EKBE) to link cross-module cases
  4. Incremental mining — Schedule delta extracts (changed since last run) for ongoing monitoring
  5. Model complexity — Keep BPMN models under 50 elements per diagram; use subprocesses for detail
  6. Variant analysis — Focus on top 20 variants (usually 80%+ of cases); group rare variants as "Other"
  7. Collaboration Hub — Publish only approved models; use governance workflow for version control

Gotchas

  • Signavio vs. BPA: Signavio models are design-time reference; SAP Build Process Automation is runtime execution — they complement, not replace each other
  • BPMN compliance: Signavio enforces strict BPMN 2.0; models from other tools may need cleanup before import
  • Event timestamp granularity: Second-level timestamps required for accurate mining; day-level creates artificial parallelism
  • Process Intelligence licensing: Mining capabilities require separate PI license; Process Manager alone doesn't include mining
  • S/4HANA connector: Pre-built extractors exist for O2C, P2P, AP — custom processes need manual event log setup

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.