# Oracle EBS Query to Get Concurrent Program Parameters and Responsibilities

> Source: https://netray.co/tools/oracle-ebs-concurrent-program-parameters-responsibility-sql
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Three SQL queries for any concurrent program: definition and executable, parameters in order with value sets and defaults, and the request groups and responsibilities that can submit it.

## Category

developer

## Erp

Oracle E-Business Suite

## Audience

- Oracle Apps technical consultant
- EBS administrator
- Support analyst

## Tool

**Kind:** template

**Output:** code

**Language:** sql

**Fields:**

#### Program user name or short name (LIKE pattern)

**Key:** pattern

**Type:** text

**Default:** Journal Import%

**Help:** Matches USER_CONCURRENT_PROGRAM_NAME or CONCURRENT_PROGRAM_NAME. Use % wildcards.

#### Program application short name (optional)

**Key:** appl

**Type:** text

**Help:** Blank means any application.

**Blocks:**

#### Query 1: program definition and executable

**Body:** SELECT a.application_short_name,
       p.concurrent_program_id,
       p.concurrent_program_name,
       p.user_concurrent_program_name,
       e.executable_name,
       e.execution_method_code,   -- I PL/SQL, P Oracle Reports, Q SQL*Plus, H Host, L SQL*Loader, K Java
       e.execution_file_name,
       p.output_file_type,
       p.enabled_flag,
       p.srs_flag
FROM   fnd_concurrent_programs_vl p
JOIN   fnd_executables_vl e
       ON  e.executable_id  = p.executable_id
       AND e.application_id = p.executable_application_id
JOIN   fnd_application a
       ON  a.application_id = p.application_id
WHERE  (p.user_concurrent_program_name LIKE '{{pattern}}'
        OR p.concurrent_program_name LIKE '{{pattern}}')
AND    a.application_short_name = NVL('{{appl}}', a.application_short_name)
ORDER  BY p.user_concurrent_program_name;

#### Query 2: parameters in submission order

**Body:** SELECT p.concurrent_program_name,
       u.column_seq_num,
       u.end_user_column_name,
       u.form_left_prompt,
       u.application_column_name,
       u.srw_param,               -- Oracle Reports token
       u.required_flag,
       u.enabled_flag,
       u.display_flag,
       u.default_type,
       u.default_value,
       vs.flex_value_set_name,
       vs.validation_type        -- I independent, D dependent, F table, N none, P pair, U special
FROM   fnd_concurrent_programs_vl p
JOIN   fnd_application a
       ON  a.application_id = p.application_id
JOIN   fnd_descr_flex_col_usage_vl u
       ON  u.application_id = p.application_id
       AND u.descriptive_flexfield_name = '$SRS$.' || p.concurrent_program_name
       AND u.descriptive_flex_context_code = 'Global Data Elements'
LEFT JOIN fnd_flex_value_sets vs
       ON  vs.flex_value_set_id = u.flex_value_set_id
WHERE  (p.user_concurrent_program_name LIKE '{{pattern}}'
        OR p.concurrent_program_name LIKE '{{pattern}}')
AND    a.application_short_name = NVL('{{appl}}', a.application_short_name)
ORDER  BY p.concurrent_program_name, u.column_seq_num;

#### Query 3: request groups and responsibilities that can run it

**Body:** SELECT p.user_concurrent_program_name,
       r.responsibility_name,
       r.responsibility_key,
       rg.request_group_name,
       ga.application_short_name AS group_application,
       rgu.request_unit_type,     -- P single program, A all programs of the application
       r.start_date,
       r.end_date
FROM   fnd_concurrent_programs_vl p
JOIN   fnd_application a
       ON  a.application_id = p.application_id
JOIN   fnd_request_group_units rgu
       ON  rgu.unit_application_id = p.application_id
       AND (   (rgu.request_unit_type = 'P' AND rgu.request_unit_id = p.concurrent_program_id)
            OR  rgu.request_unit_type = 'A')
JOIN   fnd_request_groups rg
       ON  rg.request_group_id = rgu.request_group_id
       AND rg.application_id   = rgu.application_id
JOIN   fnd_application ga
       ON  ga.application_id = rg.application_id
JOIN   fnd_responsibility_vl r
       ON  r.request_group_id     = rg.request_group_id
       AND r.group_application_id = rg.application_id
WHERE  (p.user_concurrent_program_name LIKE '{{pattern}}'
        OR p.concurrent_program_name LIKE '{{pattern}}')
AND    a.application_short_name = NVL('{{appl}}', a.application_short_name)
AND    (r.end_date IS NULL OR r.end_date > SYSDATE)
ORDER  BY r.responsibility_name;

**Notes:** The _VL views return names in the session language (USERENV('LANG')); set NLS_LANGUAGE or query the _TL tables for another language. Programs reached only through a request set (unit type S) are not listed by Query 3. Confirm REQUEST_UNIT_TYPE values on your instance with SELECT DISTINCT request_unit_type FROM fnd_request_group_units.

