9.5 Workflow Derivation Rules and How They Work with Event Reason Derivation

Key Takeaways

  • Workflow derivation rules use the Trigger Workflows scenario and are assigned only as onSave rules.
  • The THEN statement sets wfConfig, the field that stores the workflow to run; only one workflow can be assigned to a transaction.
  • Without a workflow derivation rule, the system saves the data directly without approval.
  • Workflow derivation for new hires must be assigned under the jobInfo element.
  • A workflow rule can test the derived event reason because ERD runs before workflow derivation on save.
Last updated: September 2026

9.5 Workflow Derivation Rules and How They Work with Event Reason Derivation

Quick Answer: A workflow derivation rule (scenario Trigger Workflows, assigned onSave) sets the wfConfig value, which is the workflow record that must approve the transaction. Without such a rule, EC saves the change directly, with no approval. Because ERD runs before workflow derivation, the workflow rule can branch on the derived event reason.

Purpose

Workflow derivation rules define the conditions that start a specific workflow. For example, when an employee's salary increases, a salary-approval workflow starts. With ERD in place, the combination is powerful. If the system derives Promotion with Pay Change, the workflow rule can route that reason to the matching approval chain.

Setting Up a Workflow Derivation Rule

  1. Create a rule with the scenario Employee Central Core > Trigger Workflows. In BCUI, rules from this scenario can be assigned only as onSave.
  2. Choose the relevant standard or model base object for the element.
  3. Build IF / ELSE IF conditions, for example IF Event Reason.Value = Promotion with Pay Change.
  4. In each THEN, set wfConfig, the field that stores the workflow record to run.
  5. Assign the rule in Manage Business Configuration under the element's Trigger Rules as onSave.

Only one workflow can be assigned to a transaction.

Elements That Support Workflows

  • National ID Card
  • Home Address
  • Personal Information
  • Global Information
  • Personal Relationship Info
  • Work Permit Information
  • Job Information
  • Job Relationship Information
  • Employment Information
  • Compensation Information
  • Pay Component Recurring
  • Pay Component Non-Recurring
  • Foundation Objects

SAP's Recommendations

  • Prefer one rule with several IF statements over many single rules.
  • On the UI, the element's onSave rule is evaluated, and the workflow in the THEN runs when the condition is met. If no workflow configuration is assigned by the onSave rule, the system saves the data without approval.
  • Workflow derivation rules for new hires must be assigned under the jobInfo element.
  • Approval is not triggered for changes made in History, because History actions never start workflows (Sections 7.5 and 9.4).

Execution Order: Why ERD Comes First

On save of Job Information, the order is: Job Information rules, then event reason derivation, then workflow derivation. When MSS saves Job and Compensation Information together: Job Information rules, Compensation Information rules, ERD for Job Information, workflow derivation for Job Information, ERD for Compensation Information, and workflow derivation for Compensation Information (Section 5.2). The workflow rule therefore always sees the final event reason.

Worked Example 1: ERD and Workflow Together

THR81's optional step assigns the existing WF_jobInfo rule (base object Job Information Model, onSave) to Job Information next to ERD_JOBINFO. When Is Eligible for Benefit changes, ERD sets Benefits Adjustment (PAYBEN), and the workflow rule derives the Data Change (DTACHNG) workflow. SAP also suggests an alternative: add ELSE IF branches to the existing jobInfoModel_ERD_migrated_rule and WF_jobInfo rules instead of creating a separate ERD rule, which keeps the logic grouped.

Worked Example 2: A Workflow for Job Relationships

ACE wants approval when job relationships change, except when System Administrators make the change.

Step 1 – Workflow record (Manage Organization, Pay and Job Structures):

FieldValue
Workflow ID / NameJobRelWorkFlow / Job Relationship WF
Is Delegate SupportedNo
Step 1Approver Type Role, Approver Role Manager Manager
Step 2Approver Type Dynamic Role, Approver Role HR Approval

Step 2 – Rule:

SettingValue
Scenario / IDTrigger Workflows / WF_JobRel
Base objectJob Relationships Model
IFJob Relationship Type or Name ≠ previous value and user is in Permission Group ≠ "System Administrators" → Set wfConfig = JobRelWorkFlow
ELSE IFSame change and user is in Permission Group = "System Administrators" → no workflow
AssignmentBCUI > Job Relationships > Trigger Rules, onSave

Step 3 – Test: proxy as a manager (Sean Arnold) and add a Matrix Manager relationship for an employee. The workflow is triggered. As the administrator, the same change saves without approval.

This example shows two useful techniques: comparing a field with its previous value (Model base object), and branching on the current user's permission group.

Workflows Beyond HRIS Elements

  • Foundation objects can also be protected by workflows, as the element list shows.
  • MDF objects such as Position use MDF rules with the Workflow purpose, assigned as a Save rule on the object, plus Pending Data = Yes (Section 13.3).

Troubleshooting Checklist

SymptomCheck
Change saves without approvalIs a Trigger Workflows rule assigned onSave to this element, and does a branch match? Was the change made in History?
Wrong workflow chosenDoes the rule test the derived event reason? Is the ELSE IF order right?
Hire has no approvalIs the hire workflow rule assigned in jobInfo?
The rule never firesIs the base object in BCUI the same Model object used to build the rule? Does the rule ID contain spaces?
Test Your Knowledge

A Job Information change is saved without any approval, although workflow records exist. What is the most likely cause?

A
B
C
D
Test Your Knowledge

Where must the workflow derivation rule for new hires be assigned?

A
B
C
D
Test Your Knowledge

A workflow derivation rule on Job Information tests whether the event reason equals 'Promotion with Pay Change', and the reason is set by an ERD rule on the same element. Why does this work?

A
B
C
D