Friday Nov 30, 2012

Introducing the ADF Desktop Integration Troubleshooting Guide


Since the addition of ADF Desktop Integration to the ADF Framework, a number of customers internal and external, have started extending their applications in use cases around integration with MS Excel. In an effor to share the knowledge collected since the product came out, we are happy to launch the ADF Desktop Integration Troubleshooting Guide, where usera can find an active collection of best practices to figuring out how to best approach issues while using ADF Desktop Integration. Be sure to bookmark this link and make sure to check it out, plenty of scenarios are covered and more will be added as we continue identifying them. 

Tuesday Nov 20, 2012

Embedding ADF UI Components into OAF regions

Having finished the 2 Webcasts on ADF integration with Oracle E-Business Suite, Sara Woodhull, Principal Product Manager on the Oracle E-Business Suite Applications Technology team and I are going to continue adding entries to the series on this topic, trying to cover as many use cases as possible. In this entry, Sara created an overview on how Oracle ADF pages can be embedded into an Oracle Application Framework region. This is a very interesting approach that will enable those of you who are exploring ADF as a technology stack to enhanced some of the Oracle E-Business Suite flows and leverage your skill on Oracle Application Framework (OAF). In upcoming entries we will start unveiling the internals needed to achieved session sharing between the regions. Stay tuned for more entries and enjoy this new post.  

Document Scope

This document only covers information that is specific to embedding an Oracle ADF page in an Oracle Application Framework–based page. It assumes knowledge of Oracle ADF and Oracle Application Framework development. It also assumes knowledge of the material in My Oracle Support Note 974949.1, “Oracle E-Business Suite SDK for Java” and My Oracle Support Note 1296491.1, "FAQ for Integration of Oracle E-Business Suite and Oracle Application Development Framework (ADF) Applications".

Prerequisite Patch

Download Patch 12726556:R12.FND.B from My Oracle Support and install it. The implementation described below requires Patch 12726556:R12.FND.B to provide the accessors for the ADF page. This patch is required in addition to the Oracle E-Business Suite SDK for Java patch described in My Oracle Support Note 974949.1.

Development Environments

You need two different JDeveloper environments: Oracle ADF and OA Framework.

Oracle ADF Development Environment

You build your Oracle ADF page using JDeveloper 11g. You should use JDeveloper 11g R1 (the latest is 11.1.1.6.0) if you need to use other products in the Oracle Fusion Middleware Stack, such as Oracle WebCenter, Oracle SOA Suite, or BI. You should use JDeveloper 11g R2 (the latest is 11.1.2.3.0) if you do not need other Oracle Fusion Middleware products. JDeveloper 11g R2 is an Oracle ADF-specific release that supports the latest Java EE standards and has various core improvements.

Oracle Application Framework Development Environment

Build your OA Framework page using a development environment corresponding to your Oracle E-Business Suite version. You must use Release 12.1.2 or later because the rich content container was introduced in Release 12.1.2. See “OA Framework - How to find the correct version of JDeveloper to use with eBusiness Suite 11i or Release 12.x” (My Oracle Support Doc ID 416708.1).

Building your Oracle ADF Page

Typically you build your ADF page using the session management feature of the Oracle E-Business Suite SDK for Java as described in My Oracle Support Note 974949.1. Also see My Oracle Support Note 1296491.1, "FAQ for Integration of Oracle E-Business Suite and Oracle Application Development Framework (ADF) Applications".

Building an ADF Page with the Hierarchy Viewer

If you are using the ADF hierarchy viewer, you should set up the structure and settings of the ADF page as follows or the hierarchy viewer may not fill the entire area it is supposed to fill (especially a problem in Firefox).

  1. Create a stretchable component as the parent component for the hierarchy viewer, such as af:panelStretchLayout (underneath the af:form component in the structure). Use af:panelStretchLayout for Oracle ADF 11.1.1.6 and earlier. For later versions of Oracle ADF, use af:panelGridLayout.

  2. Create your hierarchy viewer component inside the stretchable component.

Create Function in Oracle E-Business Suite Instance

