This Blog has solutions for day to day issues faced during Development & Customization's activity in Oracle EBS Applications.
Nov 1, 2019
How to check Patch Details in R12.2.x
select ad_patch.is_patch_applied('R12',-1,19283503) from dual;
Oct 31, 2019
Oracle Branding Logo Change
Oracle Branding Logo Change
Step 1 : Place the XXX.Png file under $OA_MEDIA directory in App Tier.
Step 2 : Query the Profile & Change the value . 
              System Administrator >
Profile - System.
              Query profile
"Corporate Branding Image for Oracle Applications"
              Change the SITE level
value to the name of the custom image file { XX_CUSTOM_LOGO.jpg }
Step 3 :  Clear the Cache From Functional Administrator.
Oct 17, 2019
TOAD TNS Entry Issue
TOAD for Oracle 9 or TOAD 10 – 64-bit Windows – ORA-12154: could not resolve the connect identifier specified or ORA-6413: connection not open
I recently downloaded the new 10.x version of TOAD and could not connect to my databases. Still running TOAD 9.x, no problem. This really threw me off for a minute, so I thought I would share the resolution.
You are likely running a 64-bit Windows OS and have installed TOAD into 
C:\Program Files (x86)\....
I simply copied over my entire Quest Software directory from 
C:\Program Files (x86)\... to C:\Program Files\..., and restarted the TOAD.exe. Everything is working great, without having to reinstall anything.Sep 26, 2019
OAF Attachment Page with AK Entity
To display the content of attachments in OAF, we need to follow the below approach in JDevloper as well in EBS Application
Step 1: Create the AK Entity for the attachment section and map it to the right database table with Primary column
Responsibility: AK Html Forms
Navigation: AK Entities
Step 2: Under the Page development in JDevloper, create the region and attachment item with type 'attachmentLink'
Create a Region with 'defaultSingleColumn' and create a sub-item with type 'attachmentLink' and map the correct VO in the View Instance. Add the attachment Prompt and Link Text for user convenience.
Step 3: Create the Primary Key and Category Map under the entity map section for attaching the item with AK entities.
 Category is mentioned as MISC (Miscellaneous) under the categoryMap for the uploaded content.

Step 5: Validate the OAF page and result will be displayed like below for the Attachment Section,

Page Controller to capture the raised attachment events,
if ("oaAddAttachment".equals(pageContext.getParameter(EVENT_PARAM)) ||
"oaUpdateAttachment".equals(pageContext.getParameter(EVENT_PARAM)) ||
"oaDeleteAttachment".equals(pageContext.getParameter(EVENT_PARAM)) ||
"oaViewAttachment".equals(pageContext.getParameter(EVENT_PARAM)) )
{
System.out.println("Attachment Event Raised");
     
}
Step 1: Create the AK Entity for the attachment section and map it to the right database table with Primary column
Responsibility: AK Html Forms
Navigation: AK Entities
Step 2: Under the Page development in JDevloper, create the region and attachment item with type 'attachmentLink'
Create a Region with 'defaultSingleColumn' and create a sub-item with type 'attachmentLink' and map the correct VO in the View Instance. Add the attachment Prompt and Link Text for user convenience.
Step 3: Create the Primary Key and Category Map under the entity map section for attaching the item with AK entities.
Step 4: Tag the correct Primary Key column in the View Attribute column for linking the content with FND_ATTACHED_DOCUMENTS table.
Note: All the uploaded content will be stored in FND ATTACHED DOCUMENTS table with the mapped primary column crId.
Step 5: Validate the OAF page and result will be displayed like below for the Attachment Section,
Page Controller to capture the raised attachment events,
if ("oaAddAttachment".equals(pageContext.getParameter(EVENT_PARAM)) ||
"oaUpdateAttachment".equals(pageContext.getParameter(EVENT_PARAM)) ||
"oaDeleteAttachment".equals(pageContext.getParameter(EVENT_PARAM)) ||
"oaViewAttachment".equals(pageContext.getParameter(EVENT_PARAM)) )
{
System.out.println("Attachment Event Raised");
}
Sep 24, 2019
OAF Setup for DB and APP Connection
All the custom page can be developed and tested in our work system with the help of JDeveloper before deploying it to the Oracle Application. But still it need access to Application and DB in order to avoid the unnecessary error while deploying the custom page in the E-Business Suite.
For developing any custom page we need both DB as well APP connection detail string in order to fetch the database objects and application infra for the proper deployment. If the custom development runs well in JDeveloper then it will surely works well in the Application side too.. !!!
A. Database Connection setup
Navigation: JDevloper (Tools --> Project Properties --> Oracle Application --> Database Connection)
Step 1: Enter the Database name (Naming Convention can be anything and not related to DB TNS entry)
B. Application Setup for the Login User with DBC file
Keep the DBC file under the path "jdevhome\jdev\dbc_files\secure"

