miércoles, 26 de junio de 2013

Creando Programas Concurrentes en EBS R12 (Archivo HOST)


Saludos amigos, ahora vamos a ver la forma de configurar concurrentes en EBS R12 basándonos en código alojado en el sistema operativos (archivos de script), para ello realizaremos un pequeño ejemplo en el cual copiaremos un archivo de un directorio a otro.
En este ejemplo, vamos a crear un programa concurrente de tipo host para ejecutar un script shell simple. El script se copiara un archivo cualquiera del directorio $APPLCSF/$ APPLOUT  y lo copiara a un directorio destino cualquiera el cual  se pasa como parámetro al programa concurrente a través del formulario SRS. Como estamos utilizando una instancia VISION R12, usted encontrará que hay un montón de archivos de salida en el directorio $ APPLCSF / $ APPLOUT.
El archivo lo vemos  a crear en la carpeta “$XDEMO_TOP/bin”:


Ahora ahí creamos el archivo “touch copiar_a.prog” con el siguiente comando


Verificamos que se haya creado nuestro archivo:


El contenido del archivo será el siguiente:


Ahora procedemos a cambiar los permisos de ejecución del script:




Ahora tenemos que crear un enlace simbólico con la herramienta “$FND_TOP/bin/fndcpesr


Ahora procedemos a crear nuestro ejecutable en el EBS R12, para ello nos dirigimos a “System Administrator/Program/Executable”:


Ahora procedemos a crear el programa concurrente, para ello nos dirigimos a “System Administrator/Program/Define”:



Los parámetros los configuraremos de esta forma:

Seq
Parameter
Description
Value Set
Default Value
Pront
10
Archivo
Archivo a copiar
100 Characters

Archivo a copiar
20
Directorio
Directorio destino
100 Characters
/tmp
Directorio destino



Una vez creado el ejecutable solo queda agregarlo a un grupo de solicitudes, para nos dirigimos a “System Administrator/Security/Responsability/Request” :



Ahora procederemos a ejecutar el concurrente, para ello entramos en la responsabilidad “XDEMO CUSTOMIZACIONES


Luego nos vamos a la ventana “Request” (Ver Concurrentes)


Verificamos que se ejecuto de forma normal, vamos a validar que el archivo de ha copiado


Ahora vamos a revisar el log del concurrente, para ello presionamos el botón “View Log




Podemos evidenciar que el archivo script Shell nos imprimió en el log los mensajes que debería haber salido en la consola de comandos.

Observaciones

Habrán notado que nuestro archivo ejecutable recibía 7 parámetros, los parámetros del 0 al 4 son pasados por el EBS, es decir el propio Administrador de Concurrentes es el encargado de enviarle estos parámetros los cuales son:
$ 0 El nombre del programa concurrente.
$ 1 ID de usuario de base de datos (normalmente Apps) y la contraseña
$ 2 Oracle Applications ID de usuario (el valor USER_ID en la tabla FND_USER)
$ 3 Oracle Applications usuario que envió la petición
$ 4 ID del concurrente que realiza la petición
Los valores del 5 al 6 son los que nosotros mismo definimos al momento de configurar el concurrente.
Algunos artículos que pueden seguir:

How To Run Shellscripts as Concurrent Jobs in Release 10 [ID 29086.1]

How To Setup A Custom Concurrent Host Program [ID 147455.1]

Manually relinking on Windows fails with "gnumake: *** No rule to make target" [ID 549440.1]

Bueno eso es todo por ahora espero que les haya gustado, dejen sus comentarios.



martes, 25 de junio de 2013

Creando Programas Concurrentes en EBS R12 (SQL PLUS archivos *.sql)


Saludos amigos, ahora vamos a ver la forma de configurar concurrentes en EBS R12 basándonos en código PL/SQL utilizando SQL PLUS, para ello realizaremos un pequeño ejemplo haremos el tradicional “Hola Mundo”.

Para llevar a cabo la demostración el archivo que debemos  crear será “XHOLA.sql”, el cual estará alojado el directorio sql de nuestra aplicación personalizada que creamos en el anterior artículo

CREANDO PROGRAMAS CONCURRENTES EN EBS R12 (Aplicación Personalizada)”.


Nos conectamos al putty y nos dirigimos a la dirección: ” $XDEMO_TOP/sql”


