Oracle JD Edwards and ServiceNow integration
Oracle JD Edwards EnterpriseOne runs your manufacturing finance and procurement. ServiceNow runs your ITSM and procurement operations. Keeping them connected ensures purchase orders created in JD Edwards are visible and actionable in ServiceNow without re-entry, suppliers stay aligned across both systems, and GL accounts are consistent between the source ERP and procurement workflows. ml-connector automates this sync on a schedule you control.
What moves between them
Purchase orders, purchase-order line items, suppliers, and GL accounts flow from Oracle JD Edwards into ServiceNow on a daily or weekly poll cycle that you configure. New suppliers added to JD Edwards (F0101) are pushed into ServiceNow's core_company table so procurement sees up-to-date vendor lists. Purchase orders created in JD Edwards (F4301, F4311) land in ServiceNow's proc_po and proc_po_item tables, enabling procurement teams to view, approve, and track them without re-keying. GL accounts (F0901) are synchronized into itfm_gl_accounts for cost allocation and reporting accuracy. The flow is read-only from JD Edwards into ServiceNow - ml-connector does not write changes back to JD Edwards.
How ml-connector handles it
ml-connector stores both the JD Edwards AIS Server URL and ServiceNow instance URL and credentials encrypted. On the JD Edwards side, it authenticates by requesting a session token from the customer-hosted AIS Server using the supplied service account, caching the token until expiry (HTTP 444 signals invalid token requiring re-auth), and then polling table queries with date filters to identify new or changed records since the last sync. Because JD Edwards enforces a 30 to 60 minute token lifetime, ml-connector re-authenticates before each poll cycle to avoid token-expiry errors. On the ServiceNow side, it authenticates using OAuth 2.0 Client Credentials, requesting fresh tokens every 25 minutes to stay well ahead of the 30-minute expiry. Pagination through large result sets uses the moreRecords flag and continuation endpoints on the JD Edwards side, and sysparm_limit and offset on the ServiceNow side. Suppliers (F0101) are matched by duns number or company code across both systems, and purchase orders are matched by PO number to avoid duplicate inserts. GL accounts (F0901) are mapped to ServiceNow cost centers by matching the department and account number, so payroll and operational expenses land on valid ServiceNow dimensions. All records carry a full audit trail including the original JD Edwards transaction date, the sync timestamp, and any transformation applied. If a downstream ServiceNow API call fails (network timeout, 429 rate limit, invalid cost center), ml-connector retries with exponential backoff and stores the failed record for manual replay or automated retry on the next cycle.
A real-world example
A mid-sized discrete manufacturing company runs Oracle JD Edwards EnterpriseOne at their headquarters for finance, purchasing, and production planning. They also use ServiceNow for ITSM and have recently licensed the Source-to-Pay suite to streamline procurement operations across three regional plants. Before the integration, the procurement team received PDF purchase orders from the ERP each morning, manually entered them into ServiceNow, and then spent hours chasing discrepancies when suppliers asked about PO status or when JD Edwards numbers drifted from what ServiceNow showed. With JD Edwards connected to ServiceNow, every PO created in the ERP appears in ServiceNow within minutes of the next poll cycle, along with its line items, requested-delivery dates, and GL cost centers. The procurement team now sees live PO status without re-entry, and finance can reconcile expected commitments between systems without manual checking. Supplier onboarding in JD Edwards automatically flows into ServiceNow, cutting procurement setup time by 40 percent.
What you can do
- Sync purchase orders and line items from JD Edwards into ServiceNow's proc_po table, making them visible and actionable to procurement teams.
- Push suppliers (vendors and customers) from JD Edwards into ServiceNow's core_company table so procurement sees current vendor lists.
- Map JD Edwards GL accounts to ServiceNow cost centers and GL posting dimensions so financial reporting stays aligned.
- Handle JD Edwards session-token authentication, token expiry and re-auth on each poll cycle, and ServiceNow OAuth 2.0 client credentials with automatic refresh.
- Poll on your schedule with automatic retry, exponential backoff on failures, and a full audit trail so nothing is lost or duplicated.
Questions
- Which direction does data move between Oracle JD Edwards and ServiceNow?
- The flow is from JD Edwards into ServiceNow. Purchase orders, suppliers, GL accounts, and cost centers are pulled from JD Edwards and pushed into ServiceNow's procurement and finance modules. ml-connector does not write changes back to JD Edwards, so ServiceNow remains the system of record for procurement approvals and changes.
- How does ml-connector handle JD Edwards AIS Server authentication and token expiry?
- JD Edwards session tokens are valid for 30 to 60 minutes by default. ml-connector requests a fresh token before each poll cycle using the supplied service-account username and password, stores it encrypted, and monitors for HTTP 444 (invalid token) responses. If a token expires mid-request, ml-connector re-authenticates and retries, so token expiry never causes data loss.
- What happens if a purchase order or supplier is already in both systems?
- ml-connector deduplicates using the PO number (from JD Edwards F4301) and supplier code (from F0101), so the same record is never inserted twice. If a record already exists in ServiceNow, ml-connector skips the insert or updates it if the source data has changed, and logs the action in the audit trail.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to ServiceNow
Connect Oracle JD Edwards and ServiceNow
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started