ml-connector
Oracle JD EdwardsServiceNow

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.

How Oracle JD Edwards works

Oracle JD Edwards EnterpriseOne is an on-premises ERP suite deployed at customer infrastructure. It exposes suppliers (F0101), purchase orders (F4301, F4311), GL accounts (F0901), and posted transactions (F0911) through REST APIs via an Application Interface Services (AIS) Server running on the customer network at a unique hostname and port. Authentication uses a session token obtained by POSTing username and password to the tokenrequest endpoint, returning an opaque token valid for 30 to 60 minutes and passed in the jde-AIS-Auth header on all subsequent requests. JD Edwards offers no native outbound webhooks, so ml-connector polls tables with a date filter on the updated timestamp (UPMJ or DGJ fields) and tracks the last-polled time. Pagination uses maxPageSize (default 100 records) with a moreRecords flag and a POST continuation endpoint. Because JD Edwards runs on customer infrastructure, there is no fixed public hostname - the full AIS Server URL must be supplied as a credential, and customer IP allowlists must whitelist the connector's egress IPs.

How ServiceNow works

ServiceNow is a cloud ITSM and enterprise operations platform running on a customer-specific instance at https://{instance}.service-now.com. It exposes suppliers (core_company), purchase orders (proc_po, proc_po_item), GL accounts (itfm_gl_accounts), invoices (sn_apo_invoice), cost centers (cmn_cost_center), and cost-center objects through REST Table API endpoints at base URL https://{instance}.service-now.com/api/now/table/. Authentication uses OAuth 2.0 Client Credentials (machine-to-machine) or Basic Auth, with access scoped to service-account roles such as sn_apay.apo_user for Accounts Payable and procurement_user for procurement tables. ServiceNow tokens expire after 1800 seconds (30 minutes), and the Source-to-Pay modules including Accounts Payable and Procurement are module-licensed add-ons requiring verification against the customer instance. ServiceNow also has no native outbound webhook registration system - real-time push requires manual admin configuration via Business Rules and Outbound REST Messages, so ml-connector polls query parameters with sys_updated_on>javascript:gs.minutesAgoStart(N) on your schedule.

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

Connect Oracle JD Edwards and ServiceNow

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started