## Content

**Intro:** This generator writes three queries that answer the questions support teams ask about any Oracle E-Business Suite concurrent program: what runs, which parameters it takes in which order, and which responsibilities can submit it. It works on EBS 11i, 12.1 and 12.2 and needs only read access to the APPLSYS objects through APPS.

**Sections:**

#### How to use it

**Body:** Type part of the program's user name or its short name with % wildcards, for example Journal Import% or GLLEZL, and optionally restrict to an application short name. Run Query 1 to confirm you have the right program, since many seeded programs share similar names across applications. Query 2 lists parameters in COLUMN_SEQ_NUM order, which is exactly the argument1, argument2 order FND_REQUEST.SUBMIT_REQUEST expects. Query 3 lists active responsibilities whose request group contains the program, either directly or through an all-programs-of-this-application unit.

**Bullets:**

- Use Query 2 before writing any SUBMIT_REQUEST call
- Hidden parameters (display_flag N) still occupy an argument position
- Disabled parameters (enabled_flag N) are not passed

#### Where this lives in EBS

**Body:** Concurrent program parameters are stored as a descriptive flexfield whose name is $SRS$. followed by the program short name, owned by the program's application. The context is Global Data Elements, and each parameter is a column usage in FND_DESCR_FLEX_COLUMN_USAGES (view FND_DESCR_FLEX_COL_USAGE_VL) mapped to ATTRIBUTE1, ATTRIBUTE2 and so on. That is why the Parameters window of the Concurrent Program form looks like a flexfield segment form. Request groups live in FND_REQUEST_GROUPS with their members in FND_REQUEST_GROUP_UNITS, and a responsibility points at one group through REQUEST_GROUP_ID and GROUP_APPLICATION_ID.

#### Worked example: Journal Import

**Body:** With the default pattern Journal Import%, Query 1 returns the GL program with short name GLLEZL under SQLGL. Query 2 returns its parameters in sequence, with prompts, value sets and defaults; use this list to build the argument list for an automated journal import rather than copying an example from a blog written for another release. Query 3 shows every General Ledger responsibility that can run it. If a user says they cannot see a program, compare their responsibility to this list: the fix is almost always adding the program to that responsibility's request group, not granting a new responsibility.

#### Gotchas

**Body:** DEFAULT_TYPE holds a code (C constant, P profile, S SQL statement and others), and DEFAULT_VALUE holds the constant, profile name or SQL text. A parameter with a SQL statement default can behave differently when submitted from PL/SQL, because SUBMIT_REQUEST does not evaluate defaults: you must pass the value yourself. For value sets of type F (table) with an ID column defined, the stored value is the ID column, which is what you pass in arguments. Responsibilities can also be end-dated per user in FND_USER_RESP_GROUPS_DIRECT, so a responsibility listed here may still be unavailable to a particular person.

**Cta:** If you want support staff to ask which responsibility runs a program or what a parameter means, and get the answer from your own EBS instance in plain English on your servers, we can set that up.

**Faq:**

#### What is the query to get concurrent program parameters in Oracle Apps?

**Answer:** Join FND_CONCURRENT_PROGRAMS_VL to FND_DESCR_FLEX_COL_USAGE_VL on application_id and descriptive_flexfield_name = '$SRS$.' || concurrent_program_name, then to FND_FLEX_VALUE_SETS for the value set. Order by COLUMN_SEQ_NUM to get the submission order. Query 2 above is that query with prompts, flags and defaults.

#### How do I find which responsibility a concurrent program is assigned to?

**Answer:** Find request group units of type P whose request_unit_id is the program's concurrent_program_id (plus type A units for its whole application), join to FND_REQUEST_GROUPS, then to FND_RESPONSIBILITY_VL on request_group_id and group_application_id. Query 3 does this and filters out end-dated responsibilities.

#### Why do my SUBMIT_REQUEST arguments land in the wrong parameters?

**Answer:** Arguments are positional and follow COLUMN_SEQ_NUM of the enabled parameters, including hidden ones. Developers often skip a hidden parameter or count from a screenshot. Run Query 2 and map argument1 to the first enabled row, argument2 to the second, and so on.

#### Does this include programs in request sets?

**Answer:** No. Query 3 covers programs added directly to a request group and application-level units. A program that users run only as part of a request set appears in the group as a set unit, and its stages are stored in the request set tables, so check those separately.

## Search terms

oracle apps query to get concurrent program parameters, oracle ebs concurrent program parameters query, oracle apps query to get responsibility for concurrent program, oracle apps concurrent program assigned to responsibility, oracle ebs concurrent program parameters, fnd_descr_flex_col_usage_vl $srs$, fnd_request_group_units query

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