# How to Register a Custom Concurrent Program in Oracle EBS

> Source: https://netray.co/erp-help/ebs-register-custom-concurrent-program-how-to
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

Registering a custom concurrent program in EBS takes three linked steps in the System Administrator responsibility: register the Executable pointing at your actual code object, register the Program that references that executable and defines its parameters, then add the program to a Request Group so it is visible under the target responsibility's Submit Request window.

## Kind

how-to

## System

oracle-ebs

## Erp

Oracle E-Business Suite (EBS)

## Module

System Administration / Application Object Library

## Query

how to register a custom concurrent program in oracle ebs

## Alternate Queries

- ebs register concurrent program executable
- how to create a custom concurrent program pl/sql ebs
- ebs concurrent program parameters value set
- add concurrent program to request group ebs

## Applies To

EBS 12.1.3 and 12.2.x, System Administrator responsibility

## Steps

### How to register a custom concurrent program

**Items:**

Write and test the underlying code first - a PL/SQL stored procedure in a custom schema (granted execute to APPS and with a public synonym), a SQL*Plus script, a Java concurrent program class, or a Host script - before touching any registration screen.

In System Administrator, go to Concurrent > Program > Executable, create a new executable with a unique short name, select the correct Execution Method (PL/SQL Stored Procedure, SQL*Loader, Host, SQL*Plus, Java Concurrent Program) matching your code, and enter the exact executable file or package.procedure name.

Go to Concurrent > Program > Define, create the Program, link it to the Executable just registered, set the Application it belongs to, and mark Enabled.

On the Parameters tab, define each parameter with a Value Set for validation, mark required parameters, set the correct sequence and display size, and confirm the parameter order matches what your PL/SQL procedure expects positionally.

Set Output Format (Text or XML Publisher if a BI Publisher layout is attached) and Print Style, and configure Incompatibilities if this program must not run concurrently with another that touches the same data.

Navigate to Security > Responsibility > Request, find the Request Group tied to the target responsibility, and add your new program to it - without this step the program is fully registered but invisible to end users.

Test via Submit Request under the actual target responsibility (not just System Administrator), checking both a successful run and a deliberate bad-parameter run to confirm error handling and the log/output files look correct.

## Sections

### Choosing the right execution method

**Body:**

PL/SQL Stored Procedure is the most common choice for custom EBS reports and processes because it runs inside the database, has direct access to FND APIs for logging and error handling, and does not need external file access. The executable name registered in EBS must exactly match the package and procedure name, and the package must be granted execute to APPS with a public synonym, or the concurrent manager will fail immediately with a routine-not-found error.

Host and SQL*Plus execution methods are better suited to file manipulation or simple extract scripts that do not need FND context, while Java Concurrent Program is used for more complex custom Java logic; each has a different completion signal convention (return codes, exit status) that must be handled correctly or the concurrent request will show a misleading Normal completion despite an internal failure.

### Parameter definition and value sets

**Body:**

Every parameter needs a Value Set even if it is just a free-text or numeric validation - this is what drives the LOV, formatting, and basic validation the user sees on the Submit Request parameter window. Skipping proper value set validation is a common shortcut that leads to bad data reaching the PL/SQL procedure and failing deep inside the program logic instead of at entry.

Parameter sequence in the Define Program form must line up with the positional order your stored procedure expects if you are using PL/SQL Stored Procedure execution method with standard FND argument passing - a parameter reordered later without updating the procedure signature is a frequent source of a program that runs but silently uses the wrong values.

**Code:**

PROCEDURE run_report (errbuf OUT VARCHAR2, retcode OUT VARCHAR2, p_org_id IN NUMBER, p_period_name IN VARCHAR2) IS
BEGIN
  -- FND standard signature: errbuf, retcode first, then registered parameters in order
  NULL;
END run_report;

### Making it visible and secure

**Body:**

A program that is registered but not added to any Request Group is a very common support ticket - the developer confirms it exists in System Administrator but the end user cannot find it under Submit Request because it was never attached to the request group tied to their responsibility. Confirm which request group(s) the target responsibility actually uses before assuming one addition covers every user who needs it.

For anything touching sensitive data, also review whether the program needs to run under a specific data-access context (Multi-Org Access Control org context, or a specific responsibility's security profile) - a program that runs fine for a developer with broad access can behave completely differently, or fail on missing org context, for a restricted end-user responsibility.

## Pitfalls

- Executable name registered in EBS not matching the actual package.procedure name exactly, including case sensitivity on some platforms.
- Forgetting to grant execute on the custom package to APPS and create the public synonym, producing a generic routine-not-found failure at runtime.
- Parameter order in the Define Program form not matching the PL/SQL procedure's positional signature, causing silently wrong parameter values.
- Registering the program but skipping the Request Group step, leaving it invisible to the responsibility that needs it.
- Not setting Incompatibilities for programs that update the same tables, allowing two instances to run simultaneously and corrupt data.
- Testing only as a super-user responsibility, missing MOAC or security-profile-driven differences the real end-user responsibility will hit.

## Ai Angle

ERPray grounded in a customer's EBS environment can check a proposed new concurrent program against what already exists - flagging a near-duplicate program before it is built, generating the correct FND-standard procedure signature, and verifying the Executable, Program, and Request Group chain is complete before a developer discovers the missing link the hard way in UAT.

## Faq

### Why does my concurrent program fail with routine returned error and no other detail?

**Answer:** This almost always means EBS could not find or execute the named PL/SQL procedure - check that the executable name in the Program Executable registration matches the actual package.procedure exactly, and that APPS has execute privilege via a grant and public synonym on the custom schema's package.

### How do I set an output format that produces a PDF instead of plain text?

**Answer:** Set the concurrent program's Output Format to XML Publisher and attach a Data Definition and RTF template built in BI Publisher, rather than relying on the plain Text output format, which only supports monospaced report-style text output with no real layout control.

### Can a custom concurrent program call another concurrent program?

**Answer:** Yes, using FND_REQUEST.SUBMIT_REQUEST from within your PL/SQL procedure to launch a child request, which is the standard pattern for chaining or orchestrating multiple steps. Handle the returned request ID and consider whether the parent should wait on completion using FND_CONCURRENT.WAIT_FOR_REQUEST.

### Do I need a value set for a parameter that just accepts free text?

**Answer:** Yes, EBS still requires a value set even for unrestricted free text - use one of the seeded generic value sets (like a standard alphanumeric format-only value set) rather than skipping validation, since the parameter framework needs a value set to render the field correctly on the Submit Request window.

## Search terms

ebs register concurrent program, concurrent program executable oracle ebs, ebs custom concurrent program pl/sql, concurrent program value set parameter, add program to request group ebs, ebs routine returned error concurrent program, oracle apps concurrent program define, ebs concurrent manager custom program

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
