ml-connector
Oracle E-Business SuiteFishbowl

Oracle E-Business Suite and Fishbowl integration

Oracle E-Business Suite runs your financials and procurement across multiple modules and organizations. Fishbowl Advanced manages inventory, purchase orders, and light manufacturing on your plant floor. Connecting the two keeps requisitions and purchase orders in lockstep across both systems. When a buyer creates a purchase order in Fishbowl, it can reference vendors and part numbers already mastered in EBS, and when EBS procurement raises a requisition, it flows into Fishbowl for execution. ml-connector bridges the two customer-hosted systems and handles the polling and credential refresh that each requires.

How Oracle E-Business Suite works

Oracle E-Business Suite exposes financials, procurement, inventory, manufacturing, and human resources through the Integrated SOA Gateway, a database-embedded REST or SOAP web service layer. Each customer deploys the ISG on their own server, so there is no fixed URL. Authentication uses HTTP Basic Auth or session tokens obtained from a login endpoint, and the EBS user requires explicit Invoke permissions on each deployed REST service. All write operations are asynchronous: the connector inserts records into an open interface table via REST, then EBS runs a concurrent program to import them into the base tables. EBS has no webhooks, so polling on a schedule you define is the only integration method.

How Fishbowl works

Fishbowl Advanced is deployed on customer hardware running an on-premise REST API server on a configurable port, typically 2456. Authentication is a session token obtained by POST to /api/login, which all subsequent requests must carry as a Bearer token. Fishbowl exposes vendors, purchase orders, sales orders, parts, inventory, manufacturing orders, and customers. GL accounts are not exposed directly through the REST API; accounting is handled by a separate QuickBooks or Xero integration. Fishbowl has no outbound webhooks, so the connector must poll the /api/data-query endpoint with date filters to detect new or modified records. The Fishbowl user must have API access rights granted.

What moves between them

The main flow runs from EBS into Fishbowl. When a buyer enters a purchase requisition in EBS, ml-connector polls the open interface view, maps the requisition to a Fishbowl vendor and part number, creates a purchase order in Fishbowl, and sets its status to ready for receipt. Vendor master records flow from EBS into Fishbowl so purchase orders always reference vendors already validated in the EBS supplier master. Inventory and part master data move from Fishbowl back into EBS as read-only reference to ensure requisitions request valid items. The connector polls both systems on a schedule tied to your planning cycle - typically every 15 to 30 minutes - so lead times and procurement windows stay current across both platforms.

How ml-connector handles it

ml-connector accepts the customer-supplied EBS hostname and port, manages the HTTP Basic Auth credentials, obtains a session token from the EBS login endpoint, and appends the required EBS context headers (responsibility, organization, security group, language) to every request. It also handles token expiry and re-authenticates when the EBS session times out. On the Fishbowl side, it connects to the customer-supplied server URL and port, logs in with the provided username and password, and carries the returned session token in every request. Because both systems lack webhooks, ml-connector polls EBS open interface tables filtered by LAST_UPDATE_DATE and Fishbowl /api/data-query with date ranges at a fixed interval. Vendor and part master records are cached and checked before creating purchase orders so the connector knows which Fishbowl vendor ID and part ID to reference. If a write to an EBS interface table is followed by a request before the concurrent program finishes importing the data, the connector retries with exponential backoff. All records carry a full audit trail with timestamps, payloads, and error details.

A real-world example

A mid-sized job-shop manufacturer runs Oracle E-Business Suite for financials and procurement across four business units and locations. On each shop floor, a Fishbowl instance tracks work-in-progress inventory, open purchase orders, and material allocations to active manufacturing orders. Before the integration, the procurement team created purchase orders in both EBS and Fishbowl by hand, leading to duplicate orders, mismatched vendor codes, and receiving disputes when parts arrived under a different PO number in each system. Purchasing also spent hours each month reconciling part numbers and inventory across the two systems. With Oracle E-Business Suite and Fishbowl connected, each new requisition in EBS automatically becomes a purchase order in Fishbowl with the correct vendor ID and part number. The buyer sees both systems stay in sync, receiving can match incoming goods to a single PO across both, and month-end reconciliation is complete without manual rework.

What you can do

  • Create and update purchase orders in Fishbowl from purchase requisitions and open orders in Oracle E-Business Suite.
  • Keep vendor master records synchronized so purchase orders in Fishbowl reference vendors already validated in EBS procurement.
  • Sync part numbers and inventory details from Fishbowl back to EBS so requisitions always request valid items.
  • Poll both customer-hosted systems on a schedule you control, with session token refresh and retry logic on both sides.
  • Track every record in a full audit trail with timestamps, payloads, and error details for compliance and troubleshooting.

Questions

How does the connector handle the fact that each customer runs EBS and Fishbowl on their own servers?
ml-connector stores both the EBS hostname and port and the Fishbowl server URL per customer. When it starts, it connects to both systems using the provided addresses, obtains a session token or bearer token from each, and then polls the endpoints you configure. If a hostname changes or a server is offline, the connector logs the error and retries on the next polling interval.
What happens when Oracle E-Business Suite writes are asynchronous?
EBS write operations insert records into an open interface table but do not immediately apply them to base tables. A concurrent program runs later to import and validate the data. ml-connector tracks the job and retries if the data it needs is not yet available, giving EBS time to complete the import without treating the delay as an error.
Can the connector create purchase orders in EBS from Fishbowl data?
No. EBS purchase order creation requires concurrent program execution which is not exposed through REST. ml-connector creates purchase orders in Fishbowl from EBS requisitions. EBS remains the system of record for procurement planning and approvals, while Fishbowl tracks execution and inventory flow on the plant floor.

Related integrations

Connect Oracle E-Business Suite and Fishbowl

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

Get started