adf

Oracle OAF ADF: Como Construir una App JDeveloper R12

ADF Business Components para Oracle OAF

Vas a aprender con un ejercicio ADF completo en la Oracle EBS para hacer personalizaciones Java EE, entendiendo sobre los principales componentes: Business Components Package, Entity Object (EO), View Object (VO), Application Module (AM), Control.

Al aprender sobre los componentes de OAF vamos a conocer también los ADF Business Components, porque ADF se baso en OAF y la arquitectura es la misma.

adf

Este ejercicio es de Departamentos y Empleados, incluyo scripts:

drop_table.sql

tablas.sql

datos.sql

Cualquier duda adicional puede contactarme a [email protected]

Acerca del Autor: Jhon Robert Quintero H.

Propósito

En este tutorial se muestra cómo construir una aplicación que interactúa con una base de datos. Usted va a utilizar Oracle JDeveloper 10g Versión 10.1.3.5.0.3 y el Framework OAF para construir la aplicación, en el proceso va a trabajar con Oracle ADF Business Components.

Descargar la versión correcta de Jdeveloper en My Oracle Support

Verificamos la versión de OAF Framework instalada en nuestra EBS.

Vamos a My Oracle Support

Configuring the JDEV_USER_HOME Environment Variable

Warning: This is a requirement for JDeveloper. Do not skip this task.

Configure the JDEV_USER_HOME environment variable using Windows XP or Windows 2000:

  1. Go to your desktop and select My Computer, right-click and select Properties.
  2. On the System Properties dialog, select the Advanced tab.
  3. On the Advanced page, select the Environment Variables… button.
  4. On the Environment Variables dialog, select the New… button from the User variables for <username> box.
  5. On the New User Variable dialog, enter JDEV_USER_HOME in the Variable Name field. Set the Variable Value field to <drive>:\jdevhome\<project> where <drive> is the drive where you installed the JDeveloper OA Extension zip file and <project> is the subdirectory where your project will reside. For example: c:\jdevhome\jdev.
  6. Select OK in each of the dialogs you opened to save the new user environment variable.

Note: In order to keep projects separate using the same JDeveloper instance, you can modify the JDEV_USER_HOME environment variable before launching JDeveloper each time to point to a different location for a different project. For example, c:\jdevhome\jdevproject1 or c:\jdevhome\jdevproject2.

Warning: The variable value should not contain a leading space before the drive name. If it does, your environment will not work properly.

Obtaining a Database Connection File

Obtain the FND database connection (.dbc) file from the system administrator who installed the OA Framework database where you want to do your development. Place this file in the <JDEV_USER_HOME>\dbc_files\secure directory.

C:\jdev_10G_OAF\jdevhome\jdev\dbc_files\secure

Verificamos la ruta donde debemos descargar el archive dbc

Creating a Desktop Shortcut to JDeveloper

To facilitate launching JDeveloper, Creacion a desktop shortcut to jdevbin\jdev\bin\jdevw.exe.

Alternatively, if you are working on multiple projects, you can Creacion a separate batch file (jdev.cmd or jdev.bat) to set the JDEV_USER_HOME environment variable for each of your projects. The example below illustrates what the content of each batch file should look like:

@echo off

setlocal

set JDEV_HOME=D:\jdeveloper\1213_x5_8919491

set JDEV_USER_HOME=D:\jdevhome\<project>

start «Jdeveloper» %JDEV_HOME%\jdev\bin\jdevw.exe

endlocal

Modify the content of the batch file so that JDEV_HOME is set to the path of your JDeveloper installation and JDEV_USER_HOME is set to your local project directory and use case.

Note: It is convenient to maintain multiple batch scripts that each point to a different JDeveloper project and Creacion separate shortcuts for each of these batch scripts/projects.

Crear Workspace y Project

File> New > General> Workspace Configured for Oracle Applications

Se selecciona el archivo dbc

