martes, 25 de abril de 2017

Reports Builder 11gR2 stops working when trying to open query object

When trying to open a SQL query object inside Reports Builder 11gR2 11.1.2.2 this stops responding causing the application to exit. This is due a bug in this version.


The solution at this moment for this bug is to select the SQL Query object and then go to Tools Menu -> Report Editor.

Other option would be to use Reports Builder 12c.

jueves, 20 de abril de 2017

Unable to start JDeveloper 12c 12.2.1.2 Integrated Weblogic Server on Windows 10

I was trying to install JDeveloper 12c for BPM newest release (12.2.1.2) on Windows 10, I though it would be easy taking in count Im not the first person trying to install it on Windows 10 and because there are many articles explaining the procedure.

I found an article saying that i should add the word "Windows 10" inside javashell.py in order to be able to start Integrated Sever. You may find the article here. 

When I was looking for the variable _osTypeMap I noticed it does not exist (I think because of a change in this release), there is a variable _dosTypeMap but even when i added the string "Windows 10", it didn't work, I got the following similar error from the above article:

java.io.IOException: Cannot run program "Command": CreateProcess error=2, The system cannot find the file specified'
Error:  ADRS_DOMAIN_PASSWORD environment variable not set.

After trying different ways to start the Integrated Weblogic Server I found out a way, maybe is not the best way but i did work for me: if you delete the Default Domain and then you create a new Default Domain it will work, the Integrated Server will start.




Hope this helps!


miércoles, 19 de abril de 2017

BPM 12c: Error when trying to start JDeveloper - Could not install some modules

When trying to start JDeveloper for SOA 12c or BPM 12c you may encounter the following error:

Warning - could not install some modules:
oracle.external.timing - org.netbeans.InvalidException: Netigso:
C:\Oracle\MiddlewareBPM\Oracle_Home\jdeveloper\external\oracle.external.timing.jar: Not found bundle:oracle.external.timing oracle.jdeveloper.webservice.share - org.netbeans.InvalidException: Netigso


To fix this error and start JDeveloper do the following:

- Delete all folders and files under:
  C:\Users\{user}\AppData\Roaming\JDeveloper

After that JDeveloper should start without error.

martes, 21 de marzo de 2017

Como subir archivos de gran tamaño en Oracle BPM 12c

En una aplicación BPM es común adjuntar documentos en el proceso, ya sea que estos sean guardados en un repositorio de Contenido como Oracle UCM o en la Base de datos de metadata, se nos limita subir archivos de hasta 2 MB como máximo. 

Al tratar de subir un archivo con un tamaño mayor a 2 MB se nos muestra una advertencia similar a la siguiente:



Esta es una restricción de ADF pero es heredada en BPM ya que BPM utiliza ADF para las interfaces de usuario (si no se está usando WebForms) es por ello que aplica el siguiente cambio:

Debemos abrir el archivo web.xml que se encuentra adentro de la carpeta WEB-INF del proyecto de nuestra Interfaz Web y agregar la siguiente entrada a éste:



Con la entrada anterior lo que estamos haciendo es modificando el máximo permitido a subir por archivo, le estoy especificando en el ejemplo que permita subir hasta 120 MB ((125829120 / 1024 )/1024).

Si desplegamos y subimos nuevamente veremos que ahora si ya nos deja subir un archivo mayor a 2 MB sin ningún problema:


Nota: también aplica para 11g

jueves, 2 de febrero de 2017

Contar la totalidad de documentos almacenados en Webcenter Content / UCM

En ocasiones se requiere conocer la totalidad de documentos que se han almacenado en Webcenter Content, para obtener ese dato nos podemos basar en el esquema OCS que forma parte de los repositorios o esquemas instalados como parte de Webcenter Content.

Dentro del esquema podemos encontrar 2 tablas que nos son útiles para ese fin:

  • DOCMETA:  que contiene todos los documentos que se encuentran almacenados incluyendo las revisiones. Además nos puede ser útil ya que cuenta con los campos de metadata que hayamos definido en WCC, por lo que podemos hacer consultas basándonos en éstos.
  • REVISIONS: que contiene el detalla de todas las revisiones para los documentos que hayamos guardado. 
Mencionado lo anterior, si usamos las siguientes consultas, podemos:

Obtener la totalidad de documentos incluyendo revisiones:

SELECT COUNT(*) FROM DOCMETA;

