Search Results


Wednesday, February 20, 2008

Deploy OA Framework

How to Deploy OA framework in the Instance

Deployment of OA framework consists of 5 steps.
  • Deploying Class files and VO/EO/AM xml files
  • Deploying PG/RN xml files
  • Deploying jpr files for Substitution
  • Setup AOL to access the page
  • Restart the server

Let's look at these one by one.

Deploying Class files


The files such as
  • Controllers *CO.class
  • Application modules *AM.class
  • View Objects *VOImpl.class, *VORowImpl.class, *VO.xml
  • Entity objects *EO.xml, *EOImpl.java

should be deployed in the $JAVA_TOP/<path of your file>.

For eg:

if your files path in jdeveloper is
$jdev_home/myprojects/oracle/apps/ap/setup/webui/setupCO.java

then place your class files in the following path in the instance
$JAVA_TOP/oracle/apps/ap/setup/webui/setupCO.class


Deploying Page and Region files


The Page xml files(*PG.xml) and region xml(*RN.xml) files resides in the database. So you have to import the file into the database to make it work in the instance. Oracle application provides XMLExporter/XMLImporter to export and import page files from and to the database.

Deploy the files to the Instance

java oracle.jrad.tools.xml.importer.XMLImporter /home/prasanna/pages/SetupPG.xml -username <data base user name> -password <data base password> -dbconnection "(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host =<hostname> ) (port = <port id>)))(connect_data = (sid = <sid>)))"

This command will import the SetupPG.xml file into the database.


Extracting from instance

If you have done your personalizations in the developement instance and you want to deploy the personalizations into the production instance, then you can extract the personalization using XMLExporter command from the developement instance and Import the extracted xml file into the production instance in the same way you did for PG.xml files.

java oracle.jrad.tools.xml.exporter.XMLExporter /oracle/apps/ap/setup/webui/customizations/site/0/SetupPG -rootdir <destination path> -username <data base user name> -password <data base password> -dbconnection "(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host =<hostname> ) (port = <port id>)))(connect_data = (sid = <sid>)))"

The above command will export the SetupPG from the data base to your file system at the destination path as XML file (SetupPG.xml)


Deploying jpr files for Substitutions, if any


If you have extended EO, VO or AM and created substitutions in your project. Then you have to deploy your .jpx file into the instance.

java oracle.jrad.tools.xml.importer.JPXImporter $AP_TOP/xxx/Setup.jpx -username <data base user name> -password <data base password> -dbconnection "(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host =<hostname> (port = <port id>)))(connect_data = (sid = <sid>)))"


Setup AOL to access the page


In case your page is referred in existing pages of Oracle applications you can skip this step. But if you want to access the page as a new Function then follow these steps.


Create Function as
ID: XX_SETUP
Name: SETUP
Function type(HTML tab) : SSW
URL: OA.jsp?page=/oracle/apps/ap/XXX/SetupPG&parameter1=xx&parameter1=xx


Attach the function to a Menu
Attach the menu to a Responsibility

Restart the server


After deployement you cannot see the page immediately on the server instance. This is because your Pages and class files would be cached in the middle tier. So you have to bounce the apache.

$COMMON_TOP/admin/scripts/adapcctl.sh stop
$COMMON_TOP/admin/scripts/adapcctl.sh start

After this process, clear the cache from the functional administrator responsibility and this step is optional.

Some times we may need to restart the whole middle tier to see the depolyed pages in the instance.

To Restart the instance use following command

Stop the instance
cd $INST_TOP/admin/scripts
adstpall.sh apps/apps

Start the instance
adstrtal.sh apps/apps



Article By:
Prasanna Jayaraman

Please post your Ideas and Comments

Tuesday, February 05, 2008

Managed Bean

Managed Bean

Managed beans are Java classes that you register with the. The managed beans are initialized when they are referenced in the application for the first time. It helps to handle UI events or write data manipulation code. TIP: Use managed beans to store only logic that is related to the UI rendering.

Managed beans can be registered in three files

  1. adfc-config.xml
  2. Task flow definition file
  3. faces-config.xml

adfc-config.xml

Managed bean declared in this file can be of any scope.

Task Flow definition file

Managed bean scope can any scope. However, managed beans of request, pageFlow, or with scope set to none accessed within the task flow definition, must be defined within the task flow definition file. Managed bean definitions within task flow definition files will only be visible to activities executing within the same task flow.

faces-config.xml

Allows any managed bean scope other than pageFlow scope.

The order of searching a managed bean in the application is faces-config.xml, adfc-config.xml and Task flow definition file (if exists). Hence managed bean defined in the faces-config.xml takes the precedence.

As a general rule in fusion web applications, a bean that may be used in more than one page or task flow is defined in the adbc-config.xml and a bean that is used within the task flow is defined in the task flow definition XML file.


Add a managed bean

To add a managed bean

  1. Click the adbc-config.xml file or task flow definition file.
  2. Go to Property editor -> Managed bean tab
  3. Choose the +(Add) Icon.



Difference between Managed Bean and Backing Bean

Backing bean and Managed bean are not different they are the same. Managed bean is about how the bean is created and initialized. Backing bean is about the role a particular managed bean plays.

In other way, Managed bean is a JavaBean registered in the adfc-config.xml file. These beans have properties that are bound to the values of UIComponents.

Backing bean is a special type of managed-bean consisting of properties that are UIComponents. Instead of the bean properties being bound to the UIComponent values, they are instead bound to the UIComponents themselves.


Task Flows

Bounded and Unbounded Task Flows

Unbounded
A specialized form of task flow that has a single entry point and zero or more exit points. It is configured in adfc-config.xml file.

  • It cannot declaratively specify parameters.
  • It contains default activity
  • It cannot be called by another task flow.


Unbounded task flow can be used when
  • You want to take advantage of ADF controller features not offered by bounded task flows
  • You don’t need ADF controller features that are offered when using a bounded task flow.
  • The task flow will not be called by another task flow.
  • The application has multiple points of entry.




Bounded
A set of activities, control flow rules and managed beans that interact to allow a user to complete a task. It is used to encapsulate a reusable portion of an application.

  • A bounded task flow can be called another bounded task flow or unbounded task flow.
  • The bounded task flow always specifies a default activity
  • Managed bean specified in pageFlow scope is visible only within the task flow, and isolated from rest of application.

Because of the resuability features, bounded task is mostly used in all applications.


Features of Bounded Task Flow

  1. Well-defined boundary An ADF bounded task flow consists of its own set of private control flow rules, activities and managed beans. Input and Ouput parameters are available to bounded task flow just like a function call. Data controls can be shared between task flows.
  2. Single point of entry An ADF bounded task flow has a default activity that executes before all other activities in the task flow.
  3. PageFlow memory scope Its a new scope introduced in ADF. And its lifespan is ADF bounded task flow.
  4. Reuse You can identify an entire group of activities as a single entity and reuse it in another application.
  5. Parameters and return values You can pass the parameters and get the output just like a function call.
  6. Transaction ManagementIt represents a transactional unit of work. While entering a bounded task flow you can create new transaction or join the existing one.
  7. Reentry You can choose to reenter the bounded task flow.
  8. Security Secure a bounded task flow using fusion security.