Make sure the FND user have the correct responsibility attached before mapping it in the APP setup
Enter the following details in the APP Setup
Navigation: JDevloper (Tools --> Project Properties --> Oracle Application --> Runtime Connection)
Step 1: Place the DBC file under the specified path as mentioned above and BROWSE and map it under the 'DBC File Name'
Step 2: Enter the Username and Pwd with right Application Short name and Responsibility Key.
For developing any custom page we need both DB as well APP connection detail string in order to fetch the database objects and application infra for the proper deployment. If the custom development runs well in JDeveloper then it will surely works well in the Application side too.. !!!
A. Database Connection setup
Enter the following details in the DB Setup
Navigation: JDevloper (Tools --> Project Properties --> Oracle Application --> Database Connection)
Step 1: Enter the Database name (Naming Convention can be anything and not related to DB TNS entry)
Step 2: Enter the DB Username and Password
Step 3: Enter the DB Host name, Port and SID as per your DB TNS entry
Step 4: Test the connection and make sure it return the status "SUCCESS"
B. Application Setup for the Login User with DBC file
Keep the DBC file under the path "jdevhome\jdev\dbc_files\secure"

Make sure the FND user have the correct responsibility attached before mapping it in the APP setup
Enter the following details in the APP Setup
Navigation: JDevloper (Tools --> Project Properties --> Oracle Application --> Runtime Connection)
Step 1: Place the DBC file under the specified path as mentioned above and BROWSE and map it under the 'DBC File Name'
Step 2: Enter the Username and Pwd with right Application Short name and Responsibility Key.
DBC file in JDeveloper Tool
How to get the DBC file from APP Server to use it in JDeveloper Tool
Step 1: Login to APP Server and go to $INST_TOP
cd $INST_TOP/appl/fnd/12.0.0.0/secure
ls -ltr
-rw-------. 1 applmgr dba 827 Jul 10 06:13 DEV.dbc
Step 2: Permission will be limited for other users other than application manager, so cat the file and save it
cat DEV.dbc
Copy the content and save it with .dbc extension
Step 3: JDevloper Path for DBC connection
If once saved the file, place it under jdevhome\jdev\dbc_files\secure
If all 3 steps done, try playing with OAF Page !!!
Step 1: Login to APP Server and go to $INST_TOP
cd $INST_TOP/appl/fnd/12.0.0.0/secure
ls -ltr
-rw-------. 1 applmgr dba 827 Jul 10 06:13 DEV.dbc
Step 2: Permission will be limited for other users other than application manager, so cat the file and save it
cat DEV.dbc
Copy the content and save it with .dbc extension
Step 3: JDevloper Path for DBC connection
If once saved the file, place it under jdevhome\jdev\dbc_files\secure
If all 3 steps done, try playing with OAF Page !!!
OAF Controller Functions
1. Deriving Various Bean values
a. messageStyledText
OAMessageStyledTextBean lvariable = (OAMessageStyledTextBean)webBean.findChildRecursive("column1");
b. messageTextInput
OAMessageTextInputBean lvariable = (OAMessageTextInputBean)webBean.findChildRecursive("column1");
c. messageChoice
OAMessageChoiceBean lvariable = (OAMessageChoiceBean)webBean.findChildRecursive("column1");
d. messageLovInput
OAMessageLovInputBean lvariable = (OAMessageLovInputBean)webBean.findChildRecursive("column1");
e. submitButton
OASubmitButtonBean lvariableSubmitButton = (OASubmitButtonBean)webBean.findChildRecursive("submitButton1");
f. button
OAButtonBean lvariableButton = (OAButtonBean )webBean.findChildRecursive("button1");
2. To commit the database transactions
getTransaction().commit();
3. To discard the database transactions
getTransaction().rollback();
4. To Forward a page from one screen to another
if (pageContext.getParameter("nextPage")!=null) {
pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/fnd/framework/newpage/webui/xxSearchPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
params,
true, // retain AM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
      
}
5. To initiate an Application Module (AM)
xxSearchAMImpl am = (xxSearchAMImpl)pageContext.getApplicationModule(webBean);
  
