How to extend a standard controller CO?
I have a standard page in HRMS module and have a business requirement to have additional check(Validations) to be performed before i click Transfer button. Transfer button Will have a standard controller.
How to find the controller Name?
Click About this page hyperlink displayed at bottom of the page where your controller has to be extended.
Note: FND: Diagnostics (FND_DIAGNOSTICS) profile option to Yes to render the "About this page" link at the bottom of each OA Framework-based page.
1)Unbook the Business components hierarchy
2)It will display all the BC4J components of the OA page.
3)Find the controller at $JAVA_TOP/oracle/apps/per/wpm/objectives/webui
4)Download the controllerCO.class file from "oracle/apps/per/wpm/objectives/webui" to your local system. Your controller will be applicable based on the application top.
5)Decompile the class file to get java file using CAVAJ utility.
6)Open the Original Java file and Start modify the processFormRequest( ) Method. I have highlighted the changes done to achieve the business requirement.
package xx.oracle.apps.per.wpm.objectives.webui;
import com.sun.java.util.collections.HashMap;
import java.io.Serializable;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.fnd.framework.OAApplicationModule;
import oracle.apps.fnd.framework.OAException;
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.per.selfservice.common.SSHRParams;
import oracle.jbo.domain.Number;
import oracle.apps.per.wpm.objectives.webui.*;
import oracle.apps.fnd.framework.OAFwkConstants;
import oracle.apps.fnd.framework.server.OADBTransaction; //to establish DB connection
import java.sql.CallableStatement; //to execute a package.procedure
import java.sql.Types;//used for type conversions and VARCHAR2
// Referenced classes of package oracle.apps.per.wpm.objectives.webui:
// ObjectivesPageCO
public class XXSetObjectivesPageCO extends SetObjectivesPageCO
{
public static final String RCS_ID = "$Header:" +
" ship $"
;
public static final boolean RCS_ID_RECORDED = VersionInfo.recordClassVersion("$Header:" +
" ship $"
, "oracle.apps.per.wpm.objectives.webui");
public XXSetObjectivesPageCO()
{
//Constructor;
}
public void processRequest(OAPageContext oapagecontext, OAWebBean oawebbean)
{
super.processRequest(oapagecontext, oawebbean);
//I need standard processRequest method to be executed first.
}
public void processFormRequest(OAPageContext oapagecontext, OAWebBean oawebbean)
{
String p_return_msg = null;
if(oapagecontext.getParameter("MgrTransfer") != null) //This is the Transfer Button ID name
{
OADBTransaction tx = oapagecontext.getRootApplicationModule().getOADBTransaction();
String sql="BEGIN " +
"XXValidateProc("+
"p_param_1=> :1,"+
"p_return_msg => :2);"+
" END;";
CallableStatement cStmt = (CallableStatement)tx.createCallableStatement(sql, 1);
if(cStmt!=null)
{
try {
cStmt.setString(1,oapagecontext.getDecryptedParameter("p_param_1"));
cStmt.registerOutParameter(2,Types.VARCHAR);
cStmt.execute();
p_return_msg = cStmt.getString(2);
cStmt.close();
}
catch(Exception e)
{
throw new OAException("SBM: Error Calling XXValidateProc" + e.toString(),OAException.ERROR);
}
}
if(!p_return_msg.equalsIgnoreCase("No Errors")){
throw new OAException(p_return_msg,OAException.ERROR);
}
else
{
super.processFormRequest(oapagecontext, oawebbean);
}
}
else
{ //In case of any exception in the custom procedure, I want the standard controller method's to be called.
super.processFormRequest(oapagecontext, oawebbean);
}
}
}
Migration of OA Controller Extension
1)Create a folder under $JAVA_TOP xx/oracle/apps/per/wpm/objectives/webui;
2)Move the XXSetObjectivesPageCO.java to the above location.
3)Compile the Java using javac XXSetObjectivesPageCO.java
4)Once compilation is done successfully.
5) Goto the page where the Controller is extended. Click Personalize Page Option.
Note: Personalize Self-service Defn (FND_CUSTOM_OA_DEFINTION) profile option should be enabled.
Go to The regions where controller is got extended. Inherit the Controller location as
xx/oracle/apps/per/wpm/objectives/webui/XXSetObjectivesPageCO
Controller Extension is Done :)
I have a standard page in HRMS module and have a business requirement to have additional check(Validations) to be performed before i click Transfer button. Transfer button Will have a standard controller.
How to find the controller Name?
Click About this page hyperlink displayed at bottom of the page where your controller has to be extended.
Note: FND: Diagnostics (FND_DIAGNOSTICS) profile option to Yes to render the "About this page" link at the bottom of each OA Framework-based page.
1)Unbook the Business components hierarchy
2)It will display all the BC4J components of the OA page.
3)Find the controller at $JAVA_TOP/oracle/apps/per/wpm/objectives/webui
4)Download the controllerCO.class file from "oracle/apps/per/wpm/objectives/webui" to your local system. Your controller will be applicable based on the application top.
5)Decompile the class file to get java file using CAVAJ utility.
6)Open the Original Java file and Start modify the processFormRequest( ) Method. I have highlighted the changes done to achieve the business requirement.
package xx.oracle.apps.per.wpm.objectives.webui;
import com.sun.java.util.collections.HashMap;
import java.io.Serializable;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.fnd.framework.OAApplicationModule;
import oracle.apps.fnd.framework.OAException;
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.per.selfservice.common.SSHRParams;
import oracle.jbo.domain.Number;
import oracle.apps.per.wpm.objectives.webui.*;
import oracle.apps.fnd.framework.OAFwkConstants;
import oracle.apps.fnd.framework.server.OADBTransaction; //to establish DB connection
import java.sql.CallableStatement; //to execute a package.procedure
import java.sql.Types;//used for type conversions and VARCHAR2
// Referenced classes of package oracle.apps.per.wpm.objectives.webui:
// ObjectivesPageCO
public class XXSetObjectivesPageCO extends SetObjectivesPageCO
{
public static final String RCS_ID = "$Header:" +
" ship $"
;
public static final boolean RCS_ID_RECORDED = VersionInfo.recordClassVersion("$Header:" +
" ship $"
, "oracle.apps.per.wpm.objectives.webui");
public XXSetObjectivesPageCO()
{
//Constructor;
}
public void processRequest(OAPageContext oapagecontext, OAWebBean oawebbean)
{
super.processRequest(oapagecontext, oawebbean);
//I need standard processRequest method to be executed first.
}
public void processFormRequest(OAPageContext oapagecontext, OAWebBean oawebbean)
{
String p_return_msg = null;
if(oapagecontext.getParameter("MgrTransfer") != null) //This is the Transfer Button ID name
{
OADBTransaction tx = oapagecontext.getRootApplicationModule().getOADBTransaction();
String sql="BEGIN " +
"XXValidateProc("+
"p_param_1=> :1,"+
"p_return_msg => :2);"+
" END;";
CallableStatement cStmt = (CallableStatement)tx.createCallableStatement(sql, 1);
if(cStmt!=null)
{
try {
cStmt.setString(1,oapagecontext.getDecryptedParameter("p_param_1"));
cStmt.registerOutParameter(2,Types.VARCHAR);
cStmt.execute();
p_return_msg = cStmt.getString(2);
cStmt.close();
}
catch(Exception e)
{
throw new OAException("SBM: Error Calling XXValidateProc" + e.toString(),OAException.ERROR);
}
}
if(!p_return_msg.equalsIgnoreCase("No Errors")){
throw new OAException(p_return_msg,OAException.ERROR);
}
else
{
super.processFormRequest(oapagecontext, oawebbean);
}
}
else
{ //In case of any exception in the custom procedure, I want the standard controller method's to be called.
super.processFormRequest(oapagecontext, oawebbean);
}
}
}
Migration of OA Controller Extension
1)Create a folder under $JAVA_TOP xx/oracle/apps/per/wpm/objectives/webui;
2)Move the XXSetObjectivesPageCO.java to the above location.
3)Compile the Java using javac XXSetObjectivesPageCO.java
4)Once compilation is done successfully.
5) Goto the page where the Controller is extended. Click Personalize Page Option.
Note: Personalize Self-service Defn (FND_CUSTOM_OA_DEFINTION) profile option should be enabled.
Go to The regions where controller is got extended. Inherit the Controller location as
xx/oracle/apps/per/wpm/objectives/webui/XXSetObjectivesPageCO
Controller Extension is Done :)
This comment has been removed by the author.
ReplyDeleteIts impressive to know something about your note on Oracle apps Course. Please do share your articles like this your articles for our awareness. Mostly we do also provide Online Training on Cub training oracle apps course.
ReplyDeleteVery interesting notes on ebusiness Suite
ReplyDeletePlease do share your articles like this.This link also useful to Find info On Oracle apps-jobs,interview tips,Resume preparation,functional issuesOracle eBusiness Suite
Hi friends, This is Rebeka from Chennai. I am a technology freak. Your technical information is really useful for me. Keep update your blog.
ReplyDeleteRegards..
Oracle Training
This blog contain valuable information about oracle.ORACLE OAF ONLINE TRAINING
ReplyDeleteThanks for giving Good Example.
ReplyDeleteFantastic article, Viral. Very well written, clear and concise. One of the best links explaining one to many and hierarchy Oracle oaf. Thanks a lot.It is uaefull to me and my training Ithubonlinetraining center.
Greens Technology's the leading software Training & placement centre Chennai & ( Adyar)
ReplyDeleteunix training in chennai
Your blog is really nice and informative. Thanks for sharing this post. Keep posting.
ReplyDeletej2ee training in chennai
Thank you very much. The post was long, but I loved to read it till the last word. It was so nice blog and useful to Informatics learners.
ReplyDeleteOracle Fusion SCM Training
Thanks to shared this extension details with us. Keep updating.
ReplyDeleteDBA course syllabus | DBA training courses
I really appreciate information shared above. It’s of great help. If someone want to learn Online (Virtual) instructor lead live training in ORACLE INVENTORY MANAGEMENT, kindly contact us http://www.maxmunus.com/contact
ReplyDeleteMaxMunus Offer World Class Virtual Instructor led training on ORACLE INVENTORY MANAGEMENT We have industry expert trainer. We provide Training Material and Software Support. MaxMunus has successfully conducted 100000+ trainings in India, USA, UK, Australlia, Switzerland, Qatar, Saudi Arabia, Bangladesh, Bahrain and UAE etc.
For Demo Contact us.
Saurabh Srivastava
MaxMunus
E-mail: saurabh@maxmunus.com
Skype id: saurabhmaxmunus
Ph:+91 8553576305 / 080 - 41103383
http://www.maxmunus.com/
thanks for this useful information
ReplyDeleteI simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.
ReplyDeletepython training in sholinganallur
python training in annanagar
python training in chennai
python training in marathahalli
python training in btm layout
python training in rajaji nagar
python training in jayanagar
Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website.
ReplyDeletejava training in chennai
java training in bangalore
java online training
java training in pune
java training in chennai
java training in bangalore
java training in tambaram
Thanks for the informative article. This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.
ReplyDeleterpa training in marathahalli
rpa training in btm
rpa training in kalyan nagar
rpa training in electronic city
rpa training in chennai
rpa training in pune
rpa online training
It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.Most of ideas can be nice content.The people to give them a good shake to get your point and across the command
ReplyDeleteData Science training in btm
Data Science training in rajaji nagar
Data Science training in chennai
Data Science training in kalyan nagar
Data Science training in electronic city
Data Science training in USA
selenium training in chennai
selenium training in bangalore
Resources like the one you mentioned here will be very useful to me ! I will post a link to this page on my blog. I am sure my visitors will find that very useful
ReplyDeleteAWS Training in chennai
Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
ReplyDeleteDevops Training in pune
Devops Training in Chennai
Devops training in sholinganallur
Devops training in velachery
Devops training in annanagar
Devops training in tambaram
I am really very happy to find this particular site. I just wanted to say thank you for this huge read!! I absolutely enjoying every petite bit of it and I have you bookmarked to test out new substance you post.
ReplyDeleteangularjs Training in chennai
angularjs Training in chennai
angularjs-Training in tambaram
angularjs-Training in sholinganallur
angularjs-Training in velachery
Hmm, it seems like your site ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well as an aspiring blog writer, but I’m still new to the whole thing. Do you have any recommendations for newbie blog writers? I’d appreciate it.
ReplyDeleteBest Selenium Training in Chennai | Selenium Training Institute in Chennai
I have never read more interesting articles than yours before. You make me so easy to understand and I will continue to share this site. Thank you very much and more power!
ReplyDeleteSelenium Training in Chennai
Selenium Training
JAVA Training in Chennai
JAVA Training Institutes in Chennai
iOS Training in Chennai
iOS Training Institutes in Chennai
iOS Training in Velachery
Awwsome informative blog ,Very good information thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.
ReplyDeleteAviation Academy in Chennai | Aviation Courses in Chennai | Best Aviation Academy in Chennai | Aviation Institute in Chennai | Aviation Training in Chennai
Really great blog… Thanks for your useful information.
ReplyDeleteBest Spoken English Institute in Coimbatore
Spoken English Course in Coimbatore
Best Spoken English Coaching Center in Coimbatore
Coimbatore Spoken English Center
English Speaking Course in Coimbatore
Nice post. I learned some new information. Thanks for sharing.
ReplyDeleteArticle submission sites
Education
I would really like to thank you for providing such a valuable information. Nice post.
ReplyDeletePlacement Training in Chennai | Training institutes in Chennai with placement | Best Training and placement institutes in Chennai | Placement Training in Adyar | Placement Training in Velachery | Placement Training in Tambaram
good work done and keep update more.i like your information's and
ReplyDeletethat is very much useful for readers.
android training in bangalore with placement
Android Training in Ambattur
Android Training in Guindy
Android Certification Training in OMR
Thanks for sharing this information admin, it helps me to learn new things. Continue sharing more like this.
ReplyDeleteMicrosoft Azure Training in Chennai
Azure Training in Chennai
Azure Training in Tambaram
DevOps certification Chennai
DevOps Training in Chennai
RPA courses in Chennai
Awesome Post. It was a pleasure reading your article. Thanks for sharing.
ReplyDeletePega training institutes
Pega training courses
Pega administrator training
Pega testing training
Pega software training
Pega software course
Amazing Post. Great write-up. Extra-ordinary work. Waiting for your next Post.
ReplyDeleteSocial Media Marketing Courses in Chennai
Social Media Marketing Training in Chennai
Social Media Training in Chennai
Social Media Marketing Training
Social Media Marketing Courses
Social Media Training
Social Media Marketing Training
Social Media Courses
Best on my posting good to read
ReplyDeleteazure certification training chennai
It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.
ReplyDeleteMost of ideas can be nice content.The people to give them a good shake to get your point and across the command.
data science online training
python online training
uipath online training
data science with python online training
rpa online training
I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it.
ReplyDeleteMicrosoft Azure online training
Selenium online training
Java online training
Java Script online training
Share Point online training
Keep up the good works.
ReplyDeleteThis is a good post. This post give truly quality information. I’m definitely going to look into it. Really very useful tips are provided here. thank you so much.
Java training in Chennai
Java training in Bangalore
Java training in Hyderabad
Java Training in Coimbatore
Java Online Training
Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
ReplyDeletehadoop training in chennai
hadoop training in tambaram
salesforce training in chennai
salesforce training in tambaram
c and c plus plus course in chennai
c and c plus plus course in tambaram
machine learning training in chennai
machine learning training in tambaram
Wow its a very good post. The information provided by you is really very good and helpful for me. Keep sharing good information.
ReplyDeletehadoop training in chennai
hadoop training in annanagar
salesforce training in chennai
salesforce training in annanagar
c and c plus plus course in chennai
c and c plus plus course in annanagar
machine learning training in chennai
machine learning training in annanagar
I would really like to thank you for providing such a valuable information. Nice post.
ReplyDeleteweb designing training in chennai
web designing training in omr
digital marketing training in chennai
digital marketing training in omr
rpa training in chennai
rpa training in omr
tally training in chennai
tally training in omr
Thank you for posting informative insights, I think we have got some more information to share with! Do check out Big data training in chennai and let us know your thoughts. Let’s have great learning!
ReplyDeleteGreat learning experience with proficient trainers in Informatica. Flexible timings with hands on experience with real time scenarios.
ReplyDeleteOracle Apps Technical Training in Bangalore
This is really good information thank youpython course
ReplyDeleteReach to the = best Data Science Training institute in Chennai for skyrocketing your career, Infycle Technologies. It is the best Software Training & Placement institute in and around Chennai, that also gives the best placement training for personality tests, interview preparation, and mock interviews for leveling up the candidate's grades to a professional level.
ReplyDeleteReach to the <a href='https://infycletechnologies.com/python-training-in-chennai">best Python Training institute in Chennai</a> for skyrocketing your career, Infycle Technologies. It is the best Software Training & Placement institute in and around Chennai, that also gives the best placement training for personality tests, interview preparation, and mock interviews for leveling up the candidate's grades to a professional level.
ReplyDeleteInfycle Technologies, the top software training institute and placement center in Chennai offers the Digital Marketing course in Chennai for freshers, students, and tech professionals at the best offers. In addition to the Oracle training, other in-demand courses such as DevOps, Data Science, Python, Selenium, Big Data, Java, Power BI, Oracle will also be trained with 100% practical classes. After the completion of training, the trainees will be sent for placement interviews in the top MNC's. Call 7504633633 to get more info and a free demo.
ReplyDeleteLucky Club Casino Site | Lucky Club
ReplyDeleteLucky Club Casino is the finest site in the UK luckyclub.live offering a safe and secure way to deposit & play at the best online casino in the UK.Games · Contact Us · Games