Ejecutamos el siguiente comando: touch XHOLA.sql


Verificamos que nuestro archivo este realmente creado:


El contenido de nuestro archivo deberá ser el siguiente:


Para verificar que no tenemos errores lo podremos ejecutar con el siguiente comando: sqlplus system/manager @XHOLA.sql Jose "22/06/2013"


Ahora si estamos listos para:
1.       Crear nuestro ejecutable en el EBS R12
2.       Crear un programa concurrente
3.       Adicionar nuestro programa concurrente a un grupo de solicitudes
4.       Ejecutar el concurrente

1.- Creando el ejecutable:

Para crear el ejecutable navegamos hasta “System Administrator/Program/Executable



En este ejemplo notaran que en “Execute Method” hemos colocado el nombre de nuestro archivo XHOLA.sql sin la extencion, el cual se encuentra en el directorio:
/u01/oracle/VIS/apps/apps_st/appl/xdemo/12.0.0/sql

2.- Creando el Programa concurrente

Para crear el programa concurrente nos dirigimos a: “System Administrator/Program/Define”


Agregamos los parámetros

Seq
Parameter
Description
Value Set
Default Value
Pront
10
Nombre
Primer Parametro
(Char)
100 Characters

Nombre
20
Fecha
Segundo Parametro(Date)
FND_STANDARD_
DATE
Current Date
Fecha


Con esto ya está creado nuestro ejecutable, ahora debemos agregarlo a un grupo de solicitudes.

3.- Adicionando Programa a Grupo de Solicitudes

Para ello nos dirigimos a “System Administrator/Security/Responsability/Request”



Con esto ya hemos terminado de configurar nuestro concurrente, solamente nos queda ejecutarlo.

4.- Ejecutar el concurrente

Para ejecutarlo nos vamos a la responsabilidad: “XDEMO CUSTOMIZACIONES


Nota: Observaran que en la ejecución se me presentaron errores, esto se debía a que la appl no podía encontrar la variable de entorno XDEMO_TOP, por alguna razón hay ocasiones en las que el EBS R12 cuando creamos nuestra nueva aplicación para customizaciones no carga la variable de entorno que apunta a los archivo de nuestras custom, esto se soluciona reiniciando la capa de aplicaion con los siguientes comandos

Solucion:
Reiniciamos la capa de aplicacion
cd $ADMIN_SCRIPTS_HOME
sh adstpall.sh apps/apps
sh adstrtal.sh apps/apps

Ahora bien luego podrán ejecutar el concurrente de forma correcta, tal cual como se ve en la imagen:


Hacemos click en el botón “View Output” veremos la slaida:


 Eso es todo amigos, espero sus comentarios.

Saludos.

jueves, 20 de junio de 2013

Creando Programas Concurrentes en EBS R12( Basados en Procedimiento almacenado)


Segunda Parte : Concurrentes Basados en Proc. Almacenados
Bueno mis queridos amigos esta vez tratare de explicar de la mejor manera cómo podemos crear nuestros propios concurrentes los cuales estarán basados en procedimientos almacenados en nuestra Base de Datos.
En este artículo vamos aprender a :
1.       Crear concurrentes en el EBS R12 Basados en un Proc. Almacenados
2.       Crear Grupo de Concurrentes
3.       Crear Menús en el EBS R12
4.       Crear Responsabilidades
5.       Crear Usuarios
6.       Asignar un grupo de concurrentes a una Responsabilidad
7.       Asignar la Responsabilidad a un Usuario
8.       Ejecutar un concurrente
9.       Visualizar el log generado por la ejecución de un concurrente
Vamos a crear un paquete con un solo método, para ello nos conectamos a  la B.D. con “Oracle SQL Developer”, utilizando el usuario “apps”, el encabezado de nuestro paquete quedaría de la siguiente forma:


Y el cuerpo tendrá el siguiente código PL/SQL:



Bien ahora vamos a registrar un ejecutable en el EBS R12, el cual hará referencia a nuestro método creado.
Para crear un ejecutable nos conectamos al EBS navegamos a “System Administrator/Concurrent/Program/Executable”:


Debemos observar las siguientes cosas:

Executable
Nombre del ejecutable
Short Name
Nombre corto o abreviación, una vez guardado este campo no es modificable
Application
Es la aplicación a la cual pertenecerá el ejecutable, en este caso hemos seleccionado la aplicación creada en el anterior artículo.
Description
Descripción del ejecutable
Execution Method
Metodo que utilizara el EBS para este ejcutable, en este caso es un método perteneciente a la Base de Datos, es por ello que seleccionamos PL/SQL Store Procedure
Execute File Name
Representa el nombre del archivo que buscara el EBS para ejecutarlo, en este caso es un método perteneciente a un paquete es por ello que la estructura del nombre tiene el siguiente formato:
<Nombre Paquete>.<Método>

Ahora vamos a definir el concurrente que llamara a esta ejecutable, para ellos nos vamos a “System Administrator/Concurrent/Program/Define


Hacemos click en el botón “Parameters” para asignarle los parámetros que necesita nuestro método:

Note que en el campo “Parameter” en nombre introducido es el mismo nombre del parámetro que recibe nuestro método “PRIMER_CONCURRENTE”, observamos que los parámetros de salida no son declarados en el EBS R12.


Ahora para poder utilizar nuestro concurrente creado, debemos realizar los siguientes pasos:
1.       Configurar un Menu (Configure a menú)
2.       Crear un Grupo de Concurrentes(Create a new request group)
3.       Crear una Responsabilidad(Create a new responsibility)
4.       Asignar la responsabilidad a un usuario del EBS (Assign the responsibility to a user)
5.       Ejecutar el programa concurrente (Run the concurrent program)
6.       Visualizar la respuesta(View the request)

1.- Configurar un Menu
El menú es lo que el usuario verá en el navegador cuando se les asigna una responsabilidad. Más específicamente. El menú también se le puede asignar un submenú. Si agrega un submenú todo el menú se hereda y las funciones que contiene. crearemos un menú simple que tendrá funciones estándar, con las cuales podamos ejecutar y ver nuestro programas concurrentes.
Para crear un menú en el EBS R12, nos dirigimos a “System Administrator/Application/Menu


Agregamos las siguientes opciones al menú:



La primera opción  nos servirá para ver todas las solicitudes lanzadas, y la segunda para ejecutar una nueva solicitud, estos menús son menús estándar de Oracle.
2.- Crear un Grupo de Solicitudes
Ahora vamos a crear un grupo de solicitudes al cual le asignaremos nuestro concurrente creado anteriormente.
Para ello nos dirigimos a “System Administrator/Security/Responsibilty/Request



Guardamos los datos (CTRL+S)

3.- Crear una Responsabilidad

Ahora crearemos una responsabilidad con la cual podamos ejecutar nuestros programas concurrentes y nuestras funciones(las funciones son pantallas de usuario, las cuales crearemos mas adelante).
Para crear una responsabilidad nos dirigimos a “System Administrator/Security/Responsibilty/Define


4.- Crear un usuario y asignarle la responsabilidad creada

Ahora crearemos un nuevo usuario en el EBS R12, al cual se vamos asignar la responsabilidad anteriormente creada.
Para crear el usuario debemos dirigirnos a “System Administrator/Security/User/Define


Como podrán ver a nuestro usuario le hemos asignado la responsabilidad “XDEMO CUSTOMIZACIONES

5.- Ejecutar el programa concurrente

Ahora bien para ejecutar nuestro concurrente, tenemos que conectarnos al EBS R12 con nuestro nuevo usuario:



Luego veremos que solo tenemos acceso al menú al cual nuestra responsabilidad fue relacionada:

Hacemos click sobre “Enviar Solicitud”


Escribimos el nombre de nuestra solicitud:


Asignamos el valor al parámetro “Fecha de Ejecución”


Ahora veremos el estado de ejecución de nuestro concurrente:


Vemos que se ejecutó de forma correcta, ahora para ver los detalles de la ejecución hacemos click en “View Log”


Si hacemos click en el botón “View Output”, no nos mostrara nada ya que nuestro programa no genera ningún archivo.
Con eso ya hemos terminado, hasta la próxima.

Creando Programas Concurrentes en EBS R12 ( Aplicación Personalizada)