am.invokeMethod("apply");
6. To put a session value
pageContext.putSessionValue("currentPage","Page1");
7. To get a session value
String variableNew = (String)pageContext.getSessionValue("variableOld");
8. To hide a button/submit button using the Render property
OASubmitButtonBean SaveVariable = (OASubmitButtonBean)webBean.findChildRecursive("button1");
SaveVariable.setRendered(false);
SaveVariable.setRendered(true);
9. Forming Dynamic Parameter in Controller
HashMap params = new HashMap(1);
params.put("PageMode","CREATE");
if ( pageContext.getParameter("PageMode")!=null && pageContext.getParameter("PageMode").equals("CREATE") )
{
      
System.out.println("Page for Create Action");
am.invokeMethod("createRecord");
//Set Parameter value for PageMode back to Original State.
              
HashMap params = new HashMap(1);
params.put("PageMode","NULL");
         
}
a. messageStyledText
OAMessageStyledTextBean lvariable = (OAMessageStyledTextBean)webBean.findChildRecursive("column1");
b. messageTextInput
OAMessageTextInputBean lvariable = (OAMessageTextInputBean)webBean.findChildRecursive("column1");
c. messageChoice
OAMessageChoiceBean lvariable = (OAMessageChoiceBean)webBean.findChildRecursive("column1");
d. messageLovInput
OAMessageLovInputBean lvariable = (OAMessageLovInputBean)webBean.findChildRecursive("column1");
e. submitButton
OASubmitButtonBean lvariableSubmitButton = (OASubmitButtonBean)webBean.findChildRecursive("submitButton1");
f. button
OAButtonBean lvariableButton = (OAButtonBean )webBean.findChildRecursive("button1");
2. To commit the database transactions
getTransaction().commit();
3. To discard the database transactions
getTransaction().rollback();
4. To Forward a page from one screen to another
if (pageContext.getParameter("nextPage")!=null) {
pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/fnd/framework/newpage/webui/xxSearchPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
params,
true, // retain AM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
}
5. To initiate an Application Module (AM)
xxSearchAMImpl am = (xxSearchAMImpl)pageContext.getApplicationModule(webBean);
am.invokeMethod("apply");
6. To put a session value
pageContext.putSessionValue("currentPage","Page1");
7. To get a session value
String variableNew = (String)pageContext.getSessionValue("variableOld");
8. To hide a button/submit button using the Render property
OASubmitButtonBean SaveVariable = (OASubmitButtonBean)webBean.findChildRecursive("button1");
SaveVariable.setRendered(false);
SaveVariable.setRendered(true);
9. Forming Dynamic Parameter in Controller
HashMap params = new HashMap(1);
params.put("PageMode","CREATE");
if ( pageContext.getParameter("PageMode")!=null && pageContext.getParameter("PageMode").equals("CREATE") )
{
System.out.println("Page for Create Action");
am.invokeMethod("createRecord");
//Set Parameter value for PageMode back to Original State.
HashMap params = new HashMap(1);
params.put("PageMode","NULL");
}
Subscribe to:
Comments (Atom)
Useful Workflow Commands
WFLOAD apps/columbus789 0 Y DOWNLOAD APEXP_FINDEV.wft APEXP Locations: $PO_TOP/patch/115/import/US/porpocha.wft $PO_TOP/patch/115/import/U...
- 
There are two steps to create Materialized Views in 12.2 Create Logical View Upgrade to Materialized View Create Logical View CREATE OR RE...
- 
1. Deriving Various Bean values a. messageStyledText OAMessageStyledTextBean lvariable = (OAMessageStyledTextBean)webBean.findChildRecu...
- 
Download Concurrent Programs: FNDLOAD apps/matrix O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP.ldt PROGRAM APPLICATION_...
 





