LaknathR
LaknathR

Reputation: 195

Oracle concurrent programming execution methods

I created a package and stored procedure under it to test a concurrent program.when I run it as an Oracle report executable method. It works fine. But I change it to PL/SQL stored procedure then it gives error.

Cause: FDPSTP failed due to ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'pop_rpt_tbl' ORA-06550: line 1, column 7: PL/SQL: Statement ignored

It's working properly in a oracle report method.

Any idea about this issue.

This is my sp  
PROCEDURE pop_rpt_tbl (
      p_pro_id   IN       NUMBER,
      p_agr     IN        NUMBER,
      p_prd       IN       NUMBER,
      p_group_id     IN     NUMBER,
      x_api_status   OUT      VARCHAR2,
      x_api_msg      OUT      VARCHAR2
   ); 

When I execute this as a PL/SQL I gave package name.pop_rpt_tbl as a file name and the executable as a package name.

Upvotes: 0

Views: 3497

Answers (1)

WoMo
WoMo

Reputation: 7246

When you create a packaged procedure to be run as a Concurrent Request, you should define the Executable as PL/SQL and specify the schema.package.procedure as the Executable File Name.

Next, the first two arguments of your packaged procedure must be errbuf OUT VARCHAR2, retcode OUT NUMBER. The concurrent process expects this; your own arguments should come after these first two. So a prototype packaged procedure specification would similar to:

  PROCEDURE create_manual_batch (
    errbuf OUT VARCHAR2,
    retcode OUT NUMBER,
    p_part_id IN VARCHAR2,
    p_quote_line_id IN VARCHAR2,
    p_parent_id IN VARCHAR2 DEFAULT '0');

You may use errbuf and recode in your code to send back useful information to the application. You can pass an error message string to errbuf which will write to the log file, and you can set the retcode in your program to show success or failure or error in the EBS Concurrent Request form:

  • 0 = Normal
  • 1 = Warning
  • 2 = Error

Upvotes: 2

Related Questions