Primera parte Conceptos y Creación de una aplicación personalizada
En Oracle EBS R2 existen varios tipos de programas concurrentes que podes crear y ejecutar, los cuales son:
  1.  Oracle Reports : Esta opción es utilizada para ejecutar reportes desarrollados utilizando Reports Builder.
  2.   PL/SQL Stored procedures : Esta opción es utilizada para ejecutar procedimientos almacenados en la Base de Datos.
  3.   Host script: Esta opción es utilizada comúnmente para ejecutar secuencias de comandos Shell, es comúnmente utilizada para realizar acciones sobre el sistema operativo tales como copiar o mover un archivo, etc.
  4.  Java stored procedures: Como su nombre lo indica se trata de archivos ejecutables escritos en el lenguaje de programación Java y almacenados en la Base de Datos, utilizar procedimientos almacenados siempre será la mejor manera de realizar operaciones dentro del motor, pero hay ciertas actividades que con Java  se las realizaría mejor, especialmente cuando se trata de interactuar con el sistema operativo o con una Base de Datos de Terceros.
  5.  SQL *Plus: Se utiliza para ejecutar una secuencia de comandos SQL *Plus o Bloque anónimo, se obtendrá el mismo resultado como si se lo estaría ejecutando en la herramienta SQL Plus de Oracle.
  6.  Perl Concurrent Program: Se utiliza para ejecutar programas escritos en CGI Perl. CGI significa Common Gateway Interface y Perl es el más común lenguaje para escribir scripts CGI. Se utiliza para scripting, programación web interfaces / desarrollo, y es ideal para el análisis.



Ubicación de los Archivos Ejecutables
Los archivos ejecutables deben estar almacenados en un directorio en específico, por nombrar algunos directorios tenemos:
1.       Un programa generado para el módulo de cuentas a Cobrar estará almacenado en: $AR_TOP/bin.
2.       Un reporte creado para el módulo de Inventario estará almacenado en  $INV_TOP/Reports/<Lenguaje>, donde <Lenguaje> será cualquier lenguaje instalado en el EBS.



Archivos de Salida y de Registro (Output and log files)
Estos archivos se generan durante la ejecución de un concurrente, en ellos podemos encontrar mensajes de salida de todo el proceso así como mensajes de registro.
El archivo de salida se genera cuando el concurrente se ha ejecutado de forma satisfactoria y así de esta forma el usuario puede observar la información procesada (no necesariamente un concurrente debe de crear un archivo de salido).
El archivo de Registro se utiliza para escribir mensajes técnicos con respecto a la ejecución del concurrente, información que no necesariamente puede ser entendida por el usuario final, la forma de consulta la ubicación de los archivos es mediante la tabla “FND_CONCURRENT_REQUESTS” mediante la siguiente consulta:

Otra forma de visualizar los archivos de registro y de salida es mediante la pantalla “Requests”



Las definiciones de los programas concurrentes podemos encontrarlas en las siguientes tablas, las cuales pertenecen al esquema appsys :
  1. FND_CONCURRENT_PROGRAMS .- Contiene información sobre el nombre y la descripción del programa concurrente, modo de ejecución, estilo de impresión y otro atributos que definen al programa.
  2. FND_EXECUTABLES.- Contiene información sobre el ejecutable del programa concurrente, incluyendo el nombre del archivo ejecutable, el cual se encuentra alojado en el servidor, el método de ejecución se asocia con el archivo ejecutable del programa concurrente para ayudar al administrador de concurrentes a identificar cómo y con qué herramienta ejecutar el archivo físico.

Existen tres formas de crear programas concurrentes en Oracle Applications las cuales son :
  1. Atreves de la interface basada en formularios “Program Executable” archivo “FNDCPMCP”, y el ejecutable se crea en la pantalla “Executable” archivo “FNDCPMPE
  2. Atreves de la utilidad “FNDLOAD” y el archivo de control “afcpprog.lct
  3.  O finalmente utilizando API’s  PL/SQL “APPLSYS.FND_PROGRAM”.

Los programas concurrentes deben estar asociados a una aplicación existente, puede ser una aplicación estándar del EBS R12 o una personalizada, en la cual alojaremos todos nuestros desarrollos.

