Friday, January 24, 2014

Get DDL from objects in PL-SQL

First you should find some information before try to get a DDL, this is related to the object type(Package, table, etc.) you want to find.

Use this query:

select * from all_objects where upper(object_name) = upper('swc_file_ctl_utl');


Now from the query above use the following fields "owner" and "object_type" you will need these values when you try to get its DDL.

Execute this query for obtaining the DDL:

select dbms_metadata.get_ddl(object_type => 'PACKAGE',name =>'SWC_FILE_CTL_UTL',schema => 'APPS')
 ddl from dual;

Monday, January 20, 2014

Process is not visible in BPM Workspace

A continuacion muestro un escenario donde no puedo ver un proceso en BPM para iniciarlo dentro de la consola de BPM Workspace.

Al diseƱar el proceso en el JDeveloper ya esta actualmente configurado como pueden ver.


Despues al intentar buscar el proceso en el BPM workspace no aparece!!


A pesar que podemos ver nuestro proceso en el "Enterprise Manager".


Para solucionar este problema fue muy simple, lo que hay que hacer es lo siguiente:

Solucion:


1. Primero que nada hay que revisar que el usuario este creado en el "Security Realms" en la consola de weblogic.


2. Ir a la consola del "Enterprise Manager" hay que dirigirse a la ruta: farm_nombre/Application Deployments/OracleBPMProcessRolesApp

3. Clic derecho sobre "OracleBPMProcessRolesApp" y sobre el menu nos dirigimos a: Security/Application Roles

4. Presionamos el boton donde lo indica la flecha y a continuacion se mostrara una lista en la cual identificamos nuestro rol que hemos definido en nuestro proceso "HelloWorld.Requester".

5. Seleccionamos el rol para agregar el usuario requerido.
6 Ahora nos aparecera la descripcion del rol que seleccionamos y presionamos el boton de "Add" para agregar el usuario que queremos registrar.


7. En la ventana que aparece hay que buscar el  usuario que deseamos, seleccionamos en "Type" como "User" primeramente, introducimos el usuario que queremos buscar y presinamos el boton con la flecha y por ultimo seleccionamos el usuario de la lista dando clic y presionamos el  boton "Ok".


8. Y por ultimo presionamos "Ok".


Prueba

Para probar entramos a la consola de "BPM Workspace" con el usuario que registramos en el rol de "HelloWorld.Requester" y nos dirigimos al tab de "Applications" para ver si ahora si aparece nuestro proceso de BPM.


GG HF!!

Friday, January 17, 2014

Extending custom EBO Sample - AIA 11g

Ahora voy a mostrar como extender un EBO. Por ejemplo en este ejemplo mostrare como extender el "Custom EBO" para "PayableInvoice" el cual se utiliza cuando se requiere hacer una integracion con el modulo de "Oracle AP" para la cuestion de facturas.

Primero vamos a encontrar la ruta donde se encuentra el esquema del "Custom EBO", y esta ruta se puede tomar de referencia para cualquier otro EBO que se requiera extender (Podemos usar el JDeveloper y la conexion a MDS para buscar la ruta).

/apps/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Core/Custom/EBO/PayableInvoice

El esquema sin modificar se muestra como sigue:
En este caso voy a extender dos elementos del esquema que serian los siguientes:

  • CustomPayableInvoiceEBOType
  • CustomPayableInvoiceLineType
Y agregare en cada uno algunos campos, lo cual primero necesito hacer una copia del XSD anterior y es necesario modificar la copia del archivo de manera local. En este caso pueden usar cualquier editor de archivos.



Una vez modificado el archivo hay que reemplazarlo en el archivo original que se encuentra fisicamente en nuestro servidor donde se encuentra instalado AIA, en mi caso que estoy usando un servidor de Windows, lo pondremos en su ruta correspondiente (via FTP o compartir carpeta) como se muestra en la siguiente figura:


Les recomiendo primero hacer una copia del archivo original antes de copiar el que modificaron.

Ahora que tenemos nuestro archivo listo para usar, primero hay que actualizarlo en el repositorio "MDS", para esto tenemos que correr el siguiente comando:

ant -f UpdateMetaData.xml

El archivo "UpdateMetaData.xml" se encuentra en la ruta:

E:\oracle\middleware\aia11g\Infrastructure\Install\config (tomando como referencia mi instalacion".

Probar

Ahora vamos a ver si se ha actualizado nuestro archivo en el repositorio "MDS" desde nuestro JDeveloper (Hay que hacer refresh a la conexion antes).

Para esto no abrire directamente el EBO, si no mas bien el EBM "PayableInvoiceEBM.xsd".

Ahora que lo tenemos abeirtos podemos buscar el elemento "CreatePayableInvoiceEBM" o cualquier otro:


Buscamos dentro de su estructura la referencia "Custom" donde agregamos los nuevos elementos:


Si los podemos visualizar como se muestra en la figura anterior es que todo salio exitosamente.

Nota: Si tienen problemas para visualizar los cambios o les arroja errores el update del archivo "UpdateMetaData", revisen el archivo "UpdateMetaData.xml" y verificar que tengan la referencia de la ruta donde se encuentra nuestro "Custom EBO" para que se cargue. Ej.



GL HF!!

Thursday, January 16, 2014

BPEL 11g Handle XML without a namespace

Ahora me he encontrado con un escenario en el cual recibo un XML de un sistema externo y el XML no cuenta con un namespace.

Para este tipo de escenario siempre primero genero su correspondiente XSD usando el JDeveloper.


Voy a poner de ejemplo el sig. XML:



  
    NULL
    2.8 GHz Computer
    DSC
    3658
    HBISCPU
    1
    105913
    722.18
    722.18
  
  
    NULL
    2.8 GHz Computer
    DSC
    3658
    HBISCPU
    1
    105813
    722.18
    722.18
  


Ahora voy a proceder a generar su XSD.

En JDevelper presionamos "New" y en la galeria seleccionamos "XML Schema from XML Document"




Llenamos los datos para generar el nuevo esquema:




Para esto hay que dejar en blanco el campo de "Target Namespace".

El XSD quedaria de la siguiente manera:



  
    
      
        
          
            
              
              
              
              
              
              
              
              
              
            
            
          
        
      
    
  


Ahora podemos importar nuestro XSD en BPEL para poder crear una variable y recibir el XML.