Oracle JD Edwards and Anaplan integration
Oracle JD Edwards EnterpriseOne runs your financials, procurement, and ledger on-premises. Anaplan runs budgeting, forecasting, and connected planning in the cloud. This connection keeps planners working from real ledger numbers and writes approved plan values back to the books. Posted GL actuals, the chart of accounts, and cost centers flow from JD Edwards into Anaplan planning models, and approved budget or forecast amounts flow back into the JD Edwards general ledger without re-keying. ml-connector handles the very different access patterns on each side and moves data on a schedule you control.
What moves between them
The primary flow runs from Oracle JD Edwards into Anaplan. ml-connector reads posted GL transactions from F0911, the chart of accounts from F0901, and business units and cost centers, then uploads them as file chunks and runs the matching Anaplan import action so models hold current actuals and dimensions. The return flow runs an Anaplan export action against the approved budget or forecast view, downloads the result file, and posts those amounts into the JD Edwards general ledger through a journal entry orchestration. Master data such as accounts and cost centers is aligned so every imported or posted line references members that already exist on both sides. Cadence is scheduled to the planning cycle: actuals refresh after each close or on a daily poll, and approved plan values write back on demand.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the JD Edwards side it accepts the full AIS Server URL per customer, since there is no shared hostname, logs in for a session token, sends it in the jde-AIS-Auth header, and re-authenticates when a call returns HTTP 444 (invalid token), which happens after an AIS Server restart. The customer must add the connector egress IPs to the AIS allowedHosts list or calls fail with HTTP 405. On the Anaplan side it requests an AnaplanAuthToken, reuses it for the session, and refreshes before the 35-minute expiry rather than per call. Because neither system pushes events, both sides are polled: JDE tables are read with a date filter on UPMJ or DGJ tracked between runs, and Anaplan import and export tasks are started and then polled by taskId until COMPLETE. JDE GL accounts and cost centers map to Anaplan lists, and the connector discovers Anaplan import and export action IDs at runtime since the model builder must create them first. Writebacks into JDE go through a journal entry orchestration, never a direct table POST, which the data service does not allow. Edge cases handled: Anaplan locks the model during a task, so imports and exports are serialized per model; Anaplan enforces a tenant-wide 600 requests per minute and returns HTTP 429, so the connector backs off with jitter; and JDE orchestrations have no idempotency header, so writebacks dedupe by batch number before posting. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized manufacturer with around 800 employees runs Oracle JD Edwards EnterpriseOne on-premises for finance and procurement and uses Anaplan for its annual budget and rolling forecast. Before the integration, an analyst exported trial balances and cost center actuals from JD Edwards every month and pasted them into Anaplan import templates by hand, and once budgets were approved the same numbers were re-keyed back into JD Edwards as journal entries. The manual copy introduced lag and mismatched account codes, and forecasts often ran against stale actuals. With Oracle JD Edwards and Anaplan connected, posted GL actuals and the chart of accounts load into the Anaplan model automatically after each close, and approved budget amounts post back into the JD Edwards ledger through a journal entry orchestration. Planners work from current numbers and the re-keying step is gone.
What you can do
- Load Oracle JD Edwards posted GL actuals from F0911 into Anaplan planning models on a schedule.
- Sync the JD Edwards chart of accounts and cost centers into Anaplan lists so planning dimensions stay current.
- Post approved Anaplan budget and forecast amounts back into the JD Edwards general ledger through a journal entry orchestration.
- Bridge JD Edwards session-token auth and Anaplan token auth, refreshing each before it expires.
- Poll both pull-only systems on your planning cadence, with retries, backoff on rate limits, and a full audit trail on every record.
Questions
- Which direction does data move between Oracle JD Edwards and Anaplan?
- The primary flow is JD Edwards into Anaplan: posted GL actuals, the chart of accounts, and cost centers load into Anaplan planning models. The return flow runs an Anaplan export of approved budget or forecast values and posts those amounts back into the JD Edwards general ledger. Master data such as accounts and cost centers is aligned on both sides so every line references members that already exist.
- Does Anaplan store JD Edwards invoices and accounts directly?
- No. Anaplan is a planning platform with no native invoice, vendor, or GL account objects. JD Edwards financial data lands as planning data inside a workspace and model, mapped to lists and modules that a model builder has already created. The connector uploads that data as a file and runs a named Anaplan import action rather than writing to any finance object.
- How does the integration handle the fact that neither system pushes events?
- Both Oracle JD Edwards and Anaplan are pull-only, so ml-connector polls on a schedule instead of waiting for webhooks. On the JD Edwards side it queries data service tables filtered by update date and tracks the last-polled timestamp. On the Anaplan side it starts each bulk import or export, then polls the returned taskId until the task state is COMPLETE before downloading any result file.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to Anaplan
Connect Oracle JD Edwards and Anaplan
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started