parameters are not passed to concurrent requests

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

parameters are not passed to concurrent requests

anandmandilwar
Hi Erman
I see a strange scenario in our environment where the newly registered concurrent programs are erroring out because the program parameters are not passed to the underlying program executable.

When I query FND_CONCURRENT_REQUESTS, "argument" fields are NULL for those requests.

Strange is - when I enable the level 12 trace (from Help - > Diagnostic) before submitting the job, same concurrent programs complete successfully and FND_CONCURRENT_REQUESTS has all the arguments populated correctly.

Also when I submit the job from backend, they complete normal.

Any advice/input pls?
Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

ErmanArslansOracleBlog
Administrator
What kinds of arguments are they?
What are the values of these arguments? ( I mean, are they being read by other variable , like a profile value or something?)

Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

anandmandilwar
These are simple concurrent program parameters like 'Start Date', 'End Date' and 'Period Name' - which are eventually used by underlying procedure.

These parameters are not currently passed to the procedure from the front end. Surprisingly when I submit the program from backend using 'fnd_request.submit_request' with the same parameters, they all go through and everything is fine.

Also when I enable the trace (Help -> Diagnostic -> Trace), even then also parameters are passed and program completes successfully.

Hope this answers your query. Pls advise.
Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

ErmanArslansOracleBlog
Administrator
How do you pass these parameters ('Start Date', 'End Date' and 'Period Name' ) , from frontend?
Do you directly pass the values or do these values supposed to be read from a profile option value or from any other variable?

Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

ErmanArslansOracleBlog
Administrator
also tell me how did you define this concurrent program?
How did you map the concurrent program's arguments to underlying procedure's arguments?
Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

anandmandilwar
Hi Erman
These parameters are directly passed onto the underlying executable (which in my case is PL/SQL Stored procedure).

Now coming to your question as how parameters in concurrent program are mapped to parameters in underlying procedure

Since the executable here is "PL/SQL Stored procedure" and once the executable is attached in front end, whatever parameter we define in the front end is mapped one to one with the procedure parameter

e.g. If in the front end
Program 1st parameter description is "Start Date" and parameter name is p_start_date, 2nd Parameter description is "End Date"  and parameter name is p_end_date and 3rd parameter description is 'Period Name (parameter name - p_period_name)  

Underlying procedure will have the argument as
p_start_date
p_end_date & p_period_name
In addition to that there will be 2 additional parameters in procedure (p_start_date & p_ret_code)

Hope this answered your query
Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

ErmanArslansOracleBlog
Administrator
Aha.. With the all info you provided, I started to think that this is related with Forms. (supposing you are using standard forms screens to submit this problematic request)

1)How do you submit this concurrent request?
You already mentioned that the issue is produced when you submit it from frontend.
Exactly how do you submit? Are you using Standard Concurrent request submit form?

2)Any errors in the forms server trace?

3)Anything related in the fnd_log_messages?

Please do the following and check the output:

To generate the entries in the fnd_log_messages while running a concurrent request program set the following:
                    1. Enable the profile 'Concurrent: Allow Debugging'
                    2. Give the debug module as '%'  (or the product of the program like 'po%')
                    3. Before running concurrent program, click 'Diagnostics' button and enable
                        logging there as well.
                    4. Collect the entries from fnd_log_messages.  
                    5. Use the AUDSID from the request status log and collect it via SQL like:

                       SQL> select * from FND_LOG_MESSAGES where AUDSID = &audsid;

4)Send me the logfile of a completed concurrent request..

5)Send me the screenshot of the diagnostic window. (using concurrent request form)

6)Enable FRD trace, reproduce the issue and check the trace to if there are see any errors.

7)Enable trace on your client's java plugin. Open the java console and check the java console output to see if there are any errors produced when the issue is reproduced.

8)Also tell me-> Is this issue specific to a single concurrent program?  what is the EBS module name? Custom module right? Any issues recorded for the other concurrent programs of this custom module?
Reply | Threaded
Open this post in threaded view
|

Re: parameters are not passed to concurrent requests

Anand
Thanks Erman for your input on this. Somehow I am not able to find any message logged into FND_LOG_MESSAGE even after enabling diagnostic. but the good thing is that the issue got resolved on it's own.

It still remains mystery as what caused the issue and what resolved. Now I can see the new concurrent program when submitted from front end are passing the arguments properly and as expected.

Thanks again for you time and input. Your blog is really good and very informative.