Oracle JD Edwards and SAP SuccessFactors integration
Oracle JD Edwards runs your on-premises finance, procurement, and HR data. SAP SuccessFactors runs your cloud HR and compensation. Connecting the two keeps employee records, cost centers, and organizational structure in agreement across both systems. New hires and job changes recorded in JD Edwards sync into SuccessFactors, and cost center hierarchies stay aligned so compensation allocations land on valid finance dimensions. ml-connector handles the AIS token authentication on the JD Edwards side and the OAuth2 SAML bearer token flow on the SuccessFactors side, polling on a schedule you control.
What moves between them
The main flow is from Oracle JD Edwards into SAP SuccessFactors. ml-connector polls JD Edwards Address Book records (F0101) and cost center hierarchies, translates them to SuccessFactors PerPerson and FOCostCenter entities, and creates or updates employee profiles and org structure in SuccessFactors. Cost center codes are aligned in both directions so compensation allocations in SuccessFactors map to valid JD Edwards cost center dimensions. Changes flow on a schedule you set, typically daily or weekly depending on your HR cycle. Writes flow only into SuccessFactors; JD Edwards remains the source of truth for employee and cost center master data.
How ml-connector handles it
ml-connector secures the JD Edwards AIS Server token by logging in once per session, caching the opaque token, and re-authenticating when a 444 HTTP response signals token expiry (typically every 30 to 60 minutes). On the SuccessFactors side, it signs a SAML assertion with the private key from your registered OAuth2 client, POSTs to the /oauth/token endpoint to get a fresh Bearer token (valid for 24 hours), and includes it in the Authorization header on all OData queries. It polls JD Edwards Address Book (F0101) with date filters to find new or changed employees, maps their personnel data to SuccessFactors PerPerson fields, and looks up matching FOCostCenter codes in SuccessFactors first so allocations land on valid accounts. When SuccessFactors returns HTTP 429 or 503, ml-connector backs off and retries with exponential jitter. OData datetime filters use the non-standard format /Date(milliseconds)/ in SuccessFactors responses and datetime'YYYY-MM-DDTHH:MM:SS' in query filters. Every record carries an audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized manufacturer with global operations runs Oracle JD Edwards on-premises for financials, procurement, and payroll data, and uses SAP SuccessFactors cloud for HR and compensation management across five countries. Before the integration, employee data entered in JD Edwards required manual export and re-entry into SuccessFactors, and cost center hierarchies drifted between systems, causing payroll allocations to land on inactive or mismatched GL accounts and HR staff to spend hours reconciling headcount and cost assignments during month-end close. With JD Edwards and SuccessFactors connected, new hires and organizational changes recorded in JD Edwards automatically sync into SuccessFactors, cost center codes stay aligned, and the reconciliation step is eliminated.
What you can do
- Sync employee records from Oracle JD Edwards Address Book into SAP SuccessFactors PerPerson, handling visa, address, and contact information.
- Map JD Edwards cost center hierarchies to SuccessFactors FOCostCenter so compensation allocations land on valid finance dimensions.
- Authenticate JD Edwards via AIS token session management and SuccessFactors via OAuth2 SAML bearer assertion signing.
- Poll JD Edwards on a schedule with date filters and handle SuccessFactors throttling with backoff and retries.
- Track synced records in a full audit trail and replay any record if a downstream call fails.
Questions
- How does ml-connector handle the different authentication systems between JD Edwards and SuccessFactors?
- JD Edwards uses a session token obtained by username and password POST to /jderest/v2/tokenrequest, passed as jde-AIS-Auth on subsequent requests and refreshed every 30 to 60 minutes. SuccessFactors uses OAuth2 SAML Bearer Assertion: ml-connector signs a SAML assertion with your registered OAuth2 private key and POSTs to /oauth/token to get a 24-hour Bearer token. Both flows are handled automatically; you provide the JD Edwards AIS Server URL and credentials and the SuccessFactors OAuth2 private key.
- Why does ml-connector poll JD Edwards instead of waiting for a push event?
- JD Edwards has no native outbound webhooks. All data is read by polling named data service tables like F0101 (Address Book) with date filters on UPMJ (date updated), tracking the last-polled timestamp. Optionally, you can configure JD Edwards Orchestrator to call ml-connector on a cron schedule to trigger a sync.
- What happens if a cost center code in SAP SuccessFactors does not exist in Oracle JD Edwards?
- ml-connector looks up FOCostCenter codes in SuccessFactors before creating employee allocations, so allocation cannot land on a code that does not exist. If a mismatch occurs, the record is logged in the audit trail with the reason (cost center not found) and can be replayed once the missing cost center is created in SuccessFactors.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to SAP SuccessFactors
Connect Oracle JD Edwards and SAP SuccessFactors
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started