ml-connector
Oracle JD EdwardsMicrosoft Power BI

Oracle JD Edwards and Microsoft Power BI integration

Oracle JD Edwards EnterpriseOne keeps your financial and operational data. Microsoft Power BI turns that data into dashboards and insights. Connecting the two streams JD Edwards GL postings, vendor records, and purchase order detail into Power BI on a schedule you control, so your finance team can analyze spend, cash flows, and procurement in one place without manual exports and re-keying.

How Oracle JD Edwards works

Oracle JD Edwards EnterpriseOne is an on-premises ERP suite covering financials, procurement, manufacturing, and HR. It exposes data through REST APIs via an Application Interface Services (AIS) Server running at each customer's infrastructure. Authentication uses a session token obtained by POST to /jderest/v2/tokenrequest with username and password, valid for 30 to 60 minutes. Key entities include GL accounts (F0901), GL transactions (F0911), vendors (F0401), customers (F03012), purchase order headers and details (F4301, F4311), and item masters (F4101). JD Edwards has no native outbound webhooks, so data is read by polling the data service tables with date filters on the last-updated or GL-date columns. Pagination is handled with maxPageSize parameters and a moreRecords flag for large result sets.

How Microsoft Power BI works

Microsoft Power BI is a cloud-based analytics service for visualizing data and building insights. Its REST API lets you push data into streaming datasets, trigger refresh operations, and manage reports and workspaces. Authentication uses OAuth 2.0 client credentials with a service principal, obtained by POST to https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token. Access tokens are passed as Bearer headers and expire after approximately one hour. Push datasets require a predefined table schema with column names and data types before rows can be posted. Power BI does not send outbound webhooks or events, making it a pure analytics destination.

What moves between them

The flow is one-way from Oracle JD Edwards into Microsoft Power BI. GL transactions from F0911 (Account Ledger), vendor records from F0401, and purchase order details from F4311 are queried on a polling schedule and streamed into Power BI datasets as rows. Each poll uses a date filter on the updated column to move only new or changed records, avoiding redundant pushes. The connector tracks the last-polled timestamp and continues from there on the next cycle.

How ml-connector handles it

ml-connector stores the JD Edwards AIS Server URL (since each customer hosts it on-premises at a different address) and the service account username and password encrypted. On each poll interval, it POSTs to /jderest/v2/tokenrequest to obtain a fresh session token, using HTTP Basic Auth as a stateless alternative if configured. Queries are sent with date filters on UPMJ (updated date) or the GL date column, and pagination is handled by reading the moreRecords flag and using the next endpoint. Microsoft Power BI requires the service principal to be added as a Member or Admin on each target workspace, and the connector refreshes the OAuth token when it approaches expiry. Each row is mapped to the column names and data types in the push dataset schema before being POSTed. Because JD Edwards tokens have a limited lifetime and can be invalidated on AIS Server restart, the connector retries failed requests with a fresh token. Power BI push datasets have size and latency constraints, so the connector batches rows to avoid overload.

A real-world example

A mid-market manufacturer uses Oracle JD Edwards for procurement, inventory, and general ledger accounting across three plants. The finance director needs real-time dashboards showing daily vendor spend, purchase order aging, and GL balance variance for month-end close. Before the integration, the accounting team exported purchase orders and GL transactions from JD Edwards into Excel once per day, manually reconciled them against budget, and rebuilt the dashboard by hand. With Oracle JD Edwards connected to Microsoft Power BI, vendor and GL data flows automatically on a two-hour schedule, and the director can drill into any transaction, compare actual spend to budget, and identify invoice bottlenecks without waiting for daily manual exports.

What you can do

  • Push JD Edwards GL transactions into Power BI datasets for real-time ledger analysis and month-end close visibility.
  • Stream vendor records and purchase order details from JD Edwards to Power BI for spend analysis and procurement dashboards.
  • Handle JD Edwards on-premises AIS Server URLs and 30 to 60-minute session token refresh cycles on each poll.
  • Manage Power BI OAuth 2.0 service principal credentials and workspace membership so rows flow to the correct dataset.
  • Poll JD Edwards with date filters and pagination, moving only new or changed records and avoiding redundant pushes.

Questions

How does the connector handle JD Edwards session tokens that expire in 30 to 60 minutes?
ml-connector stores the AIS Server URL and service account credentials encrypted and obtains a fresh session token on each poll interval by POSTing to /jderest/v2/tokenrequest. If a token becomes invalid during a request (HTTP 444 response), the connector immediately re-authenticates and retries. If the AIS Server restarts and invalidates all tokens, the next poll cycle requests a new one.
Since JD Edwards has no webhooks, how does the connector avoid querying the same records repeatedly?
The connector tracks the last-polled timestamp and uses date filters on the UPMJ (updated date) or GL date columns to query only records changed since the previous poll. The moreRecords flag and pagination continuation endpoints handle large result sets across multiple requests. This means Power BI receives each record exactly once per change cycle.
What workspace setup is required on the Power BI side?
The service principal used by ml-connector must be added as a Member or Admin on each Power BI workspace that will receive data. Developer settings must be enabled in the Power BI Admin portal to allow service principals to push data via the API. The target dataset schema (table name, column names, and data types) must be created before the connector begins pushing rows.

Related integrations

Connect Oracle JD Edwards and Microsoft Power BI

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

Get started