Obtener la totalidad de documentos sin incluir revisiones:

SELECT COUNT(*) FROM REVISIONS WHERE DREVRANK = 0;

DREVRANK = 0 se utiliza para filtrar por la última revisión que se haya guardado.

Eso es todo!



jueves, 20 de octubre de 2016

Actualizar payload desde un Managed Bean en Oracle BPM 12c | Update Payload

Si por alguna razón necesitamos actualizar el payload que manejamos como parte de nuestra tarea humana, el siguiente ejemplo nos puede ayudar.

En la Tarea de Usuario que usaremos como ejemplo, asigno en el Input de la Tarea de usuario el valor "valor inicial" al campo "campo1" que es uno de los campos que posee la Tarea como forma de mostrar el valor que actualizaré:



Luego con el siguiente código que invocamos a través de uno de los botones que tenemos en la página ADF realizamos la actualización del valor que posee el campo "campo1":


Donde se puede observar como obtengo el acceso al "campo1" que se encuentra dentro del payload con la siguiente sentencia:

Node value = payload.getElementsByTagName("campo1").item(0);

Luego especificamos el nuevo valor para el campo con la siguiente sentencia:

value.setTextContent("Valor fin");

Guardamos el valor modificado de vuelta a la tarea:

myTask.setPayloadAsElement(payload);

Y por último actualizamos la tarea con el payload actualizado:

taskSvc.updateTask(wfContext,myTask);

Si ejecutamos el proceso y accedemos a la Tarea de Usuario veremos que el "campo1" tiene como valor "valor inicial" porque así lo especificamos en el Input de la tarea:


El botón "Cambiar" es el que se encarga de invocar el código que ya vimos antes y que al ser presionado actualiza el payload. Si luego presionamos el botón "Enviar" se termina con la tarea y podremos ver en el Seguimiento del proceso que efectivamente el valor del Payload para el campo "campo1" fue actualizado con el valor "valor fin" que especificamos en el código:


viernes, 9 de septiembre de 2016

Cómo definir el ancho del componente af:selectOneChoice ?

Para definir el ancho del componente af:selectOneChoice lo que tenemos que haces es definir la propiedad contentStyle:


jueves, 8 de septiembre de 2016

DCA-40002: THE WSDL DOCUMENT IS INVALID DUE TO THE FOLLOWING REASON : NULL

Al tratar de crear un Data Control en una aplicación ADF o BPM se muestra el siguiente error:

oracle.adf.model.adapter.AdapterException: DCA-40002: The WSDL document is invalid due to the following reason : null.
at oracle.adfinternal.model.adapter.webservice.WSModel.createModelFromWSDL(WSModel.java:725)
at oracle.adfinternal.model.adapter.webservice.WSModel.<init>(WSModel.java:215)
at oracle.adfinternal.model.adapter.webservice.WSDefinition.createWSModel(WSDefinition.java:1922)

Luego de probar diferentes formas de generarlo encontré que es un BUG y que aún no ha sido solucionado.

El workaround que existe por el momento es que al momento de generar el Data Control no se marque la opción "Copy WSDL locally".

La versión de JDeveloper con el problema es la 12.2.1.

martes, 23 de agosto de 2016

Análisis de procesos(Process Analytics), habilitar la recolección de métricas SOA/BPM para BAM 12c

Una solución SOA/BPM cumple un objetivo en específico del negocio, por ello debe cumplir ciertos requerimientos del negocio, como el tiempo de respuesta, acuerdos de nivel de servicio (SLA) etc.

Para lograr medir todos estos tipos de requerimientos de negocio se cuenta con diferentes indicadores de negocio o KPI que podemos utilizar y medir en SOA/BPM y posteriormente crear un Dashboard o reporte en BAM para las personas que se encargarán de estar monitoreando la solución.

Un paso fundamental es habilitar la recolección de métricas de los procesos, para ello desde el EM debemos realizar lo siguiente:

Modificar la propiedad "DisableProcessMetrics" del MBean oracle.as.soainfra.config.soa_server.AnalyticsConfig.analytics de su valor por defecto true a false:


Luego a nivel del compuesto (o composite) configurar la generación de métricas, la cual se puede configurar a nivel de BPM o BPEL:


Así luego desde BAM podremos generar un objeto de datos y comenzar a crear nuestro Dashboard o reporte.