Archivo

Archive for the ‘Tech – Process and Content’ Category

Oracle PCS – Reglas de formulario en las tareas humanas

En Oracle BPM es posible utilizar Oracle ADF para implementar tareas humanas, pero en Oracle Process Cloud Service solo se pueden crear formularios utilizando web forms. Crear un formulario es una tarea sencilla y nos ofrece la posibilidad de definir reglas que nos permiten conseguir requerimientos complejos.

1

Para cada uno de los elementos del formulario tenemos una serie de propiedades o eventos que podemos gestionar. Por ejemplo el evento onload del formulario, u obtener si el valor de un campo es válido, etc.

2

Para construir las reglas debemos usar JavaScript y podemos obtener los fragmentos de código, para cada uno de los eventos o propiedades, si hacemos click en el botón a la derecha de cada uno.

3

Vamos a construir un par de reglas para que podáis ver lo sencillo que es.

Leer más…

Oracle WCC “Checkout and Open” al editar documentos de Office

En Oracle WebCenter Content (WCC), antes llamado Universal Content Management (UCM), disponemos de una opción que permite editar un documento Office en línea de forma nativa.

checkoutandopen-1-http

Al seleccionar la opción Edit, un componente Activex lanza el software de Office, descarga el documento del gestor de contenidos en el equipo local (checkout and open) y, tras editarlo, al guardarlo lo sube ya modificado al gestor de contenidos (checkin).

Esta funcionalidad presenta problemas en algunas instalaciones, en la release 7.3.5.185 por ejemplo, ya sea por permisos en el equipo local o por configuración del server o por ambas condiciones.

Una solución a este problema consiste en el siguiente procedimiento, que consta de 3 fases:

1. Registrar el Activex manualmente en los equipos “cliente”

Para lo cual puede seguir el procedimiento de este enlace o el similar que describimos a continuación:

1.1. Obtener el Activex del Server

<Middleware-home>/Oracle_ECM1/.../checkoutandopen.cab     para clientes de 32 bits
<Middleware-home>/Oracle_ECM1/.../checkoutandopenx64.cab  para clientes de 64 bits       

1.2. Extraer del cab CheckoutAndOpen.dll y copiarlo al sistema: C:\Windows\System32

1.3. Registrarlo, usando una ventana de comandos en modo Administrador

> cd C:\Windows\System32
> regsvr32 CheckoutAndOpen.dll 

Leer más…

Oracle Process Cloud Service a prueba

octubre 21, 2015 Deja un comentario

Llevo un tiempo explorando las posibilidades que ofrece Oracle Process Cloud Service(PCS) y me voy convenciendo, cada vez más, de que se trata de una herramienta fiable, a la vez que sencilla, potente y muy bien adaptada al nuevo paradigma de ‘cloud computing. Se trata de una aplicación que facilita el trabajo colaborativo en la red. Su arquitectura, orientada a servicio, permite una integración funcional con el resto de aplicaciones construidas sobre la capa SaaS (Software como Servicio, una de las capas de la arquitectura Cloud Computing). PCS puede ser considerada una nueva capa de nivel superior (capa BPaaS, Business Process as a Service).

PCS_arq

PCS es una plataforma ideal para aquellas organizaciones que quieren comenzar el diseño y la automatización de sus procesos de negocio realizando una inversión inicial mínima.

El principal atractivo del software en la nube es que nos permite, desde el minuto cero, trabajar con las aplicaciones sin vernos obligados a adquirir los servidores, la infraestructura y el personal de administración que se precisan en el caso de los entornos tradicionales (on-premise).

PCS puede ser el entorno adecuado donde ejecutar todos nuestros procesos de negocio. Ciertos procesos con una complejidad muy alta, con las interfaces de usuario complejas o los procesos ya implementados en otras plataformas BPM, no serán buenos candidatos a correr dentro de PCS. Aquellos procesos que sean más sencillos o que vayan a ser creados desde cero, encajarán mejor en PCS. Si tenemos en cuenta que las buenas prácticas de modelado se fundamentan en no añadir excesiva complejidad a un único proceso y que los procesos grandes siempre pueden ser subdivididos en subprocesos más pequeños y manejables, veremos que PCS puede ser una buena opción.

