ml-connector
Oracle E-Business SuiteGoogle Sheets

Oracle E-Business Suite and Google Sheets integration

Oracle E-Business Suite runs your financials, procurement, and supply chain. Google Sheets is where your teams store, review, and collaborate on financial data. Syncing Oracle EBS invoices, vendors, and general ledger accounts into Sheets keeps your spreadsheet-based workflows up to date without manual export-and-paste. ml-connector polls Oracle EBS on a schedule, refreshes session tokens as needed, and writes the records your finance team needs into Sheets tabs you control.

How Oracle E-Business Suite works

Oracle E-Business Suite (R12.2) exposes AP invoices, purchase orders, vendor records, GL code combinations, and inventory items through the Integrated SOA Gateway (ISG), a REST API framework deployed on a customer-hosted server. Each customer provides their own hostname and port. Authentication uses HTTP Basic Auth (username and password) or a session token obtained by calling a login endpoint with Basic auth, and all requests require application context headers specifying the responsibility, application, security group, organization, and language. Oracle EBS has no modern webhook system, so all integrations rely on polling the open interface views filtered by last update date with limit and offset pagination. Session tokens expire based on Oracle EBS session timeout, typically 30 to 60 minutes.

How Google Sheets works

Google Sheets is a cloud-based spreadsheet application with a REST API (v4) for reading, writing, and formatting data. Sheets is not a purpose-built finance system - customers define their own schema by creating sheet tabs and column headers. Authentication uses OAuth 2.0 via Authorization Code flow for user-delegated access or Service Account for server-to-server credentials. The API reads and writes cell ranges using A1 notation (e.g. Sheet1!A1:Z1000) or Named Ranges. Push notifications are available via Google Drive watch channels, but channels expire hourly and require manual re-registration, so polling every 5 to 15 minutes is the recommended approach.

What moves between them

The main flow is from Oracle EBS into Google Sheets. ml-connector polls Oracle EBS for open AP invoices, vendor records, and GL account combinations on a schedule you set, typically once daily or after business hours. Each invoice record includes vendor site, invoice number, amount, GL account code, and date. The connector writes these records as rows into a Sheets tab you designate, appending new invoices and optionally updating existing rows if invoice statuses change. Vendor reference data (vendor name, site code, payment terms, address) flows the same direction and is updated less frequently (weekly or on-demand) to serve as lookup tables for your finance team. GL accounts are read from Oracle EBS and written as a reference tab so Sheets users can see which codes are available. The connection is read-mostly into Sheets; writing data back into Oracle EBS is not part of this integration.

How ml-connector handles it

ml-connector stores the Oracle EBS hostname, port, username, and password encrypted, and sends them as an HTTP Basic Auth header on every call. When a login token endpoint returns a new access token, the connector caches it and uses it for subsequent requests until a 401 indicates expiry, at which point it re-authenticates transparently. The Sheets side uses OAuth 2.0 credentials (either user-delegated or Service Account) to obtain a bearer token and refresh it as needed. On the EBS side, ml-connector queries the open interface views (AP_INVOICES_INTERFACE, PO_VENDORS, GL_CODE_COMBINATIONS) filtered by LAST_UPDATE_DATE and pagination limits to avoid data explosion. Each query result is transformed into rows: invoice columns map to vendor name, invoice number, amount, GL code, and invoice date; vendor records map to site code, vendor name, and payment terms. These rows are appended to the designated Sheets tab using the batchUpdate API. Because Oracle EBS interface table writes followed by concurrent program import can take minutes to hours for full validation, ml-connector does not attempt to monitor or drive that import process - it reads only the final state. The connector includes a full audit trail of every sync attempt, record count, and error.

A real-world example

A mid-sized distribution company runs Oracle E-Business Suite for AP, inventory, and general ledger. The finance team uses a Google Sheet to track open invoices week-by-week, review vendor payment patterns, and catch duplicate submissions before check run. Before the integration, the AP coordinator exported invoices from Oracle EBS to CSV every Monday, manually pasted them into the Sheets workbook, and left three copies of the prior week's data in place for historical reference. With Oracle EBS and Google Sheets connected, each Monday morning the Sheet contains this week's invoices and vendors automatically, the team can see invoice approval status at a glance, and there is a complete record of which invoices were paid and when without the manual CSV step.

What you can do

  • Poll Oracle EBS invoices, vendors, and GL accounts on a schedule and write them as rows into a Google Sheet you designate.
  • Map Oracle EBS GL code combinations and vendor sites to the columns your finance team uses in Sheets.
  • Refresh Oracle EBS session tokens automatically when they expire and re-authenticate on 401 without manual intervention.
  • Handle Oracle EBS pagination and LAST_UPDATE_DATE filtering so each sync brings only new and changed records since the last run.
  • Maintain a complete audit trail of every sync attempt, record count, timestamp, and error for compliance and troubleshooting.

Questions

Does ml-connector write data back into Oracle EBS?
No. This integration is read-mostly into Google Sheets. Invoice and vendor data flows from Oracle EBS into Sheets for visibility and collaboration. You can edit the Sheets data for local notes and analysis, but ml-connector does not write changes back into Oracle EBS. If you need to update invoices or vendors, changes go through Oracle EBS directly.
How often should ml-connector poll Oracle EBS?
You control the schedule. Once daily (e.g. early morning or after business hours) is typical for most finance teams, since Oracle EBS invoices are usually created during business hours and there is no urgency to see them in Sheets within minutes. You can adjust the interval based on your invoice volume and close calendar - for example, daily during month-end and weekly otherwise.
What happens if the Oracle EBS session token expires?
ml-connector detects the 401 response, re-authenticates using your stored Oracle EBS credentials, obtains a new token, and retries the same request transparently. No manual intervention is needed. If re-authentication fails (wrong password, user disabled), ml-connector logs the error and stops - you will see the failure in the audit trail and can fix the credentials via the ml-connector console.

Related integrations

Connect Oracle E-Business Suite and Google Sheets

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

Get started