Registrar una Aplicación Personalizada (Register a custom application)
Todas las funcionalidades del EBS R2 están aisladas según sus aplicaciones registradas (Esquemas), este es el mecanismo utilizado para separar el código personalizado de cada una de ellas,  este es el estándar que tenemos que seguir para realizar aplicaciones personalizadas dentro del EBS y separar nuestro código del código estándar del EBS, esto nos ayuda a protegernos de las actualizaciones y parches que se pudieran aplicar al EBS.
Vamos a crear un esquema según los siguientes datos:
SCHEMA Name
XDEMO
TOP Name
XDEMO_TOP
Application
XDemo Customizaciones
Data Group
Standard
Request Group
XDemo Request Group
Menu
XDEMO_MENU
Responsibility
XDEMO Customizaciones
APPL_TOP
/oracle/apps/r12/visr12/apps/apps_st/
appl
Instance Name
VISR12
Server Name
oraclevisionr12

Son varias las actividades que debemos de realizar, las cuales son:
  1. Crear una variable de entorno
  2. Ejecutar AutoConfig (adautocfg.sh)
  3. Crear una estructura de directorio de esquema CUSTOM
  4. Agregar el esquema personalizado para el medio ambiente
  5. Crear un nuevo espacio de tablas
  6. Crear un usuario de base de datos
  7. Registrar un esquema de Oracle
  8. Registrar un usuario de Oracle


1.- CREAR LA VARIABLE DE ENTORNO
Ahora vamos a crear un nuevo parámetro de entorno para nuestra aplicación personalizada. Esta es la única forma compatible de modificar los parámetros de configuración automática. No edite los archivos de contexto de forma manual, ya que serán sobrescritos la próxima vez que se ejecuta AutoConfig.
1.- Iniciamos Sesion en el sistema y navegamos hasta “System Administrator/Oracle Applications Manager/AutoConfig”, y le damos click en el link “Manage Custom Parameters



2.- Le damos click en el botón “Add”


Seleccionamos "Applications Tier" y luego hacemos click en el boton "Next"


En esta pantalla ingrese los siguientes datos:
Attribute
Value
Description
OA_VAR
c_xdemo_top
Por convenio el nombre debe estar en minúsculas y comenzar con el prefijo c_ y no debe tener espacios

Default Value
%s_at%/xdemo/12.0.0
Consulte las variables del contexto estándar
en $ APPL_TOP
Title
XDEMO_TOP
Nombre de la variable de entorno
Description
Customizacion XDemo
Descripcion para la variable de entorno TOP
OA_TYPE
Selecione  PROD_TOP
Definicion para este producto


damos click en el botón Next, en esta pantalla simplemente se valida los datos ingresados:


Verificamos que nuestra variable esta lista para ser configurada, presionamos el botón finish


Y como verán ya tenemos una variable de entorno:


2.- EJECUTAR AutoConfig
AutoConfig es una utilidad proporcionada por Oracle. Está dirigida a configurar el medio ambiente. Se puede ejecutar tanto a nivel de aplicación como a nivel de Base de Datos, se ejecuta mediante la ejecución de un script llamado adautocfg.sh. Nosotros sólo vamos a ejecutarlo a nivel de aplicación para recoger el parámetro de entorno que acabamos de crear.
1.- Abrimos el Putty y nos logeamos con un usuario del sistema operativo.
2.- Navegamos hasta “$INST_TOP/admin/scripts
3.- Ahora ejecutamos el comando AutoConfig : ./adautocfg.sh , la imagen siguiente nos muestra el resultado de la operación:



Con esta operación hemos actualizado los archivos de configuración, si quieren saber mas hacer de la configuración del entorno pueden consultar la siguiente nota “Using AutoConfig to Manage System Configurations in Oracle E-Business Suite Release 12 [ID 387859.1]”.
Para verificar que nuestra variable de entorno fue bien configurada debemos de ingresar a WinCSP y navegar hasta el directorio “/u01/oracle/VIS/apps/apps_st/appl” en este debemos observar una nueva carpeta llamada “xdemo” que es el nombre que le aviamos asignado a nuestro esquema.


3.- CREAR UNA ESTRUCTURA DE DIRECTORIO DE ESQUEMA CUSTOM
Ahora tenemos que crear la estructura de directorios de los archivos de aplicación personalizados. Los directorios se crean en el servidor de aplicaciones en el directorio $ APPL_TOP. Cada producto tiene su propia estructura de directorios con un nombre corto o acrónimo. Oracle asume que los objetos se guardan en un directorio específico. Por eso tenemos que ser específico acerca de la estructura de directorios que creamos. Vamos a iniciar sesión a nivel de aplicación y crear los directorios de las aplicaciones de usuario.
1.- Iniciamos sesión en el “PuTTY” y seteamos las variables de entorno:


2.- Ahora navegamos hacia el directorio XDEMO_TOP:
cd $XDEMO_TOP
3.-Ahora creamos el directorio de archivos con los siguientes comandos:
mkdir $XDEMO_TOP /admin
mkdir $XDEMO_TOP/admin/sql
mkdir $XDEMO_TOP/admin/odf
mkdir $XDEMO_TOP/sql
mkdir $XDEMO_TOP/bin
mkdir $XDEMO_TOP/reports
mkdir $XDEMO_TOP/reports/US
mkdir $XDEMO_TOP/reports/ESA
mkdir $XDEMO_TOP/forms
mkdir $XDEMO_TOP/forms/US
mkdir $XDEMO_TOP/forms/ESA
mkdir $XDEMO_TOP/lib
mkdir $XDEMO_TOP/install
mkdir $XDEMO_TOP/install/ch1
mkdir $XDEMO_TOP/install/ch2
mkdir $XDEMO_TOP/install/ch3
mkdir $XDEMO_TOP/install/ch4
mkdir $XDEMO_TOP/install/ch5
mkdir $XDEMO_TOP/install/ch6
verificamos que los directories se hayan creado:


4.-CREAR UN NUEVO TABLESPACE
Vamos a crear un nuevo esquema en la Base de Datos para ello nos conectamos a sqlplus con el usuarios sysadmin:


El esquema creado contendrá todos los objetos “Tablas,Vistas, etc” de nuestro esquema personalizado.
5.- CREAR UN NUEVO USUARIO EN LA B.D.
Tenemos que crear un usuario de B.D. con el cual crearemos todos los objetos en la B.D.


6.- REGISTRAR EL ESQUEMA DE ORACLE
Hay que registrar el nuevo esquema XDEMO en Oracle E-Business Suite. Tenemos que crear la aplicación para que Oracle sepa dónde buscar el sistema de archivos para los objetos personalizados. Crearemos una aplicación personalizada para que podamos aislar las personalizaciones que hacemos.
1.- Nos conectamos al EBS, navegamos a “System Administrator/Application/Register


Donde el significado de la información insertada es la siguiente:

Application
Nombre de nuestra nueva aplicación, por estándar los nombres de las nuevas aplicaciones que extiendan funcionalidad a una aplicación ya existente deberán tener el prefijo X<Nombre>
Short Name
Nombre corto o Abreviación
Basepath
Representa una variable de entorno la cual está alojada en el sistema operativo, esta variable apunta al directorio donde están alojados nuestros archivos fuentes, es donde la biblioteca de objetos de aplicación tratara de encontrar los archivos relacionados con nuestra aplicación personalizada
Description
Una descripción de nuestra nueva aplicación, no es una información necesaria

7.- REGISTRANDO EL USUARIO ORACLE
Ahora vamos a registrar el usuario Oracle. Ya hemos creado el usuario de base de datos y aquí estamos registrando ese usuario en la biblioteca de aplicaciones de Oracle. Tan sólo hay que registrar un usuario de Oracle cuando creamos una aplicación personalizada.
1.- Nos dirigimos a “System Administrator/Security/ORACLE/Register



Para finalizar debemos asignar nuestra aplicación creada a un grupo de datos, para ellos nos dirigimos a “System Administrator/Security/ORACLE/DataGroup



Ahora si ya estamos preparador para crear nuestras propias customizaciones, eso lo explicare en el próximo artículo gracias.


Nota:  Por alguna razón hay ocasiones en las que el EBS R12 cuando creamos nuestra nueva aplicación para customizaciones no carga la variable de entorno que apunta a los archivo de nuestras custom, esto se soluciona reiniciando la capa de aplicación con los siguientes comandos.

Solucion:
Reiniciamos la capa de aplicacion
cd $ADMIN_SCRIPTS_HOME
sh adstpall.sh apps/apps
sh adstrtal.sh apps/apps 

File sharing system in PHP free code (Veno File Manager v4.2.7)

  File sharing system in PHP free code (Veno File Manager v4.2.7) Download: veno-file-manager-v427 File sharing system in PHP free code ===...