Monday 19 March 2012

Submitting and Monitoring Concurrent Programs from Oracle Apps Self-Service Pages



We normaly submit and monitor Concurrent Programs from standard request submission form (SRSFrom). There is another way to submit concurrent programs i.e. Submitting and Monitoring through Self-Service Pages. which is very useful in many scenarios. Chcek this post to achieve this.


Method:


Define Function:
Navigation: System Administrator -> Application -> Function
Properties: SSWA jsp function
Web HTML Call:
To submit any concurrent program:
OA.jsp?akRegionApplicationId=0&akRegionCode=FNDCPPROGRAMPAGE&scheduleRegion=Hide&notifyRegion=Hide&printRegion=Hide
To Submit Particular Concurrent Program
OA.jsp?akRegionApplicationId=0&akRegionCode=FNDCPPROGRAMPAGE&programApplName=PER&programName=LMHR_LOI_DETAIL&programRegion=Hide&scheduleRegion=Hide&notifyRegion=Hide&printRegion=Hide
Where LMHR_LOI_DETAILis Concurrent Program Short Name

To View requests related to specific concurrent program
OA.jsp?akRegionCode=FNDCPREQUESTVIEWPAGE&akRegionApplicationId=0&progApplShortName=AR&progShortName=ARDLP_NON_SRS
Where  ARDLP_NON_SRS is Concurrent program Name

7 comments:

  1. Excelent !! This Works!!

    Thanks

    ReplyDelete
  2. Thanks a lot, I was looking for this example and it worked for me.

    ReplyDelete
  3. I have followed the same procedure but facing the below issue.

    Invalid Application and Program Name.

    ReplyDelete
  4. I too have followed the same but getting this error
    oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (select T.territory_short_name display_nls_territory, nls_territory from fnd_territories_vl T, v$nls_valid_values V where T.nls_territory = V.value and V.parameter = 'TERRITORY') QRSLT WHERE (nls_territory = :1)
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:886)

    ReplyDelete
  5. this code creates a button in the process request and submit the request via DB function receive parameter from the page and get the url and the function output

    package gaccust.oracle.apps.per.selfservice.extrainfotype.webui;

    import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.Types;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.OAViewObject;
    import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
    import oracle.apps.fnd.framework.server.OADBTransaction;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.webui.beans.form.OASubmitButtonBean;
    import oracle.apps.fnd.framework.webui.beans.nav.OAPageButtonBarBean;
    import oracle.apps.per.selfservice.extrainfotype.webui.EitMainPageCO;
    import oracle.jbo.Row;
    import oracle.jdbc.OracleCallableStatement;
    //------------------------------------------------------------------------------
    public class EitMainPageCOEx extends EitMainPageCO {
    public EitMainPageCOEx() {
    }
    public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
    super.processRequest(pageContext, webBean);
    /*----------- Now Create New Button Programatically ----------------->*/
    //---------------------------------------------------- Rec Report Button
    OASubmitButtonBean oasb =
    (OASubmitButtonBean)pageContext.getWebBeanFactory().createWebBean(pageContext,
    "BUTTON_SUBMIT");
    oasb.setID("XXRecRepSI");
    oasb.setUINodeName("XXRecRepNAME");
    oasb.setEvent("XXRecRepEV");
    oasb.setText("Receiving Form");
    webBean.addIndexedChild(oasb);
    //---------------------------------------------------- DEL Report Button
    OASubmitButtonBean oasb1 =
    (OASubmitButtonBean)pageContext.getWebBeanFactory().createWebBean(pageContext,
    "BUTTON_SUBMIT");
    oasb1.setID("XXDelRepSI");
    oasb1.setUINodeName("XXDelRepNAME");
    oasb1.setEvent("XXDelRepEV");
    oasb1.setText("Returning Form");
    webBean.addIndexedChild(oasb1);
    //----------------------------------------------------------------------
    //javascript
    //show popup message on click
    //oasb.setAttributeValue(oracle.cabo.ui.UIConstants.ON_CLICK_ATTR,
    // "alert('el-zorar bey2ool baba we mama');");
    //-------------------------------------------- New Button in the headder
    OAPageButtonBarBean pBar =
    (OAPageButtonBarBean)pageContext.getPageLayoutBean().getPageButtons();
    OASubmitButtonBean oasbb =
    (OASubmitButtonBean)pageContext.getWebBeanFactory().createWebBean(pageContext,
    "BUTTON_SUBMIT");
    oasbb.setID("XXRecRepST1");
    oasbb.setUINodeName("XXRecRepST1");
    oasbb.setEvent("XXRecRepEV");
    oasbb.setText("XXRecRepST1");
    pBar.addIndexedChild(oasbb);
    }
    //----------------------------------------------------------------------

    ReplyDelete
  6. Hi There,

    I have used the same stuff and it works.. The only problem is once the program is submitted, page gets auto redirected to view requests and where it displays all the requests submitted by the employee. Where as i want to see only the current request or all request of same program.

    ReplyDelete