In your Oracle E-Business Suite instance, create a function for your ADF page with the following parameters. You can use either the Functions window in the System Administrator responsibility or the Functions page in the Functional Administrator responsibility.

  1. Function

  2. Function Name

  3. Type=External ADF Function (ADFX)

  4. HTML Call=GWY.jsp?targetPage=faces/<your ADF page>

    ">You must also add your function to an Oracle E-Business Suite menu or permission set and set up function security or role-based access control (RBAC) so that the user has authorization to access the function. If you do not want the function to appear on the navigation menu, add the function without a menu prompt. See the Oracle E-Business Suite System Administrator's Guide Documentation Set for more information.

    Testing the Function from the Oracle E-Business Suite Home Page

    It’s a good idea to test launching your ADF page from the Oracle E-Business Suite Home Page. Add your function to the navigation menu for your responsibility with a prompt and try launching it. If your ADF page expects parameters from the surrounding page, those might not be available, however.

    Setting up the Oracle Application Framework Rich Container

    Once you have built your Oracle ADF 11g page, you need to embed it in your Oracle Application Framework page.

    Create Rich Content Container in your OA Framework JDeveloper environment

    In the OA Extension Structure pane for your OAF page, select the region where you want to add the rich content, and add a richContainer item to the region.

    Set the following properties on the richContainer item:

    1. id

    2. Content Type=Others (for Release 12.1.3. This property value may change in a future release.)

    3. Destination Function=[function code]

    4. Width (in pixels or percent, such as 100%)

    5. Height (in pixels)

    6. Parameters=[any parameters your Oracle ADF page is expecting to receive from the Oracle Application Framework page]

      Parameters

      In the Parameters property, specify parameters that will be passed to the embedded content as a list of comma-separated, name-value pairs. Dynamic parameters may be specified as paramName={@viewAttr}.

      Dynamic Rich Content Container Properties

      If you want your rich content container to display a different Oracle ADF page depending on other information, you would set up a different function for each different Oracle ADF page. You would then set the Destination Function and Parameters properties programmatically, instead of setting them in the Property Inspector. In the processRequest() method of your Oracle Application Framework page controller, where OAFRichContentPage is the ID of your richContainer item and the parameters are whatever parameters your ADF page expects, your code might look similar to this code fragment:

      OARichContainerBean richBean = (OARichContainerBean) webBean.findChildRecursive("OAFRichContentPage");
          if(richBean != null){
              if(isFirstCondition){
                  richBean.setFunctionName("ADF_EXAMPLE_EMBEDDED");      
              richBean.setParameters("ParamLoginPersonId="+loginPersonId
                +"&ParamPersonId="+personId+"&ParamUserId="+userId
                +"&ParamRespId="+respId+"&ParamRespApplId="+respApplId
                +"&ParamFromOA=Y"+"&ParamSecurityGroupId="+securityGroupId);
              }
          else if(isSecondCondition){
               richBean.setFunctionName("ADF_EXAMPLE_OTHER_FUNCTION");
               richBean.setParameters("ParamLoginPersonId="
                 +loginPersonId+"&ParamPersonId="+personId
                 +"&ParamUserId="+userId+"&ParamRespId="+respId
                 +"&ParamRespApplId="+respApplId
                 +"&ParamFromOA=Y"
                 +"&ParamSecurityGroupId="+securityGroupId);
                }
          } 

Friday Jun 29, 2012

Adding a Role to a Responsibility for Use with the Oracle E-Business Suite SDK for Java JAAS Implementation

This new post on the series of ADF integration with Oracle E-Business Suite, was written by Sara Woodhull, Principal Product Manager on the Oracle E-Business Suite Applications Technology team.

Based on a previous post of the series, a reader asked what to do if you have an existing responsibility assigned to lots of users, instead of the UMX role that the Oracle E-Business Suite SDK for Java JAAS Implementation requires.  It would be tedious to assign a new role directly to hundreds or thousands of users, so naturally we’d like to avoid that if possible.

Most people don’t know this, but it’s possible to assign a UMX role to a responsibility in Oracle User Management. Once you do that, users with your responsibility will all inherit your UMX role automatically. You can then proceed with using your UMX role with JAAS for ADF.

Here is how to assign a UMX role to a responsibility in Oracle E-Business Suite:

  1. In the User Management responsibility, go to the Roles & Role Inheritance page.
  2. Search for the responsibility you want.
  3. In the search results table, click the “View In Hierarchy” icon for your responsibility. Note that the codes for responsibilities start with FND_RESP, while the codes for roles start with UMX.
  4. In the Role Inheritance Hierarchy, click on the Add Node icon (green plus + ) for your responsibility.
  5. Now you will see what appears to be the same page again but it is a little different (note the text at the top telling you the role you select will be inherited…).  This time, either search or expand nodes until you find your custom UMX role.  Use the Quick Select to choose that role.
  6. You will be sent back to the first screen, where you should see a confirmation message at the top. On the same page you can verify that the custom UMX role is underneath the responsibility.  You may need to expand one or more nodes to see the UMX role under the responsibility. You might see some other roles that have been inherited as well.
  7. Now that your users have the UMX role, you can test that the UMX role is being passed through to your ADF application through the Oracle E-Business Suite SDK for Java JAAS feature.

Happy coding!

Friday May 18, 2012

In Case You Missed It ... Shorter URLs

