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.


Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception Missing Property: [ConnectionFactory> xADataSourceName or dataSourceName]

Al momento de tratar de conectarnos a una base de datos desde un adaptador de base de datos podríamos obtener un mensaje como el siguiente:

BINDING.JCA-11622
Could not create/access the TopLink Session.
This session is used to connect to the datastore.
Caused by javax.resource.spi.InvalidPropertyException: Missing Property Exception.
Missing Property: [ConnectionFactory> xADataSourceName or dataSourceName].
You may have set a property (in _db.jca) which requires another property to be set also.
 Make sure the property is set in the interaction (activation) spec by editing its definition in _db.jca.
.
You may need to configure the connection settings in the deployment descriptor (i.e. DbAdapter.rar#META-INF/weblogic-ra.xml) and restart the server.  This exception is considered not retriable, likely due to a modelling mistake.

DBTransaction.rollback() is called.

Ese mensaje aparece cuando el adaptador de base de datos no ha tomado los cambios del pool de conexiones salientes.

Para solventar lo anterior podemos hacer 2 cosas:

1. Redesplegar el adaptador:
    -> Desde la consola de Weblogic, Despliegues.
    -> Seleccionar el DbAdapter.
    -> Presionar el botón Actualizar de la parte superior.
    -> Debemos verificar que se haya seleccionado el plan de despliegue correcto.
    -> Redesplegar.

2. En caso que el punto 1 no funcionara reiniciamos el servidor.

jueves, 2 de junio de 2016

Habilitar Full-Text Search en WCC/UCM 11g 12c

Para configurar la opción de búsqueda e indexación a través de OracleTextSearch se debe tener configurado el Servidor de Contenido con una base de Datos Oracle que soporte OracleTextSearch (desde versión 11.1.0.7 en adelante) y realizar los siguientes pasos:

1. Navegar a la ruta:  $DOMAIN_HOME/ucm/cs/config
2. Abrir el archivo config.cfg
3. En el apartado de variables adicionales agregar la siguiente entrada:

SearchIndexerEngineName=ORACLETEXTSEARCH



4. Luego se debe reiniciar el Servidor de Contenido UCM.
5. Cuando se haya reiniciado se debe recontruir el indice de búsqueda, lo cual se hará a través del "Repository Manager", para ello ingresar al Servidor de Content:

   5.1 Ingresar al tab de "Administration".
   5.2 Dar clic en "Admin Applets".
   5.3 Dar clic en el botón "Repository Manager".
   5.4 Abrir el tab "Indexer".
   5.5 Dar clic en el botón "Start" para el apartado de "Automatic Update Cycle" y "Collection Rebuild Cycle".

Una vez hecho lo anterior notaremos que ahora en la consola de WCC aparecerá en las búsquedas la opción de búsqueda a través de Full-Text:



Saludos!



!csSearchIndexerEngineNotExist,DATABASE.ORACLETEXTSEARCH

Al tratar de configurar la opción de Full-Text Search puede ser que nos topemos con el siguiente error:

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397) at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) Caused by: intradoc.data.DataException: !csSearchIndexerEngineNotExist,DATABASE.ORACLETEXTSEARCH at intradoc.shared.CommonSearchConfig.createDataException(CommonSearchConfig.java:2599) at intradoc.shared.CommonSearchConfig.setCurrentConfig(CommonSearchConfig.java:1049) at intradoc.shared.CommonSearchConfig.init(CommonSearchConfig.java:178) at intradoc.server.SearchIndexerUtils.initSearchIndexerConfig(SearchIndexerUtils.java:64) at intradoc.server.IdcSystemLoader.initSearchIndexerConfig(IdcSystemLoader.java:1406) at intradoc.server.IdcSystemLoader.loadCaches(IdcSystemLoader.java:1256) at intradoc.server.IdcServerManager.init(IdcServerManager.java:143)

El error anterior se da cuando la entrada que ingresamos al archivo config.cfg de Content está mal, pues la entrada no debe contener la palabra "DATABASE.", sino que debe ser ingresada de la siguiente manera:

SearchIndexerEngineName=ORACLETEXTSEARCH

Saludos! 



martes, 26 de abril de 2016

Java code in jsp source files is not allowed in ojsp.next mode - BPM 12c

En BPM 12c al tratar de acceder a una aplicación desplegada desde el Workspace se puede mostrar el siguiente mensaje de error:

"OracleJSP error: oracle.jsp.parse.JavaCodeException: Line # 14, oracle.jsp.parse.JspParseTagScriptlet@3eb61aa5 <br>Error: Java code in jsp source files is not allowed in ojsp.next mode."

El mensaje anterior se debe a que se encontró un scriptlet en la página a la cual se trató de acceder como parte de alguna tarea de usuario, es por ello que para quitar ese mensaje se debe hacer de la siguiente manera:


  • En el formulario del proyecto existe una página login.jsp a la cual debemos ingresar y quitar desde el código fuente la línea que contiene <% ...  %>


Nota: si tenemos más de un proyecto para los formularios de las tareas de usuario debemos hacerloa para cada uno, pues cada uno contiene una página login.jsp