Creamos el Application Module (AM)

Creamos la pagina (PG)

Creamos una Region: pagina

Attribute Property
ID pagina
Region Style pageLayout
Form Property True
Auto Footer True
Window Title Departamentos
Title Departamentos
AM Definition cvj.oracle.apps.po.portal.departamentos.server.DepartAM

Creamos una Region: header

Attribute Property
ID header
Region Style header

Creamos otra Region dentro de header

Attribute Property
ID consulta
Region Style messageComponentLayout

Creamos el Item Codigo Departamento

Attribute Property
ID idDepartamentoTxt
Style Property messageTextInput
Prompt Codigo Departamento
Length 20
Maximum Length 50

Creamos el contenedor para el botón consultar

Attribute Property
ID region1
Region Style rowLayout
Horinzontal Alignment Center

Creamos el botón consultar dentro region1

Attribute Property
ID btnConsultar
Item Style submitButton
Attribute Set /oracle/apps/fnd/attributesets/Buttons/Go
Prompt Consultar

Guardar el proyecto y ejecutar la pantallar para probar como va quedando.

Agregamos la Clase Controladora

Editamos la Controladora

Agregamos esta linea en el import

import oracle.apps.fnd.framework.OAException;

Agregamos el siguiente codigo en processFormRequest

public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)

{

super.processFormRequest(pageContext, webBean);

if (pageContext.getParameter(«btnConsultar») != null)

{

String idDept = pageContext.getParameter(«idDepartamentoTxt»);

String message = «Hemos digitado, » + idDept + «!»;

throw new OAException(message, OAException.INFORMATION);

}

}

Compilar proyecto

Ejecutar y probar la pantalla

Agregamos un separator

Attribute Property
ID item1
Item Style separator

Creamos conexión a base de datos

Creacion de Entity Object Departamentos

Click derecho > New > ADF Business Components > Entity Object

Name – DepartamentosEO

Package — cvj.oracle.apps.po.portal.departamentos.server

Database Objects – DEPARTMENTS

Verificar que DepartmentId este marcado como Primary Key

Seleccionar: Accessors, Creacion Method, Validation Method and Remove Method

Creacion de Entity Object Empleados

Click derecho > New > ADF Business Components > Entity Object

Name – EmpleadosEO

Package — cvj.oracle.apps.po.portal.departamentos.server

Database Objects – EMPLOYEES

Verificar que EmployeeId este marcado como Primary Key

Seleccionar: Accessors, Creacion Method, Validation Method and Remove Method

Creamos View Object para Departamentos

Click derecho > New > ADF Business Components > View Object

Name — DepartamentosVO

Package — cvj.oracle.apps.po.portal.departamentos.server

En el paso 2 Seleccionamos DepartamentosEO

Seleccionamos todos los items

Creamos un item transitorio que le sirve para controlar la relación maestro detalle

Damos click en New

Name – detFlag

Type — Boolean

 

Marcar las siguientes propiedades:

Updatable -> Always

Selected in Query

Passivate

Queryable

En el paso 7 de 7 desmarcar Generate Java file (View Object Class: DepartamentosVOImpl)

Creamos View Object para Empleados

Click derecho > New > ADF Business Components > View Object

Name — EmpleadosVO

Package — cvj.oracle.apps.po.portal.departamentos.server

En el paso 2 Seleccionamos EmpleadosEO

Seleccionamos todos los items

En el paso 7 de 7 desmarcar Generate Java file (View Object Class: DepartamentosVOImpl)

Creamos el View Link

Click derecho > New > ADF Business Components > View Link

Name – DeptEmpVL

Package — cvj.oracle.apps.po.portal.departamentos.server

Adicionamos el View Object al Application Module

Click derecho en  DepartAM > Application Modules > Data Model >

Seleccionar DepartamentosVO, EmpleadosVO via DetpEmpVL, EmpleadosVO y pasarlos al AM

