Tuesday, October 31, 2017
Monday, October 30, 2017
Friday, October 27, 2017
Message Choice @OAF
Message Choice
In this lesson we are going to learn how to create Message Choice item in the OAF page.
The bean for message Choice is item is “OAMessageChoiceBean”.
Step 1: First create Item in the page and select Item Style as MessageChoice in Property Inspector.
Step 2: After creating the page create the VO (View Object) in respective BC4J and attach VO to AM (Application Module).
Creating VO process:
Right Click on Resources folder of project and then select New View Object… as shown in the below figure:
After that a welcome page to create a View Object wizard window will open as shown below:
Click on Next button so that first step to create a VO will come and in that :
Package : Select the proper package name which we created for a project.
Name : give the name to the VO note that all the View objects ends with VO.
Click on Next button:
Click on Next Button, no need to select any package or attributes here:
Click on Next button without any changes:
Click on Next button without any changes so that we can see the Query area to enter SQL query to retrieve the data, write the SQL Query in the Query Statement
After writing the Query statement check whether the written Query is valid or not by clicking on Test so that if the query is valid then it shows a message that Query is valid. After that click on Next button.
Click on next button to step 8:
Click on next button and click on Finish button:
After creating VO (view object) we need to attach VO to AM (application Module). Let us see how to attach VO to AM:
Attaching VO to AM:
Edit the AM which we created in the project, right click on AM and then select Edit <AM Name> as shown in the below figure:
Select Data Model, extract the package in which VO is created select the VO after selecting the proper VO click on the Greaterthan arrow symbol which is shown in below figure:
After that we can see the VO is attached to the AM as shown in the below figure:
Click on Apply button and then on OK button so that the attachment process of VO to AM is over.
Step 3: Select the item properties in that do the following:
Picklist View Instance : Give the VO name
View Instance : Attribute Name, the displayed list values. (Column Name, in VO columns are converted into attributes).
View Attribute : Attribute Name
Now run the page so that we can see the output with drop down list to pick some values. The below image shows the output of Message Choice along with other items in OAF page.
Note that a drop down list can handle a maximum of 200 values.
Update records in OAF Page
1. Create a Search Page to Create a page please go through the following link
2. Implement Update Action in SearchPG
Right click on ResultTable in SearchPG > New > Item
Set following properties for New Item
Attribute
|
Property
|
ID
|
UpdateAction
|
Item Style
|
image
|
Image URI
|
updateicon_enabled.gif
|
Atribute Set
|
/oracle/apps/fnd/attributesets/Buttons/Update
|
Prompt
|
Update
|
Additional Text
|
Update record
|
Height
|
24
|
Width
|
24
|
Action Type
|
fireAction
|
Event
|
update
|
Submit
|
True
|
Parameters
|
Name – PColumn1
Value -- ${oa.SearchVO1.Column1}
Name – PColumn2
Value -- ${oa.SearchVO1.Column2}
|
3. Create a Update Page
Right click on SearchDemo > New > Web Tier > OA Components > Page
Name – UpdatePG
Package – search.oracle.apps.fnd.searchdemo.webui
4. Select the UpdatePG and go to the strcuture pane where a default region has been created
5. Select region1 and set the following properties:
Attribute
|
Property
|
ID
|
PageLayoutRN
|
Region Style
|
PageLayout
|
AM Definition
|
prajkumar.oracle.apps.fnd.searchdemo.server.SearchAM
|
Window Title
|
Update Page Window
|
Title
|
Update Page
|
Auto Footer
|
True
|
6. Create the Second Region (Main Content Region)
Select PageLayoutRN right click > New > Region
ID – MainRN
Region Style – messageComponentLayout
7. Create first Item (Empty Field)
MainRN > New > messageTextInput
Attribute
|
Property
|
ID
|
Column1
|
Style Property
|
messageTextInput
|
Prompt
|
Column1
|
Data Type
|
VARCHAR2
|
Length
|
20
|
Maximum Length
|
100
|
View Instance
|
SearchVO1
|
View Attribute
|
Column1
|
8. Create second Item (Empty Field)
MainRN > New > messageTextInput
Attribute
|
Property
|
ID
|
Column2
|
Style Property
|
messageTextInput
|
Prompt
|
Column2
|
Data Type
|
VARCHAR2
|
Length
|
20
|
Maximum Length
|
100
|
View Instance
|
SearchVO1
|
View Attribute
|
Column2
|
9. Create a container Region for Apply and Cancel Button in UpdatePG
Select MainRN of UpdatePG
MainRN > messageLayout
Attribute
|
Property
|
Region
|
ButtonLayout
|
10. Create Apply Button
Select ButtonLayout > New > Item
Attribute
|
Property
|
ID
|
Apply
|
Item Style
|
submitButton
|
Attribute
|
/oracle/apps/fnd/attributesets/Buttons/Apply
|
11. Create Cancel Button
Select ButtonLayout > New > Item
Attribute
|
Property
|
ID
|
Cancel
|
Item Style
|
submitButton
|
Attribute
|
/oracle/apps/fnd/attributesets/Buttons/Cancel
|
12. Add Page Controller for SearchPG
Right Click on PageLayoutRN of SearchPG > Set New Controller
Name – SearchCO
Package -- search.oracle.apps.fnd.searchdemo.webui
Add Following code in Search Page controller SearchCO
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.webui.beans.layout.OAQueryBean;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.webui.beans.layout.OAQueryBean;
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
OAQueryBean QB=(OAQueryBean)webBean.findChildRecursive("QueryRN");
QB.clearSearchPersistenceCache(pageContext);
}
/**
* Procedure to handle form submissions for form elements in
* a region.
* @param pageContext the current OA page context
* @param webBean the web bean corresponding to the region
*/
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
if("update".equals(pageContext.getParameter(EVENT_PARAM)))
{
pageContext.setForwardURL("OA.jsp?page=/search/oracle/apps/PO/searchdemoPRJ/webui/updatePG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
true,
OAWebBeanConstants.ADD_BREAD_CRUMB_NO,
OAWebBeanConstants.IGNORE_MESSAGES);
}
}
13. Add Page Controller for UpdatePG
Right Click on PageLayoutRN of UpdatePG > Set New Controller
Name – UpdateCO
Package -- prajkumar.oracle.apps.fnd.searchdemo.webui
Add Following code in Update Page controller UpdateCO
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.OAApplicationModule;
import java.io.Serializable;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.OAApplicationModule;
import java.io.Serializable;
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
OAApplicationModule am=pageContext.getApplicationModule(webBean);
String Column1 = pageContext.getParameter("PColumn1");
String Column2 = pageContext.getParameter("PColumn2");
Serializable[] params = { Column1, Column2 };
am.invokeMethod("updateRow", params);
}
/**
* Procedure to handle form submissions for form elements in
* a region.
* @param pageContext the current OA page context
* @param webBean the web bean corresponding to the region
*/
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
searchAMImpl am=(searchAMImpl)pageContext.getApplicationModule(webBean);
if (pageContext.getParameter("Apply") != null)
{
am.invokeMethod("apply");
pageContext.forwardImmediately("OA.jsp?page=/search/oracle/apps/PO/searchdemoPRJ/webui/searchPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
false, // retain AM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
}
else if (pageContext.getParameter("Cancel") != null)
{
am.invokeMethod("rollback");
pageContext.forwardImmediately("OA.jsp?page=/search/oracle/apps/PO/searchdemoPRJ/webui/searchPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
false, // retain AM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
}
}
14. Add following Code in SearchAMImpl
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
public void apply()
{
getOADBTransaction().commit();
}
public void rollback()
{
getOADBTransaction().rollback();
}
public void updateRow(String Column1, String Column2)
{
searchVOImpl vo = (searchVOImpl)getsearchVO1();
vo.initQuery(Column1,Column2);
}
15. Add following Code in SearchVOImpl
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
public void initQuery(String Column1, String Column2)
{
if ((Column1 != null) && (!("".equals(Column1.trim()))))
{
setWhereClause("column1 = :1 AND column2 = :2");
setWhereClauseParams(null); // Always reset
setWhereClauseParam(0, Column1);
setWhereClauseParam(1, Column2);
executeQuery();
}
}
16. Congratulation you have successfully finished. Run Your Search page and Test Your Work
Subscribe to:
Posts (Atom)
-
SELECT item.segment1 item_code, item.description item_description, SUM (on_hand.on_hand) on_hand FROM mtl_system_items_...
-
The root cause of this error are the profile options: 1) FND_VALIDATION_LEVEL - None 2) FND_FUNCTION_VALIDATION_LEVEL - None 3)Framework...
-
Message Radio Button In this lesson we are going to learn how to use Radio Button items in the OAF page. We can create i...