Skip to main content

Launching a Concurrent with Form Personalization on EBS 11i

There are two methods when it comes to running a concurrent from a Form Personalization in Oracle. The thing you need to do in either case is create a menu option for the form in question. This is generally done on a WHEN-NEW-FORM-INSTANCE Trigger Event. If you already have an event like this then you can add it there. I personally like to group my customizations together so there is not much overlap. Whichever catches your fancy will work.
Setup the menu with the name:
You now have a menu item for the launching of the concurrent program. This is where the two methods separate and you may choose which ever is more appropriate to you.

Launch FNDRSRUN (Submit Request)
This will use the zoom feature of Oracle Form Personalization to open the Submit Request Form, and pass the parameters to it. This involves personalization in two forms. The sending form needs to call the Form Function and pass the parameters and the Submit Request form needs to receive and process those parameters.  First create a trigger even for the Menu that you created above. This will be done in both cases and you can also have all kinds of conditions attatched.

The action will use the Buildin type and will call the "Launch a Function" Builtin Type. The important thing to remember is that this is not a database function  but rather a form function. If you hit the LOV you will get all the available functions. Make sure the Function is available to the responsibility. Using "%FNDRSRUN%" in the find field will list all the functions related to the Submit Request form, you will need to do some digging to find the function related to your responsibility. I personally went to the menu attached to the responsibility and found the function associated with the Submit Request function

My main sticking point was finding the way how to send the parameters and here is the code I used in the parameter field
||'" CHAR2="'||${item.Q_RES.ORGANIZATION_ID.value}
||'" CHAR3="'||${item.Q_RES.COLLECTION_ID.value}
||'" CHAR4="'||${item.Q_RES.OCCURRENCE.value}
||'" CHAR5="'||${item.Q_RES.PLAN_ID.value}||'"'
from dual

There are notes out there on how to use NUM and DATE but I was able to get it working.
The next step is to go to the Submit Request form and create a personalization that will fill the parameters in the form.
This will now only fill out the parameters for the concurrent you want
The hard work is basically over and now just need to set the parameters in for the run. I used the following to set the field.
The main reason I needed this method was that the user wanted to pass parameters to the concurrent. I will go through the other method in a followup post where you directly call a procedure and that will submit the concurrent. This is useful if the parameters being sent are not needed to change on the fly.


  1. May i know how to pass the form field values to the concurrent program ?can you please give a sample code ?

  2. this is the program which i have created for calling a concurrent program from form personalization
    X_REQUEST_ID :=fnd_request.submit_request( APPLICATION => ''CSD'',
    DESCRIPTION => '' xxxx'',
    X_REQUEST_ID :=4126312;

    Now i need to pass the form field values to the ins_carton_stage_reco's Procedure as parameters for which i have created the concurrent program with the name of SAMPLECONPGM.
    i have used the following code but there are some errors in it.. can u plz figure out what is the mistake in it



    ('''||${item.TOLINES_BLK.pi_organization_id.value}||''','''| |${item.TOLINES_BLK.pi_carton_number.value}||''');



Post a Comment

Popular posts from this blog

Cancel or abort adop session

ADOP is in my opinion still pretty half baked. This is a critical tool that just isn't as intuitive as the old adpatch was. However we move with the times and get the hang of the new way of doing things. Along the way you might want to abort or cancel a patching cycling. With the two file systems and db editioning this can be a bit more to manage. I have learnt the hard way so you need to use the full cleanup after aborting a session.
adop phase=abort
adop phase=cleanup cleanup_mode=full

Creating new WLS domain ends with exit code 255

Cloning the instance I ran into this weird error. Was not sure what to do but after learning my lesson I dug through the error logs after seeing this in the adcfgclone log file.
START: Creating new WLS domain.
Running /u03/APPLYES/YES/fs2/FMW_Home/oracle_common/bin/ -javaHome /u03/APPLYES/YES/fs2/EBSapps/comn/util/jdk64 -al /u03/APPLYES/YES/fs2/EBSapps/comn/clone/FMW/WLS/EBSdomain.jar -tdl /u03/APPLYES/YES/fs2/FMW_Home/user_projects/domains/EBS_domain_YES -tmw /u03/APPLYES/YES/fs2/FMW_Home -mpl /u03/APPLYES/YES/fs2/EBSapps/comn/clone/FMW/WLS/plan/moveplan.xml -ldl /u03/APPLYES/YES/fs2/inst/apps/YES_erpapyes/admin/log/clone/wlsT2PApply -silent true -debug true -domainAdminPassword /u03/APPLYES/YES/fs2/EBSapps/comn/clone/FMW/tempinfo.txt
Script Executed in 1903 milliseconds, returning status 255
ERROR: Script failed, exit code 255

Dig a bit deeper into the log files
cd /u03/APPLYES/YES/fs2/inst/apps/YES_erpapyes/admin/log/clone/wlsT2PApply
cat CLONE2016-01-10_04-37-11PM.log

Failed to initialize the application 'EBSDataSource' due to error weblogic.application.ModuleException after FNDCPASS apps change

Started testing password changes in our clone environments. Weblogic seems to love throwing you curve balls and when I changes the apps password with the below:
I was not able to start the weblogic managed servers. A look in the log an I found this:

        at weblogic.jdbc.module.JDBCModule.prepare(
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(
        at weblogic.application.internal.flow.DeploymentCallbackFlow$
        at weblogic.application.utils.StateMachineDriver.nextState(
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(
        at weblogic.application.internal.BaseDep…