Creamos una Region para el Encabezado

Seleccionar header > New > Region

ID – encabezado

Region Style — advancedTable

View Instance — DepartamentosVO1

Detail View Attribute – detFlag

Child View Attribute — DepartmentId

View Link Instance — DeptEmpVL1

Width – 100%

Rendered – True

Text – Encabezado

Additional Text – Encabezado

Creacion Column1

Select encabezado > New > column

Select column1 > New > Item

ID – DepartmentId

Item Style – messageStyledText

View Attribute – DepartmentId

 

Creacion Column2

Select encabezado > New > column

Select column2 > New > Item

ID – DepartmentName

Item Style – messageStyledText

View Attribute – DepartmentName

Creacion una Region para el Detalle

Select encabezado > New > detail

ID – detalle

Region Style – header

 

Creacion de una Region para la tabla detalle

Select detalle > New > Region

For New region set following Properties

ID – detalleTabla

Region Style – advancedTable

View Instance — EmpleadosVO2

View Link Instance — DeptEmpVL1

Width – 100%

Rendered – True

Creacion de columas e items para detalleTabla

Creacion Column

Select detalleTabla> New > column

Select column3 > New > Item

ID – EmployeeId

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – EmployeeId

Creacion Column

Select detalleTabla > New > column

Select column4 > New > Item

ID – FirstName

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – FirstName

Creacion Column

Select detalleTabla > New > column

Select column5 > New > Item

ID – LastName

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – LastName

Creacion Column

Select detalleTabla > New > column

Select column6 > New > Item

ID – Email

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – Email

Creacion Column

Select detalleTabla > New > column

Select column7 > New > Item

ID – PhoneNumber

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – PhoneNumber

Creacion Column

Select detalleTabla > New > column

Select column8 > New > Item

ID – HireDate

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – HireDate

Creacion Column

Select detalleTabla > New > column

Select column9 > New > Item

ID – JobId

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – JobId

Creacion Column

Select detalleTabla > New > column

Select column10 > New > Item

ID – Salary

Item Style – messageStyledText

View Instance – EmpleadosVO2

View Attribute – Salary

Estructura Final de la Pagina

Modificar la Clase Controladora (CO)

import java.io.Serializable;

import cvj.oracle.apps.po.portal.departamentos.server.DepartAMImpl;

public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)

{

super.processFormRequest(pageContext, webBean);

 

if (pageContext.getParameter(«btnConsultar») != null)

{

String idDept = pageContext.getParameter(«idDepartamentoTxt»);

 

DepartAMImpl AM =

(DepartAMImpl)pageContext.getApplicationModule(webBean);

Serializable[] parameters = {idDept};

AM.invokeMethod(«consultar», parameters);

}

}

Modificar la Clase (AM)

public void consultar (String idDept)

{

DepartamentosVOImpl pvo = (DepartamentosVOImpl) getDepartamentosVO1();

pvo.consultar(idDept);

}

Modificar la Clase DepartamentosVOImpl (VO)

public void consultar(String idDept)

{

setWhereClause(«DEPARTMENT_ID = :1»);

setWhereClauseParams(null); // Always reset

setWhereClauseParam(0, idDept);

executeQuery();

}

Compilar y corregir errores de compilacion en las Clases de EO, agregando el siguiente codigo

import oracle.jbo.domain.Date;

import oracle.jbo.domain.Number;

public void setCreatedBy(Number number)

{

}

public void setCreationDate(Date date)

{

}

public void setLastUpdatedBy(Number number)

{

}

public void setLastUpdateDate(Date date)

{

}

public void setLastUpdateLogin(Number number)

{

}

 

Mas Información:

https://en.wikipedia.org/wiki/Oracle_Application_Framework

https://blogs.oracle.com/stevenchan/jdeveloper-10g-with-oa-extension-now-available

Oracle EBS: Cual es el futuro del consultor R12