Skip to main content
Technical Preview

Overview

Oracle E-Business Suite (EBS) runs inventory, manufacturing (Work in Process) and quality for many plants. Release 12.2 exposes its interfaces as REST services through Integrated SOA Gateway (ISG). Connecting it to the broker lets the shop floor post material transactions as they happen, create or update discrete jobs from a line controller, read work orders, record inspection results against a collection plan, and check which interface rows failed and why. ISG has no fixed public API. Your integration administrator picks an interface in the Integration Repository, gives it a service alias, chooses the HTTP methods and deploys it. Each deployed service gets a URL https://<host>:<port>/webservices/rest/<alias>/<resource>/ and its own WADL. This template covers the interfaces plants use most and leaves the alias as a payload field. The template has one client-mode connector, OracleEbsIsg, with 17 events under erp/oracle-ebs/. Each event publishes the reply on <topic>/response. Seven events write (POST or PUT).

Prerequisites

  • Oracle E-Business Suite 12.2 with the ISG REST service infrastructure configured (on 12.2 this includes the $FND_TOP/patch/115/bin/ISGRestSetup.pl setup script), reachable over HTTPS from the broker.
  • The interfaces you need deployed as REST services from the Integration Repository (Integrated SOA Gateway responsibility, Integration Repository, REST Web Service tab):
    • Open interfaces (inbound tables support GET, POST, PUT and DELETE): the Material Transactions Interface (MTL_TRANSACTIONS_INTERFACE, lots in MTL_TRANSACTION_LOTS_INTERFACE), the WIP Job Schedule Interface (WIP_JOB_SCHEDULE_INTERFACE) and the Quality Results Interface (QA_RESULTS_INTERFACE). Each table appears as a resource; the interface’s concurrent program appears as SUBMIT_CP_<program internal name> (POST only).
    • An open interface view (GET only) for reading work orders, if your administrator has one deployed.
    • Optionally the REST Service Locator Java Bean Service (oracle.apps.fnd.rep.ws.service.EbsRestLocator) to look up deployed services.
  • Both HTTP Basic and Token Based authentication selected as REST security on those services, and a security grant on each method for the EBS user the broker logs in as.
  • Profile option FND: Authn Service Token Scope set to Header and Body so the login response carries the token in the body (Oracle Doc ID 2938671.1).
  • The alias of each deployed service. Open its WADL (/webservices/rest/<alias>/?WADL) to see the exact resource names and payload element names.

Connection and security

Store the login as a broker secret and pass it with GET SECRET:
  1. Publish {"basic":"Basic ..."} to erp/oracle-ebs/auth/login. ISG answers on erp/oracle-ebs/auth/login/response with data.accessTokenName, data.accessToken (the EBS session ID, also sent as Set-Cookie), data.ebsVersion and data.userName.
  2. Pass "cookie":"<accessTokenName>=<accessToken>" on every other event. ISG checks the session instead of the password.
  3. Optionally publish to erp/oracle-ebs/auth/initialize once per session to set the responsibility, security group and organization. Without it, send the context in each request (see Payload).
  4. Publish to erp/oracle-ebs/auth/logout to end the session. The reply has accessToken -1.
If token-based security is not enabled on a service, replace the Cookie header on its event with ADD "Authorization" "{value.json.basic}" and send the Basic value instead.

Payload

Every service event takes cookie and alias. Values go into the URL as they are, so URL-encode them first.
  • Application context. Many EBS APIs need a responsibility and an organization. In POST and PUT bodies put a RESTHeader object (Responsibility, RespApplication, SecurityGroup, NLSLanguage, Org_Id). On GET use the query parameters ctx_responsibility, ctx_respapplication, ctx_securitygroup, ctx_nlslanguage and ctx_orgid. With token-based security, context sent once is reused by later calls on the same token.
  • query (GET on open interface tables and views): select=COL1,COL2, filter=COL==value;COL2=le=100 (; is AND; operators include ==, =le=, =gt=), sort, and offset / limit for paging. Pass "" for no query.
  • body (POST / PUT): a JSON string. For an open interface table the root element is <TABLE>_Input with RESTHeader and InputParameters, and each row is a <TABLE>_REC object. PUT updates rows that match a Filter inside an Update object. For PL/SQL services the root is <METHOD>_Input. Take the element names from the service’s WADL and XSD.
  • method, view, irepclass, params: the resource segment of the URL where the event leaves it open, for example SUBMIT_CP_<program> on ConcurrentProgramSubmit, the deployed view name on WipWorkOrdersGet, PLSQL:FND_PROFILE on GetRestInterface.
Material transaction (a row the Inventory Transaction Manager picks up when PROCESS_FLAG is 1, LOCK_FLAG is 2 and TRANSACTION_MODE is 3):
Failed inventory rows:
Job requests use WIP_JOB_SCHEDULE_INTERFACE columns such as GROUP_ID, LOAD_TYPE, ORGANIZATION_CODE, JOB_NAME, START_QUANTITY, STATUS_TYPE, FIRST_UNIT_START_DATE and LAST_UNIT_COMPLETION_DATE; WIP Mass Load reports PROCESS_PHASE and PROCESS_STATUS. Quality rows use QA_RESULTS_INTERFACE columns such as ORGANIZATION_CODE, PLAN_NAME, INSERT_TYPE (1 insert, 2 update with MATCHING_ELEMENTS), PROCESS_STATUS, SOURCE_CODE and the plan’s CHARACTERx columns.

Pacing and errors

  • Faults come back as ISGServiceFault with Code, Message, Resolution and ServiceDetails. Open interface writes return OutputParameters.Summary (SuccessCount, ErrorCount) and a Status and Message for each row.
  • Interface rows are only staged. The Inventory Transaction Manager, WIP Mass Load and Collection Import move them to base tables later, so read the interface back (PROCESS_FLAG, PROCESS_STATUS, ERROR_EXPLANATION) before you treat a transaction as posted.
  • Open interface GETs page with offset and limit (the documented sample response reports Limit 200). Keep limit small and poll on a coarse schedule.
  • Long ISG calls can hit web tier timeouts. The template uses a 120-second request timeout.

Example actions

These log in every 20 minutes, keep the session cookie on a topic, and read failed inventory interface rows every hour.

Connector template

Not packaged

  • DELETE on interface tables, SOAP services, business events, XML Gateway messages and the Oracle Integration (OIC) E-Business Suite adapter.
  • Fixed paths for PL/SQL public APIs: deploy the API you need and call it with ServicePost / ServiceGet.

Testing

Static checks 110/110, a local mock ISG server 17/17 (login, cookie built from accessTokenName and accessToken, then every event with its method, path, cookie and body), mock controls 5/5 (wrong Basic, stale cookie, logout token -1, missing payload field, non-JSON body) and live checks of the six Oracle documentation pages the template is built from 6/6 passed. E-Business Suite is hosted by each customer and Oracle offers no public instance, so no call against a real ISG endpoint has run. See TEST.md in the package.

Suggested branches

  • feat/rest-api-route-oracle-e-business-suite (broker template)
  • feat/docs-rest-api-oracle-e-business-suite (this page)
Last modified on October 21, 2026