Basada en el producto Oracle BPM 12c versión 12.1.X, utiliza SOAP y REST como únicos protocolos de comunicación con el resto de aplicaciones (también están disponibles unos cuantos adaptadores, los mencionaremos al final de este post). Tampoco incluye ciertas características existentes en la aplicación de la que proviene (BPM 12c). Al principio pensé que estas carencias serían un grave inconveniente a la hora de desarrollar tanto los procesos como las tareas humanas y no sería tan fácil comunicar PCS con otras aplicaciones. Pero según me voy familiarizando con sus herramientas, voy valorando más su potencial, me doy cuenta de que se puede modelar cualquier proceso sin echar en falta los extras disponibles en BPM 12c.

Vamos a echar un vistazo a las posibilidades de desarrollo de PCS, haciendo una breve comparativa con BPM 12c.

Revisemos el entorno de desarrollo, concretamente la sección denominada Business Process Composser, a la que se accede pulsando sobre DEVELOP PROCESS. Se trata de una interfaz web sencilla e intuitiva donde podemos crear los procesos, además de configurar el resto de los elementos que conforman la aplicación. Dentro de cada aplicación encontramos los distintos elementos o partes que la componen (Procesos, Formularios Web, Tipos de datos, Decisiones o Reglas de Negocio y las Referencias a los servicios web, veamos cada uno de ellos.

PCS_menu

Procesos

El diseño de procesos mediante BPMn es muy similar a como se hace con BPM 12c. El número de tareas, compuertas, mensajes y llamadas con los que nos encontramos es bastante más reducido, pero me resulta suficiente para diseñar procesos de baja o media complejidad. Seguimos pudiendo incluir llamadas a subprocesos, llamadas del tipo send and receive que hacen uso de conversaciones síncronas o asíncronas. No existen compuertas complejas, ni las basadas en eventos, que aún siendo elementos muy útiles para implementar ciertos patrones de diseño, podremos sobrevivir sin tener que usarlos.

PCS_bpm

Leer más…

JDeveloper 12.1.3 BPM Quick Start no muestra aplicaciones BPM

La mayoría de desarrolladores necesitamos tener instalados sobre el mismo equipo varios Middleware con distintas versiones de JDeveloper, y estos a veces se acumulan de forma descontrolada pudiendo generar conflictos entre versiones. Recientemente me he encontrado con un problema que puede volvernos locos intentando encontrar una solución.

BPMqs

Mi caso en concreto es sobre la instalación de JDeveloper BPM Quick Start 12.1.3 sobre un equipo donde ya tenía instalado varios JDeveloper de versiones anteriores (JDeveloper SOA Quick Start por ejemplo). Al terminar la instalación sin problemas, iniciaba JDeveloper y me encontraba con que no disponía de ninguna funcionalidad perteneciente a la extensión BPM.

El problema radica en que todo JDeveloper arranca el workspace por defecto ubicado en C:\JDeveloper\mywork, y como este ya existía por ser usado por mis anteriores instalaciones de JDeveloper, instaladas con extensiones distintas, no habilitaba la extensión BPM para poder ser usada. Haciendo imposible crear una nueva Aplicación BPM.

Para resolverlo basta con cambiar la ubicación por defecto del workspace y volver a arrancar JDeveloper.

Para cambiar la ubicación es necesario introducir la ruta que queramos en el archivo: C:\Oracle\Middleware12cBPM\jdeveloper\ide\bin\ide.boot

Justo debajo de:
ide.user.dir.var = IDE_USER_DIR

Introducir:
ide.user.dir = c:/JdevBPM/mywork

Al arrancar JDeveloper notaremos que ya tenemos disponibles las extensiones correspondientes que necesitamos.

ESADE: Oracle BPM migration from version PS3 to PS5

avanttic ESADE BPM Success Story

El 28 y 29 de abril se celebró en Barcelona un nuevo encuentro de Oracle EMEA WebCenter Partner Community Forum, focalizado en Customer Experience and Mobility mediante la combinación de Oracle WebCenter (Portal, Content, Sites), BPM y ADF.

avanttic asistió, presentando un caso de éxito con ESADE sobre el proyecto realizado hace unos meses de migración de BPM de PS3 a PS5. La organización imprimió a tamaño póster los casos de éxito presentados por los partners y los colgó en las estancias del hotel.

ESADE solicitó a avanttic actualizar su plataforma Oracle BPM, sobre nuevos servidores, para solucionar los problemas de caídas del sistema y por la necesidad de mejorar el rendimiento de la plataforma. La migración a una nueva versión de Oracle ADF también ha permitido una mejor compatibilidad con las últimas versiones de los navegadores.

The ESADE business are the students and the Academic Management is based in Oracle architecture that provides high availability, redundancy and business continuity. We stabilized the platform and now we can develop new business processes and new BPEL integrations over a robust platform.

Miguel López, CTO, TIC Departament

Lee los detalles del proyecto en el datasheet del caso de éxito (formato pdf).

avanttic fue el primer partner de España en obtener las certificaciones en Oracle ADF y en Oracle BPM, en diciembre del 2011 y en mayo del 2012, respectivamente.

Cómo recuperar el contenido de las excepciones en BPEL

octubre 11, 2013 Deja un comentario

Al contrario de lo que pasa en Oracle Service Bus, los procesos BPEL no disponen de una variable de sistema fault en la que consultar el detalle de las excepciones generadas en tiempo de ejecución. Con ello no quiero decir que no podamos conocer dichos detalles, pero nos conllevará algún paso extra.

En primer lugar, hemos de importar a nuestro proyecto la definición RuntimeFault.wsdl:

<wsdl:definitions
     name="Process"
     targetNamespace="http://xmlns.oracle.com/Process"
...
    >
    <plnk:partnerLinkType name="Process">
...
    </plnk:partnerLinkType>
    <wsdl:import namespace="http://schemas.oracle.com/bpel/extension"
                 location="oramds:/soa/shared/bpel/RuntimeFault.wsdl"/>
    <wsdl:types>
...
    </wsdl:types>
...
</wsdl:definitions>

Lo siguiente es crear una variable en nuestro proceso que pueda almacenar el contenido de la excepción y que tendrá la siguiente estructura:

RuntimeFaultMessage

Estructura del RuntimeFaultMessage

Una vez tengamos la variable creada (a la cual hemos llamado runtimeFault), es momento de asignarla a un controlador de excepciones, en el que podremos recuperar su contenido:

<faultHandlers>
  <catch faultName="bpelx:remoteFault" faultVariable="runtimeFault"
         faultMessageType="bpelx:RuntimeFaultMessage">
    <sequence>
      <assign name="RecuperarDetalle">
        <copy>
          <from>$runtimeFault.code</from>
          <to>$outputVariable.payload/ns1:Result/ns2:code</to>
        </copy>
        <copy>
          <from>$runtimeFault.summary</from>
          <to>$outputVariable.payload/ns1:Result/ns2:description</to>
        </copy>
      </assign>
    </sequence>
  </catch>
</faultHandlers>

Como decía al principio, es posible obtener el detalle de aquellas excepciones generadas en tiempo de ejecución, con el fin de facilitar nuestras investigaciones cuando recibamos los bonitos “el proceso me da error”.

Compensación en procesos BPEL (Compensation Handler)

septiembre 3, 2013 Deja un comentario

Es común encontrarse con procesos BPEL que contienen transacciones anidadas. Si el proceso falla una vez procesada alguna de estas transacciones, podemos vernos con la necesidad de compensar nuestro proceso o reaccionar al fallo.

avanttic - Compensación en procesos BPEL

Con esta finalidad, el lenguaje BPEL proporciona lo que denomina Compensation Handler(CH). Cada scope o actividad invoke de nuestro proceso puede tener un CH y cada CH está formado por una o varias actividades. Un CH, puede ser ejecutado de forma directa (especificando el nombre del scope a compensar) o indirecta mediante una actividad compensate.

La ejecución de un CH de forma explícita (o directa) puede realizarse, únicamente, desde un scope o CH de nivel directamente superior al CH que queremos llamar.

Una ventaja principal con los Error Handlers es que, en el caso de que el scope contenga iteraciones, las actividades compensatorias se ejecutarán por cada iteración en orden inverso.

En la documentación oficial (en inglés) encontraréis un ejemplo práctico del uso de esta funcionalidad: Using Compensation.

Gracias a este gestor de compensación CH, conseguimos un mayor control sobre las transacciones de nuestros procesos BPEL.