I guess that by now, many of you have read Shay´s entry about tips and techniques to shorter the URL of your ADF application. Also, some of you have read the data visualization and ADF faces new features on JDeveloper 11.1.2.2.0. Although, if you haven´t noticed it yet, the standard URL of ADF applications in this release is much shorter out-of-the-box.

In previous releases the URL of ADF applications contains various session parameters calculated on runtime and looks like this:

http://host:port/miapp/faces/page.jspx?_afrLoop=206714698081489&Adf-Window-Id=w0&_afrWindowMode=0&_adf.ctrl-state=169xq9qndn_3&_afrRedirect=206716586215058

If you run the same application in this release and you have a modern browser, notice that the URL looks now as: 

http://host:port/miapp/faces/page.jspx?jsf?_adf.ctrl-state=1a2s9a55x7_3

Why? Starting in this release the framework uses HTML5 History APIs by default when the application is displayed on modern browsers to store these parameters. Older browsers like IE8 will not have the internal parameters removed given that it doesn´t support this functionality.

Wednesday May 02, 2012

Debugging ADF Security in JDeveloper 11g

A quick post that can be useful when using ADF security in your application and you use external security providers like Oracle Access Manager, third party LDAP servers or even the Oracle E-Business Suite as shown in a previous post.

Many of you how are ADF developer might already now this first tip. Nonetheless, there is always the chance that it can help someone out there; the following command will enable debugging output to go directly into the server console within JDeveloper, it can be used for any ADF application: In your ViewController project properties, under run/debug/profile options edit the existing deployment profile –> inside Lunch Setting –> under Java Options add

-Djps.auth.debug=true -Djps.auth.debug.verbose=true

image

The second tip, is associated in particular with debugging security, it will provide information on user credentials and roles every time you interact with the different UI elements from your application: Under your <DOMAIN_HOME>\bin\ open the file setDomainEnv.cmd (sh) –> then add the following line:

set JAVA_OPTIONS=%JAVA_OPTIONS% -Djps.auth.debug=true -Djps.auth.debug.verbose=true

securityDebugging

The above output is what you should obtain from an ADF application connecting to Oracle E-Business Suite.

Thursday Mar 01, 2012

ADF and Oracle E-Business Suite Integration Series: Displaying Read-Only EBS data on ADF

It’s been a while since my last post, but it doesn’t mean that projects and new discoveries were not happening…let’s just say that blogging was slow, I hope to re-take it into my daily routine. Now let’s get in business!

One of the areas that I’ve been working for the past few months is exploring the various approaches in which E-Business Suite customers can start using ADF for implementing requirements like mobile interfaces, reporting, security, etc.  Through a series of entries, I’m going to cover these scenarios and hopefully get your feedback (YES, you the reader), on what additional use cases you would like to see covered in the future.

In this first article we are going to start from the basics, describing a simple, but yet very common use case: how can you display EBS data the Web 2.0 way using the ADF Faces Rich client components.  The use case here would be for example if you are looking to create report that uses data visualization and a nicer look and feel to present the data.

Disclaimer: In the following sample I’m using the Oracle E-Business Suite database Vision Demo which is available from the EBS installation media.

Part 1 – Accessing the Data

Oracle E-Business Suite provides its own security implementation and various ways to access the business data through APIs and interfaces that leverage its security model. These are the preferred ways to access EBS data, and we will explore some of them on future entries.

For this use case, we are going to access the database directly using the APPS user which has access to the entire database, which is one of the reasons why you should only access the EBS as read-only. Modifying the data directly could corrupt the E-Business Suite data information and it is strongly discouraged.

image

After I establish my connection to the database, I create a read-only view object that is based on a query to the database and I expose this data to the UI. Also within the view, I create a find by clause, based on a bind variable, to display the data filtering capabilities of ADF.

I can test my business model by executing the application module.

image

Part 2 – Creating the UI

Once I’ve tested my business services, I can create ADF UIs to display the data in a browser. For example, you can use the data visualization graphs to create interactive dashboards/reports, maps to display geographic data.  You can even create mobile-enable pages that support multi-gesture actions for devices such as the iPad.

image

You can download the sample application from here. I leave you with a video that shows you step-by-step how to implement the above application.

Oracle ADF - E -Business Suite Integration - Database Access

Monday Apr 06, 2009

JDeveloper and ADF on Twitter

[Read More]

Tuesday Mar 03, 2009

Comparing RIA Frameworks

[Read More]
About

me
A blog that explores features, tips and tricks of ADF and JDeveloper by Juan Camilo Ruiz, Product Manager on the ADF and JDeveloper team
Follow me:
Search

Archives
« May 2015
SunMonTueWedThuFriSat
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
      
Today