<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://dosideas.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mganuza</id>
		<title>Dos Ideas. - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://dosideas.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mganuza"/>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/Especial:Contribuciones/Mganuza"/>
		<updated>2026-05-12T09:41:26Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_08.jpg&amp;diff=6735</id>
		<title>Archivo:Consola 08.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_08.jpg&amp;diff=6735"/>
				<updated>2012-10-04T20:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_07.jpg&amp;diff=6734</id>
		<title>Archivo:Consola 07.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_07.jpg&amp;diff=6734"/>
				<updated>2012-10-04T20:00:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_06.jpg&amp;diff=6733</id>
		<title>Archivo:Consola 06.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_06.jpg&amp;diff=6733"/>
				<updated>2012-10-04T20:00:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_05.jpg&amp;diff=6732</id>
		<title>Archivo:Consola 05.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_05.jpg&amp;diff=6732"/>
				<updated>2012-10-04T19:58:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6731</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6731"/>
				<updated>2012-10-04T19:58:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se chequean las siguientes opciones por defecto ante cada publicación de un proyecto, ya sea nuevo o existente.&lt;br /&gt;
&lt;br /&gt;
Smart Publish&lt;br /&gt;
*Cuando se selecciona esta opción, los datos definidos en el proyecto se importarán al directorio (incluyendo unidades organizativas, roles, reglas de calendario, reglas de vacaciones, puntos finales del servicio, variables y vistas). La asignación requerida de roles, puntos finales de servicio y variables se resolverá automáticamente.&lt;br /&gt;
&lt;br /&gt;
Mantener los archivos que ya se han generado&lt;br /&gt;
*Si selecciona esta opción, los archivos java generados durante la publicación no se eliminarán del directorio crear del proyecto. Esta opción es útil durante la depuración.&lt;br /&gt;
&lt;br /&gt;
Implantar procesos después de publicarlos&lt;br /&gt;
*Podrá configurar la ubicación de la implantación de cada proceso para este proyecto. A continuación puede implantar los procesos.&lt;br /&gt;
&lt;br /&gt;
Importar las presentaciones y vistas personalizadas del proyecto después de la implantación.&lt;br /&gt;
*Las presentaciones y vistas personalizadas se importarán al servicio de directorio usando la asignación de función y variable definida en el siguiente paso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de seleccionar el archivo, y con las opciones tildadas, presionamos en aceptar, para continuar con la publicación. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos va a mostrar una consola con todos los datos del proyecto que va a publicar.&lt;br /&gt;
*Procesos&lt;br /&gt;
*Roles&lt;br /&gt;
*Variables&lt;br /&gt;
*Punto Final de Servicio&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de continuar con la publicación del proyecto debemos chequear que todos los valores importados estén correctos.&lt;br /&gt;
*'''Verificar que los procesos sean compatibles, en caso contrario si los numeros mayor o menor de la versiona cambia, se estará publicando una nueva versión la cual solo aplicará para las instancias nuevas.'''&lt;br /&gt;
*Verificar que todos los Roles se encuentren mapeados, en caso contrario mapearlos.&lt;br /&gt;
*Verificar que todas las Variables se encuentren mapeadas, en caso contrario mapearlas.&lt;br /&gt;
*Verificar que todos los Puntos Finales de Servicio se encuentren mapeados, en caso contrario mapearlos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez chequeados estos puntos hacemos click en el botón '''Publicar''' para continuar con el proceso.&lt;br /&gt;
&lt;br /&gt;
Dependiendo de cada empresa pueden existir un '''Engine''' o varios, sobre los cuales se publicarán las aplicaciones.&lt;br /&gt;
En el caso de que exista un solo '''Engine''' la aplicación se asignará directamente a este.&lt;br /&gt;
Si existiera mas de un '''Engine''' se debe seleccionar el Engine sobre el cual se quiere publicar una aplicación, sobre este van a correr las instancias de los procesos de la aplicación que publiquemos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_05.jpg]]&lt;br /&gt;
&lt;br /&gt;
Una vez seleccionado el '''Engine''' donde se va a publicar la aplicación, la consola nos informa nuevamente los datos sobre la selección que hicimos y debemos aceptar para finalizar con la publicación.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_06.jpg]]&lt;br /&gt;
&lt;br /&gt;
Si todo sale bien la consola nos muestra un mensaje con el OK de la publicación.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_07.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para ver nuestro proyecto publicado debemos hacer click en la opción de menú proyecto.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_08.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar la aplicación publicada solo resta dar de alta los usuarios y asignarle los roles.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6730</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6730"/>
				<updated>2012-10-04T19:50:03Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se chequean las siguientes opciones por defecto ante cada publicación de un proyecto, ya sea nuevo o existente.&lt;br /&gt;
&lt;br /&gt;
Smart Publish&lt;br /&gt;
*Cuando se selecciona esta opción, los datos definidos en el proyecto se importarán al directorio (incluyendo unidades organizativas, roles, reglas de calendario, reglas de vacaciones, puntos finales del servicio, variables y vistas). La asignación requerida de roles, puntos finales de servicio y variables se resolverá automáticamente.&lt;br /&gt;
&lt;br /&gt;
Mantener los archivos que ya se han generado&lt;br /&gt;
*Si selecciona esta opción, los archivos java generados durante la publicación no se eliminarán del directorio crear del proyecto. Esta opción es útil durante la depuración.&lt;br /&gt;
&lt;br /&gt;
Implantar procesos después de publicarlos&lt;br /&gt;
*Podrá configurar la ubicación de la implantación de cada proceso para este proyecto. A continuación puede implantar los procesos.&lt;br /&gt;
&lt;br /&gt;
Importar las presentaciones y vistas personalizadas del proyecto después de la implantación.&lt;br /&gt;
*Las presentaciones y vistas personalizadas se importarán al servicio de directorio usando la asignación de función y variable definida en el siguiente paso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de seleccionar el archivo, y con las opciones tildadas, presionamos en aceptar, para continuar con la publicación. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos va a mostrar una consola con todos los datos del proyecto que va a publicar.&lt;br /&gt;
*Procesos&lt;br /&gt;
*Roles&lt;br /&gt;
*Variables&lt;br /&gt;
*Punto Final de Servicio&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de continuar con la publicación del proyecto debemos chequear que todos los valores importados estén correctos.&lt;br /&gt;
*'''Verificar que los procesos sean compatibles, en caso contrario si los numeros mayor o menor de la versiona cambia, se estará publicando una nueva versión la cual solo aplicará para las instancias nuevas.'''&lt;br /&gt;
*Verificar que todos los Roles se encuentren mapeados, en caso contrario mapearlos.&lt;br /&gt;
*Verificar que todas las Variables se encuentren mapeadas, en caso contrario mapearlas.&lt;br /&gt;
*Verificar que todos los Puntos Finales de Servicio se encuentren mapeados, en caso contrario mapearlos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez chequeados estos puntos hacemos click en el botón '''Publicar''' para continuar con el proceso.&lt;br /&gt;
&lt;br /&gt;
Dependiendo de cada empresa pueden existir un '''Engine''' o varios, sobre los cuales se montarán las aplicaciones.&lt;br /&gt;
En el caso de que exista un solo '''Engine''' la aplicación se asignará directamente a este.&lt;br /&gt;
Si existiera mas de un '''Engine''' se debe seleccionar el Engine sobre el cual se quiere publicar una aplicación, sobre este van a correr las instancias de los procesos de la aplicación que publiquemos.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_04.jpg&amp;diff=6729</id>
		<title>Archivo:Consola 04.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_04.jpg&amp;diff=6729"/>
				<updated>2012-10-04T19:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6728</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6728"/>
				<updated>2012-10-04T19:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se chequean las siguientes opciones por defecto ante cada publicación de un proyecto, ya sea nuevo o existente.&lt;br /&gt;
&lt;br /&gt;
Smart Publish&lt;br /&gt;
*Cuando se selecciona esta opción, los datos definidos en el proyecto se importarán al directorio (incluyendo unidades organizativas, roles, reglas de calendario, reglas de vacaciones, puntos finales del servicio, variables y vistas). La asignación requerida de roles, puntos finales de servicio y variables se resolverá automáticamente.&lt;br /&gt;
&lt;br /&gt;
Mantener los archivos que ya se han generado&lt;br /&gt;
*Si selecciona esta opción, los archivos java generados durante la publicación no se eliminarán del directorio crear del proyecto. Esta opción es útil durante la depuración.&lt;br /&gt;
&lt;br /&gt;
Implantar procesos después de publicarlos&lt;br /&gt;
*Podrá configurar la ubicación de la implantación de cada proceso para este proyecto. A continuación puede implantar los procesos.&lt;br /&gt;
&lt;br /&gt;
Importar las presentaciones y vistas personalizadas del proyecto después de la implantación.&lt;br /&gt;
*Las presentaciones y vistas personalizadas se importarán al servicio de directorio usando la asignación de función y variable definida en el siguiente paso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de seleccionar el archivo, y con las opciones tildadas, presionamos en aceptar, para continuar con la publicación. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos va a mostrar una consola con todos los datos del proyecto que va a publicar.&lt;br /&gt;
*Procesos&lt;br /&gt;
*Roles&lt;br /&gt;
*Variables&lt;br /&gt;
*Punto Final de Servicio&lt;br /&gt;
&lt;br /&gt;
Antes de continuar con la publicación del proyecto debemos chequear que todos los valores importados estén correctos.&lt;br /&gt;
*Verificar que los procesos sean compatibles, en caso contrario si los numeros mayor o menor de la versiona cambia, se estará publicando una nueva versión la cual solo aplicará para las instancias nuevas.&lt;br /&gt;
*Verificar que todos los Roles se encuentren mapeados, en caso contrario mapearlos.&lt;br /&gt;
*Verificar que todas las Variables se encuentren mapeadas, en caso contrario mapearlas.&lt;br /&gt;
*Verificar que todos los Puntos Finales de Servicio se encuentren mapeados, en caso contrario mapearlos.&lt;br /&gt;
para continuar debemos clickear en el botón Publicar.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_02.jpg&amp;diff=6727</id>
		<title>Archivo:Consola 02.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_02.jpg&amp;diff=6727"/>
				<updated>2012-10-04T19:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: subida una nueva versión de «Archivo:Consola 02.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_01.jpg&amp;diff=6726</id>
		<title>Archivo:Consola 01.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_01.jpg&amp;diff=6726"/>
				<updated>2012-10-04T19:22:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: subida una nueva versión de «Archivo:Consola 01.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Consola BPM Fuego 5.7 Enterprise Standalone&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6725</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6725"/>
				<updated>2012-10-04T19:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se chequean las siguientes opciones por defecto ante cada publicación de un proyecto, ya sea nuevo o existente.&lt;br /&gt;
&lt;br /&gt;
Smart Publish&lt;br /&gt;
*Cuando se selecciona esta opción, los datos definidos en el proyecto se importarán al directorio (incluyendo unidades organizativas, roles, reglas de calendario, reglas de vacaciones, puntos finales del servicio, variables y vistas). La asignación requerida de roles, puntos finales de servicio y variables se resolverá automáticamente.&lt;br /&gt;
&lt;br /&gt;
Mantener los archivos que ya se han generado&lt;br /&gt;
*Si selecciona esta opción, los archivos java generados durante la publicación no se eliminarán del directorio crear del proyecto. Esta opción es útil durante la depuración.&lt;br /&gt;
&lt;br /&gt;
Implantar procesos después de publicarlos&lt;br /&gt;
*Podrá configurar la ubicación de la implantación de cada proceso para este proyecto. A continuación puede implantar los procesos.&lt;br /&gt;
&lt;br /&gt;
Importar las presentaciones y vistas personalizadas del proyecto después de la implantación.&lt;br /&gt;
*Las presentaciones y vistas personalizadas se importarán al servicio de directorio usando la asignación de función y variable definida en el siguiente paso.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6724</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6724"/>
				<updated>2012-10-04T19:10:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se chequean las siguientes opciones por defecto ante cada publicación de un proyecto, ya sea nuevo o existente.&lt;br /&gt;
*Smart Publish&lt;br /&gt;
**Cuando se selecciona esta opción, los datos definidos en el proyecto se importarán al directorio (incluyendo unidades organizativas, roles, reglas de calendario, reglas de vacaciones, puntos finales del servicio, variables y vistas). La asignación requerida de roles, puntos finales de servicio y variables se resolverá automáticamente.&lt;br /&gt;
*Mantener los archivos que ya se han generado&lt;br /&gt;
**Si selecciona esta opción, los archivos java generados durante la publicación no se eliminarán del directorio crear del proyecto. Esta opción es útil durante la depuración.&lt;br /&gt;
*Implantar procesos después de publicarlos&lt;br /&gt;
**Podrá configurar la ubicación de la implantación de cada proceso para este proyecto. A continuación puede implantar los procesos.&lt;br /&gt;
Importar las presentaciones y vistas personalizadas del proyecto después de la implantación.&lt;br /&gt;
*Las presentaciones y vistas personalizadas se importarán al servicio de directorio usando la asignación de función y variable definida en el siguiente paso.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6723</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6723"/>
				<updated>2012-10-04T19:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;br /&gt;
&lt;br /&gt;
Se chequean las siguientes opciones por defecto ante cada publicación de un proyecto, ya sea nuevo o existente.&lt;br /&gt;
Smart Publish&lt;br /&gt;
*Cuando se selecciona esta opción, los datos definidos en el proyecto se importarán al directorio (incluyendo unidades organizativas, roles, reglas de calendario, reglas de vacaciones, puntos finales del servicio, variables y vistas). La asignación requerida de roles, puntos finales de servicio y variables se resolverá automáticamente.&lt;br /&gt;
Mantener los archivos que ya se han generado&lt;br /&gt;
*Si selecciona esta opción, los archivos java generados durante la publicación no se eliminarán del directorio crear del proyecto. Esta opción es útil durante la depuración.&lt;br /&gt;
Implantar procesos después de publicarlos&lt;br /&gt;
*Podrá configurar la ubicación de la implantación de cada proceso para este proyecto. A continuación puede implantar los procesos.&lt;br /&gt;
Importar las presentaciones y vistas personalizadas del proyecto después de la implantación.&lt;br /&gt;
*Las presentaciones y vistas personalizadas se importarán al servicio de directorio usando la asignación de función y variable definida en el siguiente paso.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_03.jpg&amp;diff=6722</id>
		<title>Archivo:Consola 03.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_03.jpg&amp;diff=6722"/>
				<updated>2012-10-04T19:08:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: subida una nueva versión de «Archivo:Consola 03.jpg»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_03.jpg&amp;diff=6721</id>
		<title>Archivo:Consola 03.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_03.jpg&amp;diff=6721"/>
				<updated>2012-10-04T19:06:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_02.jpg&amp;diff=6720</id>
		<title>Archivo:Consola 02.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_02.jpg&amp;diff=6720"/>
				<updated>2012-10-04T19:06:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6719</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6719"/>
				<updated>2012-10-04T19:06:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
&lt;br /&gt;
Una vez dentro de la consola accedemos al menú de Proyectos donde veremos los proyectos existentes&lt;br /&gt;
*Si es un proyecto nuevo se hará una publicación del mismo.&lt;br /&gt;
*Si es un Proyecto existente se republicará el proyecto sobre el Engine al que pertenece.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para publicar un proyecto nuevo debemos clickear en la opción Publicar.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
La consola nos muestra la pantalla para definir la aplicación a publicar.&lt;br /&gt;
&lt;br /&gt;
En este caso vamos a publicar a partir de un Export del proyecto. &lt;br /&gt;
El Export contiene todo el proyecto comprimido, el mismo una vez publicado se encuentra expandido en el directorio del Engine en que se publico.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:consola_03.jpg]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Archivo:Consola_01.jpg&amp;diff=6718</id>
		<title>Archivo:Consola 01.jpg</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Archivo:Consola_01.jpg&amp;diff=6718"/>
				<updated>2012-10-04T17:43:20Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: Consola BPM Fuego 5.7 Enterprise Standalone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Consola BPM Fuego 5.7 Enterprise Standalone&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6717</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6717"/>
				<updated>2012-10-04T17:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
Una vez dentro de la consola&lt;br /&gt;
[[Archivo:consola_01.jpg]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6716</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6716"/>
				<updated>2012-10-04T17:41:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployar un proyecto desde Consola */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
Una vez dentro de la consola&lt;br /&gt;
[[Archivo:consola01.jpg]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6715</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6715"/>
				<updated>2012-10-04T17:40:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
*Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
*Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
*La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;br /&gt;
&lt;br /&gt;
=== Deployar un proyecto desde Consola ===&lt;br /&gt;
Para publicar un Proyecto se debe ingresar como primer paso a la consola web del Enterprise. \\hostname:8585/webconsole&lt;br /&gt;
Una vez dentro de la consola&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6714</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6714"/>
				<updated>2012-10-04T16:27:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Deployando Proyectos en BPM Fuego 5.7 Enterprise Standalone ==&lt;br /&gt;
BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;br /&gt;
La Publicación se puede anular, desaconsejar cuando no vaya a ser usado.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6713</id>
		<title>Deploy de proyectos BPM Fuego 5.7 desde Consola</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=Deploy_de_proyectos_BPM_Fuego_5.7_desde_Consola&amp;diff=6713"/>
				<updated>2012-10-04T16:20:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: Página creada con 'BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.  Los proyectos se pueden publicar desde un archivo de proyecto exporta…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BPM Fuego Enterprise permite desde la consola web publicar los proyectos que generamos con nuestro Studio.&lt;br /&gt;
&lt;br /&gt;
Los proyectos se pueden publicar desde un archivo de proyecto exportado, desde un archivo de proyecto que esté en el mismo ordenador que el Engine de ejecución de proceso o desde un archivo de proyecto almacenado en un sistema de control de la versión.&lt;br /&gt;
Los objetos de un proyecto - como roles, variables, reglas de calendario y reglas de vacaciones- se pueden importar automáticamente durante la publicación del proyecto.&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=BEA_Aqualogic_BPM_5.7_(Fuego)&amp;diff=6712</id>
		<title>BEA Aqualogic BPM 5.7 (Fuego)</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=BEA_Aqualogic_BPM_5.7_(Fuego)&amp;diff=6712"/>
				<updated>2012-10-04T16:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Ver también */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Comunicando con Base de Datos con PBL (Process Business Language)===&lt;br /&gt;
&lt;br /&gt;
Para ejecutar comandos SQL en Aqualogic BPM 5.7 hay que seguir los siguientes pasos: &lt;br /&gt;
&lt;br /&gt;
====Primer paso====&lt;br /&gt;
&lt;br /&gt;
Se debe crear nuevo &amp;quot;External Resource&amp;quot;, haciendo click derecho en el directorio del proyecto &amp;quot;External Resources&amp;quot;, del tipo &amp;quot;SQL Database&amp;quot;. Los campos se deben completar con la información de la base de datos que queremos consultar y con un nombre significativo.&lt;br /&gt;
&lt;br /&gt;
====Segundo paso====&lt;br /&gt;
 &lt;br /&gt;
Se debe crear un nuevo &amp;quot;BPM Object&amp;quot;, haciendo click derecho sobre el modulo deseado en el directorio de &amp;quot;Catalog&amp;quot;, y luego crear un método en nuestro objeto, haciendo click derecho sobre el objeto y seleccionando la opción &amp;quot;New Method&amp;quot;. Ahora se debe editar el nuevo método, expandiendo el objeto bpm y haciendo doble click sobre el nombre del método creado. Ahora podemos editarlo e incluir el código necesario para comunicarnos con la BD a través de una clase propia de Fuego, un ejemplo de implementación puede ser el siguiente: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
String queryAEjecutar =&amp;quot;SELECT campo1, campo2, campo3 FROM nombreTabla WHERE nombreColumna in (?,?)&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
String nombreDeLaBDCreada = &amp;quot;NombreBD&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
String[] arrayDeParametros = {&amp;quot;valor1&amp;quot;, &amp;quot;valor2&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Iterator &amp;lt;Any[Any]&amp;gt; iterator = DynamicSQL.executeQuery(sentence : queryAEjecutar, implname : nombreDeLaBDCreada, inParameters : arrayDeParametros);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, el resultado de realizar la consulta va a ser un iterador, que luego puede ser recorrido con un &amp;quot;foreach&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
foreach (e in iterator) {&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;campo1: &amp;quot;+e[&amp;quot;campo1&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;campo2: &amp;quot;+e[&amp;quot;campo2&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;campo3: &amp;quot;+e[&amp;quot;campo3&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;nombreColumna: &amp;quot;+e[&amp;quot;nombreColumna&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Versionando con CVS ===&lt;br /&gt;
El producto Aqualogic BPM 5.7 incluye un cliente de CVS que permite agregar, remover, actualizar en un repositorio CVS.&lt;br /&gt;
&lt;br /&gt;
==== Configurar el cliente CVS ====&lt;br /&gt;
* Levantar el Studio BPM.&lt;br /&gt;
* File -&amp;gt; Preference -&amp;gt;Default Version Control&lt;br /&gt;
** Version Control Manger: CVS&lt;br /&gt;
** Host: host del servidor CVS&lt;br /&gt;
** User Name: usuario del CVS&lt;br /&gt;
** User Password: password del usuario CVS&lt;br /&gt;
** path: ruta dentro del repositorio donde se guardará el proyecto.&lt;br /&gt;
&lt;br /&gt;
==== Subir el proyecto al CVS ====&lt;br /&gt;
* Levantar el Studio BPM.&lt;br /&gt;
* Abrir el proyecto a versionar.&lt;br /&gt;
* File -&amp;gt; Project Preference -&amp;gt; Project Version Control.&lt;br /&gt;
** Version Control Manager: CVS (nos carga la información ingresada en el punto anterior).&lt;br /&gt;
* File -&amp;gt; VCS -&amp;gt; Store project in repository&lt;br /&gt;
** Path: directorio en el que se creará el proyecto en el repositorio.&lt;br /&gt;
** Si es la primera vez que se sube un proyecto de Aqualogic BPM, pedirá que se ingrese la ruta del directorio donde se creará el &amp;quot;common catalog&amp;quot;&lt;br /&gt;
*** Common catalog: Es un catalogo de componente, el cual puede ser compartido por otros proyectos de Aqualogic BPM.&lt;br /&gt;
En el repositorio quedarán creados 2 directorios, el del proyecto y el del common catalog, ademas se crearán 2 alias en el CVS que apuntan al proyecto y al common catalog.&lt;br /&gt;
&lt;br /&gt;
==== Obtener el proyecto del CVS ====&lt;br /&gt;
* Levantar el Studio BPM.&lt;br /&gt;
* File -&amp;gt; Project Preference -&amp;gt; Project Version Control.&lt;br /&gt;
* File -&amp;gt; Import -&amp;gt; Project -&amp;gt; from Repository.&lt;br /&gt;
** Version Control Manager: CVS&lt;br /&gt;
** En la siguiente pantalla, seleccionar el proyecto del repositorio.&lt;br /&gt;
&lt;br /&gt;
==== Trabajar con proyectos versionados ====&lt;br /&gt;
Aqualogic BPM 5.7, posee una política restrictiva de edición para los proyecto versionados.&lt;br /&gt;
La política, consiste en que todo el proyecto se encuentra en modo lectura y solo un usuario puede editar un determinado archivo versionado (Ej.: un proceso).&lt;br /&gt;
===== Editar un procesos =====&lt;br /&gt;
* Seleccionar el proceso a editar.&lt;br /&gt;
* Menú contextual -&amp;gt; VCS -&amp;gt; edit.&lt;br /&gt;
Esto habilita al usuario a modificar el proceso. En caso de que exitiera otro usuario modificando el proceso nos aparecerá un mensaje de error.&lt;br /&gt;
&lt;br /&gt;
===== Grabar los cambios realizados en un proceso =====&lt;br /&gt;
* Seleccionar el proceso que se esta editando.&lt;br /&gt;
* Menú contextual -&amp;gt; VCS -&amp;gt; commit.&lt;br /&gt;
Este paso es importante, debido a que si se libera la edición del proceso sin realizar el commit se perderán los cambios.&lt;br /&gt;
&lt;br /&gt;
===== Liberar la edición del proceso =====&lt;br /&gt;
* Seleccionar el proceso que se esta editando.&lt;br /&gt;
* Menú contextual -&amp;gt; VCS -&amp;gt; unedit.&lt;br /&gt;
&lt;br /&gt;
===Pasaje de Parametros===&lt;br /&gt;
&lt;br /&gt;
Para pasar parámetros al proceso desde una actividad de creación (aquellas que dan inicio al proceso) que tenga asociada un ScreenFlow, hay que seguir los siguientes pasos.&lt;br /&gt;
&lt;br /&gt;
El primer paso es decirle al proceso que va a recibir parametros de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
* Doble click en la tarea &amp;quot;begin&amp;quot; y luego en &amp;quot;Argument Mapping&amp;quot;&lt;br /&gt;
[[Archivo:Imagen 1.jpg]]&lt;br /&gt;
* Click en el botón que parece una flecha violeta hacia abajo y ahí agregamos el nombre del parametro que va a recibir. Es recomendable utilizar nombres descriptivos ya que sino se puede volver bastante confuso.&lt;br /&gt;
[[Archivo:Imagen 2.jpg]]&lt;br /&gt;
* Ahora lo único que falta es mapear el parámetro a una variable del proceso (puede ser creada en la misma pantalla haciendo click sobre el botón que está al lado del de crear parametros)&lt;br /&gt;
[[Archivo:Imagen 3.jpg]]&lt;br /&gt;
&lt;br /&gt;
El segundo paso es realizar un proceso similar al primer paso, con la diferencia que debe hacerce en la tarea &amp;quot;end&amp;quot; del ScreenFlow asociado a la actividad de creación.&lt;br /&gt;
&lt;br /&gt;
El tercer paso es mapear las salidas del ScreenFlow con las Entradas del proceso de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
* Doble click en la actividad que tiene asociada el ScreenFlow, luego en &amp;quot;Argument Mapping&amp;quot; y luego en la barra de la izquiera seleccionar &amp;quot;NombreDelScreenFlow Out&amp;quot;&lt;br /&gt;
[[Archivo:Imagen 4.jpg]]&lt;br /&gt;
* Luego solo basta con mapear los argumentos, seleccionando los nombres&lt;br /&gt;
[[Archivo:Imagen 5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Incluir un jar y utilizarlo===&lt;br /&gt;
Una vez que tenemos creado nuestro proyecto BPM podemos llegar a necesitar utilizar ciertas clases de java, tanto para modelar entidades como para invocar servicios externos a nuestro proyecto.&lt;br /&gt;
&lt;br /&gt;
En el caso que necesitemos incluír alguna librería al proyecto BPM los pasos a realizar son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* En &amp;quot;Recursos externos&amp;quot; hacer botón derecho y seleccionar la opción &amp;quot;Nuevo recurso externo&amp;quot;.&lt;br /&gt;
* Seleccionar un nombre y en tipo seleccionar &amp;quot;Biblioteca de clase Java&amp;quot;. &lt;br /&gt;
* Le damos clic al botón &amp;quot;Agregar&amp;quot; y buscamos el jar correspondiente que vamos a querer incluír.&lt;br /&gt;
* Aceptar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalizado estos pasos vamos a ver que se agregó a &amp;quot;Recursos externos&amp;quot; la librería que acabamos de incluir. Lo siguiente va a ser crear un módulo desde el cual invocar a las clases de nuestro jar. Para esto tenemos que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
* En &amp;quot;Catálogo&amp;quot; hacemos botón derecho y seleccionamos la opción &amp;quot;Crear módulo&amp;quot;.&lt;br /&gt;
* Le ponemos un nombre y le damos Aceptar.&lt;br /&gt;
* Realizado esto, veremos que se agregó un módulo al Catálogo. Lo que tenemos que hacer ahora es indicarle a ese módulo que contenga la configuración de nuestro jar. Para esto hacemos clic derecho sobre el módulo &amp;gt; Componente de catálogo &amp;gt; Java.&lt;br /&gt;
* Seleccionamos la opción &amp;quot;Usar una configuración existente&amp;quot; (está marcada por defecto) y en el combo seleccionamos nuestro recurso externo que agregamos antes. &lt;br /&gt;
* Luego, seleccionaremos las clases Java que quiero incluír en mi módulo.&lt;br /&gt;
* Se hará la carga de clases automáticamente.&lt;br /&gt;
* Finalizado esto deberíamos ver dentro de &amp;quot;Catálogo&amp;quot; nuestro módulo nuevo y al amplicar su contenido ver el árbol de las clases que incluímos en él.&lt;br /&gt;
&lt;br /&gt;
Para poder usar estas clases que incluímos, dentro de una actividad se podrán crear instancias de esta forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;ClaseDeMiBiblioteca instancia = new ClaseDeMiBiblioteca();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e invocar a sus métodos de esta forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;ObjetoRespuesta respuesta = (ObjetoRespuesta) instancia.metodo(arg1 : parametroAEnviar);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tratamiento de excepciones de servicios externos===&lt;br /&gt;
Puede suceder que, al momento de invocar algún servicio externo a nuestro proyecto de BPM, este retorne como respuesta una excepción. Para poder darle un comportamiento a nuestro proceso en BPM se puede utilizar una transición del tipo &amp;quot;Excepción&amp;quot; entre dos actividades.&lt;br /&gt;
&lt;br /&gt;
Para dar un ejemplo concreto vamos a imaginarnos 2 actividades a las que llamaremos &amp;quot;Inicio&amp;quot; y &amp;quot;Comportamiento correcto&amp;quot;. La actividad &amp;quot;Inicio&amp;quot; invocará a un servicio, y si sale todo bien, se pasará luego a la actividad &amp;quot;Comportamiento correcto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Ahora, puede suceder que cuando &amp;quot;Inicio&amp;quot; invoca al servicio, éste devuelva una Excepción. ¿Qué hacemos en ese caso? Creamos una actividad (en nuestro ejemplo es &amp;quot;Comportamiento excepción&amp;quot;), la cual nuestro sistema ejecutará en caso de que el servicio falle, y le asociamos una transición entre &amp;quot;Inicio&amp;quot; y esta nueva actividad de esta forma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para crear dicha transición, debemos crear la actividad a la cual asociarla, dale doble clic y luego seleccionar como tipo de transición aquella que dice &amp;quot;Excepción&amp;quot;. Para indicarle para qué tipo de Excepción queremos que se siga dicho flujo, en &amp;quot;Nombre de excepción&amp;quot; deberemos cargar la clase con la excepción que puede llegar.&lt;br /&gt;
&lt;br /&gt;
Si queremos obtener el mensaje de la excepción, podemos utilizar la variable predefinida por BPM '''lastException''' en la cual se guarda la ultima excepción ocurrida en la instancia.&lt;br /&gt;
&lt;br /&gt;
===Creación de Instancias mediante PBL===&lt;br /&gt;
Para crear instancias de procesos mediante PBL se utiliza el siguiente código:&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
logMessage(&amp;quot;DOS_IDEAS: Creando la instancia ConsumidorProceso&amp;quot;, severity : Severity.DEBUG);&lt;br /&gt;
&lt;br /&gt;
String mensaje = &amp;quot;Este es un mensaje creado por el productor a las &amp;quot; + 'now';&lt;br /&gt;
ProcessInstance.create(processId : ProcessInstance.organization + &amp;quot;/&amp;quot; + ProcessInstance.organizationalUnit + &amp;quot;/ConsumidorProceso&amp;quot;, &lt;br /&gt;
                       arguments : { &amp;quot;mensaje_InArgument&amp;quot; : mensaje }, argumentsSetName : &amp;quot;BeginIn&amp;quot;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Donde:&lt;br /&gt;
* '''processId''' es el identificador (no el nombre) del proceso que queremos crear, en nuestro caso vamos a crear el proceso &amp;quot;ConsumidorProceso&amp;quot;.&lt;br /&gt;
* '''arguments''' es el array de argumentos de entrada que se definio en el proceso.&lt;br /&gt;
&lt;br /&gt;
En el siguiente link podemos descargarnos un ejemplo del svn:&lt;br /&gt;
[https://dosideas-aplicaciones-modelo.googlecode.com/svn/BPM_Ejemplos/trunk/CrearInstanciaConPBL.fpr.exp Crear Instancia mediante PBL]&lt;br /&gt;
&lt;br /&gt;
===Manipulación de Instancias mediante PAPI===&lt;br /&gt;
Aqualogic BPM 5.7, provee una API para trabajar con el FDI. Esta API se la conoce como PAPI.&lt;br /&gt;
Una de las cosas que nos permite realizar es obtener una instancia de BPM y manipular dicha instancia.&lt;br /&gt;
En el siguiente link podemos descargarnos un ejemplo del svn: [https://dosideas-aplicaciones-modelo.googlecode.com/svn/BPM_Ejemplos/trunk/ManipularInstancias.fpr.exp Manipular instancia por FDI].&lt;br /&gt;
&lt;br /&gt;
A continuación tenemos un ejemplo de como abortar una instancia:&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
logMessage(&amp;quot;DOS_IDEAS: Cerrando instancia con nombre  [&amp;quot; + identificador + &amp;quot;]&amp;quot;, severity : Severity.DEBUG);&lt;br /&gt;
&lt;br /&gt;
ProcessService processService = ProcessService();&lt;br /&gt;
try {&lt;br /&gt;
    processService.connectTo(url : Fuego.Server.directoryURL, user : &amp;quot;tester&amp;quot;, password : &amp;quot;tester&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    Instance[] instances = {  };&lt;br /&gt;
    InstanceFilter instanciaFilter = InstanceFilter();&lt;br /&gt;
    instanciaFilter.create(processService : processService);&lt;br /&gt;
&lt;br /&gt;
    SearchScope searchScope = SearchScope(participantScope : ParticipantScope.ALL, &lt;br /&gt;
                                          statusScope : StatusScope.ONLY_INPROCESS);&lt;br /&gt;
instanciaFilter.searchScope = searchScope;&lt;br /&gt;
    instanciaFilter.addAttributeTo(variable : &amp;quot;identificador&amp;quot;, comparator : Comparison.IS, &lt;br /&gt;
                                   value : unaVariable);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    instances = processService.getInstancesByFilter(filter : instanciaFilter);&lt;br /&gt;
&lt;br /&gt;
    foreach (unaInstancia in instances) {&lt;br /&gt;
        logMessage(&amp;quot;DOS_IDEAS: Cerrando: &amp;quot; + unaInstancia, severity : Severity.DEBUG);&lt;br /&gt;
&lt;br /&gt;
        unaInstancia.abort();&lt;br /&gt;
&lt;br /&gt;
        logMessage(&amp;quot;DOS_IDEAS: Instancia cerrada exitosamente&amp;quot;, severity : Severity.DEBUG);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
catch (Java.Lang.Exception ex) {&lt;br /&gt;
    logMessage(&amp;quot;DOS_IDEAS: Error al abortar instancia [&amp;quot; + identificador + &amp;quot;]: &amp;quot; + ex.message, severity : Severity.DEBUG);&lt;br /&gt;
}&lt;br /&gt;
finally {&lt;br /&gt;
    processService.disconnectFrom();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Creamos la conexión al FDI====&lt;br /&gt;
Se debe proveer un usuario y password existente en la aplicación y '''que tenga los permisos para poder manipular la instancia'''. Si el usuario no posee permisos para manipular la instancia, al realizar la busqueda posiblemente no tenga visibilidad de la instancia.&lt;br /&gt;
En caso de que se este utilizando el Studio, el password es el mismo que el user.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
ProcessService processService = ProcessService();&lt;br /&gt;
processService.connectTo(url : Fuego.Server.directoryURL, user : &amp;quot;tester&amp;quot;, password : &amp;quot;tester&amp;quot;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
La conexión debe ser finalizada mediante el método disconnectFrom&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
processService.disconnectFrom();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Creamos el filtro====&lt;br /&gt;
Crea un filtro para buscar las instancias en el FDI.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    InstanceFilter instanciaFilter = InstanceFilter();&lt;br /&gt;
    instanciaFilter.create(processService : processService);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agregamos al filtro, la condición de que obtenga la instancia de todos los participantes y que se encuentren en proceso.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
   SearchScope searchScope = SearchScope(participantScope : ParticipantScope.ALL, &lt;br /&gt;
                                          statusScope : StatusScope.ONLY_INPROCESS);&lt;br /&gt;
instanciaFilter.searchScope = searchScope;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
El alcance de los participantes pueden ser:&lt;br /&gt;
* '''ALL''': todos los participantes.&lt;br /&gt;
* '''ALL_IN_ROLE''': todas las instancias del rol.&lt;br /&gt;
* '''PARTICIPANT''': todas las instancias del participante.&lt;br /&gt;
* '''PARTICIPANT_ROLE''': todas las intancias de los roles del participante.&lt;br /&gt;
&lt;br /&gt;
Agregamos un filtro, para que filtre las instancia cuya '''variable externa''' identificador tenga el valor de unaVariable &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
 instanciaFilter.addAttributeTo(variable : &amp;quot;identificador&amp;quot;, comparator : Comparison.IS, value : unaVariable);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Obtenemos las instancias====&lt;br /&gt;
Obtenemos el listado de instancia que concuerdan con el filtro instanciaFilter&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
Instance[] instances = processService.getInstancesByFilter(filter : instanciaFilter);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Manipulamos las instancias obtenidas====&lt;br /&gt;
Recorremos la lista de instancias obtenidas y en nuestro caso las abortamos.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
   foreach (unaInstancia in instances) {&lt;br /&gt;
          unaInstancia.abort();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Las posibles acciones que podemos realizar sobre una instancia son:&lt;br /&gt;
* '''abort''': Cancela la instancia.&lt;br /&gt;
* '''suspend''': Suspende la instancia.&lt;br /&gt;
* '''select''': Selecciona la instancia.&lt;br /&gt;
* '''reasign''': Reasigna la instancia a un participante.&lt;br /&gt;
&lt;br /&gt;
=== Ver también  ===&lt;br /&gt;
* [[Oracle BPM]]&lt;br /&gt;
* [[Deploy de proyectos BPM Fuego 5.7 desde Consola]]&lt;br /&gt;
* [[Deploy de proyectos BPM Fuego 5.7 con tareas ANT]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=BEA_Aqualogic_BPM_5.7_(Fuego)&amp;diff=6711</id>
		<title>BEA Aqualogic BPM 5.7 (Fuego)</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=BEA_Aqualogic_BPM_5.7_(Fuego)&amp;diff=6711"/>
				<updated>2012-10-04T16:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Ver también */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Comunicando con Base de Datos con PBL (Process Business Language)===&lt;br /&gt;
&lt;br /&gt;
Para ejecutar comandos SQL en Aqualogic BPM 5.7 hay que seguir los siguientes pasos: &lt;br /&gt;
&lt;br /&gt;
====Primer paso====&lt;br /&gt;
&lt;br /&gt;
Se debe crear nuevo &amp;quot;External Resource&amp;quot;, haciendo click derecho en el directorio del proyecto &amp;quot;External Resources&amp;quot;, del tipo &amp;quot;SQL Database&amp;quot;. Los campos se deben completar con la información de la base de datos que queremos consultar y con un nombre significativo.&lt;br /&gt;
&lt;br /&gt;
====Segundo paso====&lt;br /&gt;
 &lt;br /&gt;
Se debe crear un nuevo &amp;quot;BPM Object&amp;quot;, haciendo click derecho sobre el modulo deseado en el directorio de &amp;quot;Catalog&amp;quot;, y luego crear un método en nuestro objeto, haciendo click derecho sobre el objeto y seleccionando la opción &amp;quot;New Method&amp;quot;. Ahora se debe editar el nuevo método, expandiendo el objeto bpm y haciendo doble click sobre el nombre del método creado. Ahora podemos editarlo e incluir el código necesario para comunicarnos con la BD a través de una clase propia de Fuego, un ejemplo de implementación puede ser el siguiente: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
String queryAEjecutar =&amp;quot;SELECT campo1, campo2, campo3 FROM nombreTabla WHERE nombreColumna in (?,?)&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
String nombreDeLaBDCreada = &amp;quot;NombreBD&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
String[] arrayDeParametros = {&amp;quot;valor1&amp;quot;, &amp;quot;valor2&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
Iterator &amp;lt;Any[Any]&amp;gt; iterator = DynamicSQL.executeQuery(sentence : queryAEjecutar, implname : nombreDeLaBDCreada, inParameters : arrayDeParametros);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como se puede observar, el resultado de realizar la consulta va a ser un iterador, que luego puede ser recorrido con un &amp;quot;foreach&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
foreach (e in iterator) {&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;campo1: &amp;quot;+e[&amp;quot;campo1&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;campo2: &amp;quot;+e[&amp;quot;campo2&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;campo3: &amp;quot;+e[&amp;quot;campo3&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
   logMessage(&amp;quot;nombreColumna: &amp;quot;+e[&amp;quot;nombreColumna&amp;quot;], severity : INFO);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Versionando con CVS ===&lt;br /&gt;
El producto Aqualogic BPM 5.7 incluye un cliente de CVS que permite agregar, remover, actualizar en un repositorio CVS.&lt;br /&gt;
&lt;br /&gt;
==== Configurar el cliente CVS ====&lt;br /&gt;
* Levantar el Studio BPM.&lt;br /&gt;
* File -&amp;gt; Preference -&amp;gt;Default Version Control&lt;br /&gt;
** Version Control Manger: CVS&lt;br /&gt;
** Host: host del servidor CVS&lt;br /&gt;
** User Name: usuario del CVS&lt;br /&gt;
** User Password: password del usuario CVS&lt;br /&gt;
** path: ruta dentro del repositorio donde se guardará el proyecto.&lt;br /&gt;
&lt;br /&gt;
==== Subir el proyecto al CVS ====&lt;br /&gt;
* Levantar el Studio BPM.&lt;br /&gt;
* Abrir el proyecto a versionar.&lt;br /&gt;
* File -&amp;gt; Project Preference -&amp;gt; Project Version Control.&lt;br /&gt;
** Version Control Manager: CVS (nos carga la información ingresada en el punto anterior).&lt;br /&gt;
* File -&amp;gt; VCS -&amp;gt; Store project in repository&lt;br /&gt;
** Path: directorio en el que se creará el proyecto en el repositorio.&lt;br /&gt;
** Si es la primera vez que se sube un proyecto de Aqualogic BPM, pedirá que se ingrese la ruta del directorio donde se creará el &amp;quot;common catalog&amp;quot;&lt;br /&gt;
*** Common catalog: Es un catalogo de componente, el cual puede ser compartido por otros proyectos de Aqualogic BPM.&lt;br /&gt;
En el repositorio quedarán creados 2 directorios, el del proyecto y el del common catalog, ademas se crearán 2 alias en el CVS que apuntan al proyecto y al common catalog.&lt;br /&gt;
&lt;br /&gt;
==== Obtener el proyecto del CVS ====&lt;br /&gt;
* Levantar el Studio BPM.&lt;br /&gt;
* File -&amp;gt; Project Preference -&amp;gt; Project Version Control.&lt;br /&gt;
* File -&amp;gt; Import -&amp;gt; Project -&amp;gt; from Repository.&lt;br /&gt;
** Version Control Manager: CVS&lt;br /&gt;
** En la siguiente pantalla, seleccionar el proyecto del repositorio.&lt;br /&gt;
&lt;br /&gt;
==== Trabajar con proyectos versionados ====&lt;br /&gt;
Aqualogic BPM 5.7, posee una política restrictiva de edición para los proyecto versionados.&lt;br /&gt;
La política, consiste en que todo el proyecto se encuentra en modo lectura y solo un usuario puede editar un determinado archivo versionado (Ej.: un proceso).&lt;br /&gt;
===== Editar un procesos =====&lt;br /&gt;
* Seleccionar el proceso a editar.&lt;br /&gt;
* Menú contextual -&amp;gt; VCS -&amp;gt; edit.&lt;br /&gt;
Esto habilita al usuario a modificar el proceso. En caso de que exitiera otro usuario modificando el proceso nos aparecerá un mensaje de error.&lt;br /&gt;
&lt;br /&gt;
===== Grabar los cambios realizados en un proceso =====&lt;br /&gt;
* Seleccionar el proceso que se esta editando.&lt;br /&gt;
* Menú contextual -&amp;gt; VCS -&amp;gt; commit.&lt;br /&gt;
Este paso es importante, debido a que si se libera la edición del proceso sin realizar el commit se perderán los cambios.&lt;br /&gt;
&lt;br /&gt;
===== Liberar la edición del proceso =====&lt;br /&gt;
* Seleccionar el proceso que se esta editando.&lt;br /&gt;
* Menú contextual -&amp;gt; VCS -&amp;gt; unedit.&lt;br /&gt;
&lt;br /&gt;
===Pasaje de Parametros===&lt;br /&gt;
&lt;br /&gt;
Para pasar parámetros al proceso desde una actividad de creación (aquellas que dan inicio al proceso) que tenga asociada un ScreenFlow, hay que seguir los siguientes pasos.&lt;br /&gt;
&lt;br /&gt;
El primer paso es decirle al proceso que va a recibir parametros de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
* Doble click en la tarea &amp;quot;begin&amp;quot; y luego en &amp;quot;Argument Mapping&amp;quot;&lt;br /&gt;
[[Archivo:Imagen 1.jpg]]&lt;br /&gt;
* Click en el botón que parece una flecha violeta hacia abajo y ahí agregamos el nombre del parametro que va a recibir. Es recomendable utilizar nombres descriptivos ya que sino se puede volver bastante confuso.&lt;br /&gt;
[[Archivo:Imagen 2.jpg]]&lt;br /&gt;
* Ahora lo único que falta es mapear el parámetro a una variable del proceso (puede ser creada en la misma pantalla haciendo click sobre el botón que está al lado del de crear parametros)&lt;br /&gt;
[[Archivo:Imagen 3.jpg]]&lt;br /&gt;
&lt;br /&gt;
El segundo paso es realizar un proceso similar al primer paso, con la diferencia que debe hacerce en la tarea &amp;quot;end&amp;quot; del ScreenFlow asociado a la actividad de creación.&lt;br /&gt;
&lt;br /&gt;
El tercer paso es mapear las salidas del ScreenFlow con las Entradas del proceso de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
* Doble click en la actividad que tiene asociada el ScreenFlow, luego en &amp;quot;Argument Mapping&amp;quot; y luego en la barra de la izquiera seleccionar &amp;quot;NombreDelScreenFlow Out&amp;quot;&lt;br /&gt;
[[Archivo:Imagen 4.jpg]]&lt;br /&gt;
* Luego solo basta con mapear los argumentos, seleccionando los nombres&lt;br /&gt;
[[Archivo:Imagen 5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Incluir un jar y utilizarlo===&lt;br /&gt;
Una vez que tenemos creado nuestro proyecto BPM podemos llegar a necesitar utilizar ciertas clases de java, tanto para modelar entidades como para invocar servicios externos a nuestro proyecto.&lt;br /&gt;
&lt;br /&gt;
En el caso que necesitemos incluír alguna librería al proyecto BPM los pasos a realizar son los siguientes:&lt;br /&gt;
&lt;br /&gt;
* En &amp;quot;Recursos externos&amp;quot; hacer botón derecho y seleccionar la opción &amp;quot;Nuevo recurso externo&amp;quot;.&lt;br /&gt;
* Seleccionar un nombre y en tipo seleccionar &amp;quot;Biblioteca de clase Java&amp;quot;. &lt;br /&gt;
* Le damos clic al botón &amp;quot;Agregar&amp;quot; y buscamos el jar correspondiente que vamos a querer incluír.&lt;br /&gt;
* Aceptar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalizado estos pasos vamos a ver que se agregó a &amp;quot;Recursos externos&amp;quot; la librería que acabamos de incluir. Lo siguiente va a ser crear un módulo desde el cual invocar a las clases de nuestro jar. Para esto tenemos que hacer lo siguiente:&lt;br /&gt;
&lt;br /&gt;
* En &amp;quot;Catálogo&amp;quot; hacemos botón derecho y seleccionamos la opción &amp;quot;Crear módulo&amp;quot;.&lt;br /&gt;
* Le ponemos un nombre y le damos Aceptar.&lt;br /&gt;
* Realizado esto, veremos que se agregó un módulo al Catálogo. Lo que tenemos que hacer ahora es indicarle a ese módulo que contenga la configuración de nuestro jar. Para esto hacemos clic derecho sobre el módulo &amp;gt; Componente de catálogo &amp;gt; Java.&lt;br /&gt;
* Seleccionamos la opción &amp;quot;Usar una configuración existente&amp;quot; (está marcada por defecto) y en el combo seleccionamos nuestro recurso externo que agregamos antes. &lt;br /&gt;
* Luego, seleccionaremos las clases Java que quiero incluír en mi módulo.&lt;br /&gt;
* Se hará la carga de clases automáticamente.&lt;br /&gt;
* Finalizado esto deberíamos ver dentro de &amp;quot;Catálogo&amp;quot; nuestro módulo nuevo y al amplicar su contenido ver el árbol de las clases que incluímos en él.&lt;br /&gt;
&lt;br /&gt;
Para poder usar estas clases que incluímos, dentro de una actividad se podrán crear instancias de esta forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;ClaseDeMiBiblioteca instancia = new ClaseDeMiBiblioteca();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e invocar a sus métodos de esta forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;ObjetoRespuesta respuesta = (ObjetoRespuesta) instancia.metodo(arg1 : parametroAEnviar);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tratamiento de excepciones de servicios externos===&lt;br /&gt;
Puede suceder que, al momento de invocar algún servicio externo a nuestro proyecto de BPM, este retorne como respuesta una excepción. Para poder darle un comportamiento a nuestro proceso en BPM se puede utilizar una transición del tipo &amp;quot;Excepción&amp;quot; entre dos actividades.&lt;br /&gt;
&lt;br /&gt;
Para dar un ejemplo concreto vamos a imaginarnos 2 actividades a las que llamaremos &amp;quot;Inicio&amp;quot; y &amp;quot;Comportamiento correcto&amp;quot;. La actividad &amp;quot;Inicio&amp;quot; invocará a un servicio, y si sale todo bien, se pasará luego a la actividad &amp;quot;Comportamiento correcto&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Ahora, puede suceder que cuando &amp;quot;Inicio&amp;quot; invoca al servicio, éste devuelva una Excepción. ¿Qué hacemos en ese caso? Creamos una actividad (en nuestro ejemplo es &amp;quot;Comportamiento excepción&amp;quot;), la cual nuestro sistema ejecutará en caso de que el servicio falle, y le asociamos una transición entre &amp;quot;Inicio&amp;quot; y esta nueva actividad de esta forma:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Para crear dicha transición, debemos crear la actividad a la cual asociarla, dale doble clic y luego seleccionar como tipo de transición aquella que dice &amp;quot;Excepción&amp;quot;. Para indicarle para qué tipo de Excepción queremos que se siga dicho flujo, en &amp;quot;Nombre de excepción&amp;quot; deberemos cargar la clase con la excepción que puede llegar.&lt;br /&gt;
&lt;br /&gt;
Si queremos obtener el mensaje de la excepción, podemos utilizar la variable predefinida por BPM '''lastException''' en la cual se guarda la ultima excepción ocurrida en la instancia.&lt;br /&gt;
&lt;br /&gt;
===Creación de Instancias mediante PBL===&lt;br /&gt;
Para crear instancias de procesos mediante PBL se utiliza el siguiente código:&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
logMessage(&amp;quot;DOS_IDEAS: Creando la instancia ConsumidorProceso&amp;quot;, severity : Severity.DEBUG);&lt;br /&gt;
&lt;br /&gt;
String mensaje = &amp;quot;Este es un mensaje creado por el productor a las &amp;quot; + 'now';&lt;br /&gt;
ProcessInstance.create(processId : ProcessInstance.organization + &amp;quot;/&amp;quot; + ProcessInstance.organizationalUnit + &amp;quot;/ConsumidorProceso&amp;quot;, &lt;br /&gt;
                       arguments : { &amp;quot;mensaje_InArgument&amp;quot; : mensaje }, argumentsSetName : &amp;quot;BeginIn&amp;quot;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Donde:&lt;br /&gt;
* '''processId''' es el identificador (no el nombre) del proceso que queremos crear, en nuestro caso vamos a crear el proceso &amp;quot;ConsumidorProceso&amp;quot;.&lt;br /&gt;
* '''arguments''' es el array de argumentos de entrada que se definio en el proceso.&lt;br /&gt;
&lt;br /&gt;
En el siguiente link podemos descargarnos un ejemplo del svn:&lt;br /&gt;
[https://dosideas-aplicaciones-modelo.googlecode.com/svn/BPM_Ejemplos/trunk/CrearInstanciaConPBL.fpr.exp Crear Instancia mediante PBL]&lt;br /&gt;
&lt;br /&gt;
===Manipulación de Instancias mediante PAPI===&lt;br /&gt;
Aqualogic BPM 5.7, provee una API para trabajar con el FDI. Esta API se la conoce como PAPI.&lt;br /&gt;
Una de las cosas que nos permite realizar es obtener una instancia de BPM y manipular dicha instancia.&lt;br /&gt;
En el siguiente link podemos descargarnos un ejemplo del svn: [https://dosideas-aplicaciones-modelo.googlecode.com/svn/BPM_Ejemplos/trunk/ManipularInstancias.fpr.exp Manipular instancia por FDI].&lt;br /&gt;
&lt;br /&gt;
A continuación tenemos un ejemplo de como abortar una instancia:&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
logMessage(&amp;quot;DOS_IDEAS: Cerrando instancia con nombre  [&amp;quot; + identificador + &amp;quot;]&amp;quot;, severity : Severity.DEBUG);&lt;br /&gt;
&lt;br /&gt;
ProcessService processService = ProcessService();&lt;br /&gt;
try {&lt;br /&gt;
    processService.connectTo(url : Fuego.Server.directoryURL, user : &amp;quot;tester&amp;quot;, password : &amp;quot;tester&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    Instance[] instances = {  };&lt;br /&gt;
    InstanceFilter instanciaFilter = InstanceFilter();&lt;br /&gt;
    instanciaFilter.create(processService : processService);&lt;br /&gt;
&lt;br /&gt;
    SearchScope searchScope = SearchScope(participantScope : ParticipantScope.ALL, &lt;br /&gt;
                                          statusScope : StatusScope.ONLY_INPROCESS);&lt;br /&gt;
instanciaFilter.searchScope = searchScope;&lt;br /&gt;
    instanciaFilter.addAttributeTo(variable : &amp;quot;identificador&amp;quot;, comparator : Comparison.IS, &lt;br /&gt;
                                   value : unaVariable);&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    instances = processService.getInstancesByFilter(filter : instanciaFilter);&lt;br /&gt;
&lt;br /&gt;
    foreach (unaInstancia in instances) {&lt;br /&gt;
        logMessage(&amp;quot;DOS_IDEAS: Cerrando: &amp;quot; + unaInstancia, severity : Severity.DEBUG);&lt;br /&gt;
&lt;br /&gt;
        unaInstancia.abort();&lt;br /&gt;
&lt;br /&gt;
        logMessage(&amp;quot;DOS_IDEAS: Instancia cerrada exitosamente&amp;quot;, severity : Severity.DEBUG);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
catch (Java.Lang.Exception ex) {&lt;br /&gt;
    logMessage(&amp;quot;DOS_IDEAS: Error al abortar instancia [&amp;quot; + identificador + &amp;quot;]: &amp;quot; + ex.message, severity : Severity.DEBUG);&lt;br /&gt;
}&lt;br /&gt;
finally {&lt;br /&gt;
    processService.disconnectFrom();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Creamos la conexión al FDI====&lt;br /&gt;
Se debe proveer un usuario y password existente en la aplicación y '''que tenga los permisos para poder manipular la instancia'''. Si el usuario no posee permisos para manipular la instancia, al realizar la busqueda posiblemente no tenga visibilidad de la instancia.&lt;br /&gt;
En caso de que se este utilizando el Studio, el password es el mismo que el user.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
ProcessService processService = ProcessService();&lt;br /&gt;
processService.connectTo(url : Fuego.Server.directoryURL, user : &amp;quot;tester&amp;quot;, password : &amp;quot;tester&amp;quot;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
La conexión debe ser finalizada mediante el método disconnectFrom&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
processService.disconnectFrom();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Creamos el filtro====&lt;br /&gt;
Crea un filtro para buscar las instancias en el FDI.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
    InstanceFilter instanciaFilter = InstanceFilter();&lt;br /&gt;
    instanciaFilter.create(processService : processService);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Agregamos al filtro, la condición de que obtenga la instancia de todos los participantes y que se encuentren en proceso.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
   SearchScope searchScope = SearchScope(participantScope : ParticipantScope.ALL, &lt;br /&gt;
                                          statusScope : StatusScope.ONLY_INPROCESS);&lt;br /&gt;
instanciaFilter.searchScope = searchScope;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
El alcance de los participantes pueden ser:&lt;br /&gt;
* '''ALL''': todos los participantes.&lt;br /&gt;
* '''ALL_IN_ROLE''': todas las instancias del rol.&lt;br /&gt;
* '''PARTICIPANT''': todas las instancias del participante.&lt;br /&gt;
* '''PARTICIPANT_ROLE''': todas las intancias de los roles del participante.&lt;br /&gt;
&lt;br /&gt;
Agregamos un filtro, para que filtre las instancia cuya '''variable externa''' identificador tenga el valor de unaVariable &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
 instanciaFilter.addAttributeTo(variable : &amp;quot;identificador&amp;quot;, comparator : Comparison.IS, value : unaVariable);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Obtenemos las instancias====&lt;br /&gt;
Obtenemos el listado de instancia que concuerdan con el filtro instanciaFilter&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
Instance[] instances = processService.getInstancesByFilter(filter : instanciaFilter);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Manipulamos las instancias obtenidas====&lt;br /&gt;
Recorremos la lista de instancias obtenidas y en nuestro caso las abortamos.&lt;br /&gt;
&amp;lt;code java&amp;gt;&lt;br /&gt;
   foreach (unaInstancia in instances) {&lt;br /&gt;
          unaInstancia.abort();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Las posibles acciones que podemos realizar sobre una instancia son:&lt;br /&gt;
* '''abort''': Cancela la instancia.&lt;br /&gt;
* '''suspend''': Suspende la instancia.&lt;br /&gt;
* '''select''': Selecciona la instancia.&lt;br /&gt;
* '''reasign''': Reasigna la instancia a un participante.&lt;br /&gt;
&lt;br /&gt;
=== Ver también  ===&lt;br /&gt;
* [[Oracle BPM]]&lt;br /&gt;
* [[Deployar un proyecto exportado desde Consola]]&lt;br /&gt;
* [[Deployar un proyecto con tareas ANT]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3512</id>
		<title>CLOB de Oracle en Weblogic</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3512"/>
				<updated>2009-10-19T04:51:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si tenemos una aplicación [[Java]] corriendo en [[WebLogic]] la forma de acceder a un [[CLOB de Oracle]] para escritura se maneja de una forma especial. en nuestro caso utilizamos [[JDBC]] y por consiguiente la clase '''weblogic.jdbc.vendor.oracle.OracleThinClob'''. Aqui dejamos un ejemplo: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java5=&amp;quot;java5&amp;quot;&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import weblogic.jdbc.vendor.oracle.OracleThinClob;&lt;br /&gt;
&lt;br /&gt;
import com.dosideas.dao.UnDao;&lt;br /&gt;
&lt;br /&gt;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtiene el writer del Clob.&lt;br /&gt;
     */&lt;br /&gt;
    public Writer obtenerWriter(Long id) {&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate()&lt;br /&gt;
                               .queryForObject(getQuery(), &lt;br /&gt;
                                 new Object[] {idPeticion }, &lt;br /&gt;
                                 new RowMapper() {&lt;br /&gt;
				     public Object mapRow(ResultSet resultSet, int rowNum) &lt;br /&gt;
                                                                     throws SQLException {&lt;br /&gt;
				         return (Clob) resultSet.getClob(1);&lt;br /&gt;
                                  }&lt;br /&gt;
                            });&lt;br /&gt;
        Writer writerDelClob = null;&lt;br /&gt;
 &lt;br /&gt;
        try {&lt;br /&gt;
            writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            // Tratar el error&lt;br /&gt;
        }&lt;br /&gt;
	&lt;br /&gt;
	return writerDelClob;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Para realizar la Lectura de un CLOB de Oracle, usamos tambien JDBC, y como la clase weblogic.jdbc.vendor.oracle.OracleThinClob implementa la interfaz java.sql.Clob, utilizamos los metodos de esta ultima para obtener el contenido del CLOB. La funcion getSubString nos permite obtener desde la posicion del caracter que le indiquemos, una catidad determinada e caracteres. Con el metodo length, obtenemos el tamaño del CLOB, con lo cual podemos obtener todo el contenido, o recuperarlo por una cantidad fija de caracteres, asi como lo vemos en los siguientes ejemplos:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Implementacion usando un Clob de oracle.&lt;br /&gt;
*/&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * tamano del buffer de lectura del CLOB. Dependiendo de su tamano, la&lt;br /&gt;
     * cantidad de fetch que se realizan.&lt;br /&gt;
    */&lt;br /&gt;
    public int tamanoBuffer;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerYExportarClobexportar(OutputStream writerServlet, Long id) {&lt;br /&gt;
&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                    new Object[] {id}, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        OutputStreamWriter osWriter = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            // Para escribir mas facil crea un buffer para escritura.&lt;br /&gt;
            osWriter = new OutputStreamWriter(writerServlet);&lt;br /&gt;
&lt;br /&gt;
            long tamano = clob.length();&lt;br /&gt;
            long posDesde = 1;&lt;br /&gt;
            while (desde + tamanoBuffer &amp;amp;lt; tamanoClob) {&lt;br /&gt;
                osWriter.write(clob.getSubString(posDesde, tamanoBuffer));&lt;br /&gt;
                posDesde += tamanoBuffer;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            osWriter.write(clob.getSubString(posicionDesde, new Long(tamano - posDesde + 1).intValue()));&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB &amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
/**&lt;br /&gt;
 * Implementacion usando un Clob de oracle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
/**&lt;br /&gt;
* Query que busca el Clob por id.&lt;br /&gt;
* SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
private String query;&lt;br /&gt;
public void leerClob(Long id) {&lt;br /&gt;
  Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                              new Object[] {id }, new RowMapper() {&lt;br /&gt;
      public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
          return (Clob) resultSet.getClob(1);&lt;br /&gt;
      }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
String contenidoClob = null;&lt;br /&gt;
try {&lt;br /&gt;
      long tamanoClob = clob.length();&lt;br /&gt;
      contenidoClob = clob.getSubString(1, tamanoClob);&lt;br /&gt;
      System.out.println(contenidoClob);&lt;br /&gt;
  } catch (SQLException e) {&lt;br /&gt;
      String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
      throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
  } catch (IOException e) {&lt;br /&gt;
      String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
      throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
  } finally {&lt;br /&gt;
      if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
          try {&lt;br /&gt;
              osWriter.close();&lt;br /&gt;
          } catch (IOException e) {&lt;br /&gt;
              String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB&amp;quot;;&lt;br /&gt;
              throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Ver también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Oracle]] &lt;br /&gt;
*[[JDBC]] &lt;br /&gt;
*[[CLOB de Oracle]] &lt;br /&gt;
*[http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] &lt;br /&gt;
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] &lt;br /&gt;
*[http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/clob.html Java Sun Clob Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]] [[Category:WebLogic]] [[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3511</id>
		<title>CLOB de Oracle en Weblogic</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3511"/>
				<updated>2009-10-19T04:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si tenemos una aplicación [[Java]] corriendo en [[WebLogic]] la forma de acceder a un [[CLOB de Oracle]] para escritura se maneja de una forma especial. en nuestro caso utilizamos [[JDBC]] y por consiguiente la clase '''weblogic.jdbc.vendor.oracle.OracleThinClob'''. Aqui dejamos un ejemplo: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java5=&amp;quot;java5&amp;quot;&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import weblogic.jdbc.vendor.oracle.OracleThinClob;&lt;br /&gt;
&lt;br /&gt;
import com.dosideas.dao.UnDao;&lt;br /&gt;
&lt;br /&gt;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtiene el writer del Clob.&lt;br /&gt;
     */&lt;br /&gt;
    public Writer obtenerWriter(Long id) {&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate()&lt;br /&gt;
                               .queryForObject(getQuery(), &lt;br /&gt;
                                 new Object[] {idPeticion }, &lt;br /&gt;
                                 new RowMapper() {&lt;br /&gt;
				     public Object mapRow(ResultSet resultSet, int rowNum) &lt;br /&gt;
                                                                     throws SQLException {&lt;br /&gt;
				         return (Clob) resultSet.getClob(1);&lt;br /&gt;
                                  }&lt;br /&gt;
                            });&lt;br /&gt;
        Writer writerDelClob = null;&lt;br /&gt;
 &lt;br /&gt;
        try {&lt;br /&gt;
            writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            // Tratar el error&lt;br /&gt;
        }&lt;br /&gt;
	&lt;br /&gt;
	return writerDelClob;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Para realizar la Lectura de un CLOB de Oracle, usamos tambien JDBC, y como la clase weblogic.jdbc.vendor.oracle.OracleThinClob implementa la interfaz java.sql.Clob, utilizamos los metodos de esta ultima para obtener el contenido del CLOB. La funcion getSubString nos permite obtener desde la posicion del caracter que le indiquemos, una catidad determinada e caracteres. Con el metodo length, obtenemos el tamaño del CLOB, con lo cual podemos obtener todo el contenido, o recuperarlo por una cantidad fija de caracteres, asi como lo vemos en los siguientes ejemplos:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Implementacion usando un Clob de oracle.&lt;br /&gt;
*/&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * tamano del buffer de lectura del CLOB. Dependiendo de su tamano, la&lt;br /&gt;
     * cantidad de fetch que se realizan.&lt;br /&gt;
    */&lt;br /&gt;
    public int tamanoBuffer;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerYExportarClobexportar(OutputStream writerServlet, Long id) {&lt;br /&gt;
&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                    new Object[] {id}, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        OutputStreamWriter osWriter = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            // Para escribir mas facil crea un buffer para escritura.&lt;br /&gt;
            osWriter = new OutputStreamWriter(writerServlet);&lt;br /&gt;
&lt;br /&gt;
            long tamano = clob.length();&lt;br /&gt;
            long posDesde = 1;&lt;br /&gt;
            while (desde + tamanoBuffer &amp;amp;lt; tamanoClob) {&lt;br /&gt;
                osWriter.write(clob.getSubString(posDesde, tamanoBuffer));&lt;br /&gt;
                posDesde += tamanoBuffer;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            osWriter.write(clob.getSubString(posicionDesde, new Long(tamano - posDesde + 1).intValue()));&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB &amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
/**&lt;br /&gt;
 * Implementacion usando un Clob de oracle.&lt;br /&gt;
 */&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /**&lt;br /&gt;
  * Query que busca el Clob por id.&lt;br /&gt;
  * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
  */&lt;br /&gt;
private String query;&lt;br /&gt;
public void leerClob(Long id) {&lt;br /&gt;
    Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                new Object[] {id }, new RowMapper() {&lt;br /&gt;
        public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
            return (Clob) resultSet.getClob(1);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
String contenidoClob = null;&lt;br /&gt;
try {&lt;br /&gt;
        long tamanoClob = clob.length();&lt;br /&gt;
        contenidoClob = clob.getSubString(1, tamanoClob);&lt;br /&gt;
        System.out.println(contenidoClob);&lt;br /&gt;
    } catch (SQLException e) {&lt;br /&gt;
        String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
        throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
    } catch (IOException e) {&lt;br /&gt;
        String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
        throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
    } finally {&lt;br /&gt;
        if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
            try {&lt;br /&gt;
                osWriter.close();&lt;br /&gt;
            } catch (IOException e) {&lt;br /&gt;
                String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB&amp;quot;;&lt;br /&gt;
                throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Ver también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Oracle]] &lt;br /&gt;
*[[JDBC]] &lt;br /&gt;
*[[CLOB de Oracle]] &lt;br /&gt;
*[http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] &lt;br /&gt;
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] &lt;br /&gt;
*[http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/clob.html Java Sun Clob Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]] [[Category:WebLogic]] [[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3510</id>
		<title>CLOB de Oracle en Weblogic</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3510"/>
				<updated>2009-10-19T04:44:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si tenemos una aplicación [[Java]] corriendo en [[WebLogic]] la forma de acceder a un [[CLOB de Oracle]] para escritura se maneja de una forma especial. en nuestro caso utilizamos [[JDBC]] y por consiguiente la clase '''weblogic.jdbc.vendor.oracle.OracleThinClob'''. Aqui dejamos un ejemplo: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java5=&amp;quot;java5&amp;quot;&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import weblogic.jdbc.vendor.oracle.OracleThinClob;&lt;br /&gt;
&lt;br /&gt;
import com.dosideas.dao.UnDao;&lt;br /&gt;
&lt;br /&gt;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtiene el writer del Clob.&lt;br /&gt;
     */&lt;br /&gt;
    public Writer obtenerWriter(Long id) {&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate()&lt;br /&gt;
                               .queryForObject(getQuery(), &lt;br /&gt;
                                 new Object[] {idPeticion }, &lt;br /&gt;
                                 new RowMapper() {&lt;br /&gt;
				     public Object mapRow(ResultSet resultSet, int rowNum) &lt;br /&gt;
                                                                     throws SQLException {&lt;br /&gt;
				         return (Clob) resultSet.getClob(1);&lt;br /&gt;
                                  }&lt;br /&gt;
                            });&lt;br /&gt;
        Writer writerDelClob = null;&lt;br /&gt;
 &lt;br /&gt;
        try {&lt;br /&gt;
            writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            // Tratar el error&lt;br /&gt;
        }&lt;br /&gt;
	&lt;br /&gt;
	return writerDelClob;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Para realizar la Lectura de un CLOB de Oracle, usamos tambien JDBC, y como la clase weblogic.jdbc.vendor.oracle.OracleThinClob implementa la interfaz java.sql.Clob, utilizamos los metodos de esta ultima para obtener el contenido del CLOB. La funcion getSubString nos permite obtener desde la posicion del caracter que le indiquemos, una catidad determinada e caracteres. Con el metodo length, obtenemos el tamaño del CLOB, con lo cual podemos obtener todo el contenido, o recuperarlo por una cantidad fija de caracteres, asi como lo vemos en los siguientes ejemplos:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Implementacion usando un Clob de oracle.&lt;br /&gt;
*/&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * tamano del buffer de lectura del CLOB. Dependiendo de su tamano, la&lt;br /&gt;
     * cantidad de fetch que se realizan.&lt;br /&gt;
    */&lt;br /&gt;
    public int tamanoBuffer;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerYExportarClobexportar(OutputStream writerServlet, Long id) {&lt;br /&gt;
&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                    new Object[] {id}, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        OutputStreamWriter osWriter = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            // Para escribir mas facil crea un buffer para escritura.&lt;br /&gt;
            osWriter = new OutputStreamWriter(writerServlet);&lt;br /&gt;
&lt;br /&gt;
            long tamano = clob.length();&lt;br /&gt;
            long posDesde = 1;&lt;br /&gt;
            while (desde + tamanoBuffer &amp;amp;lt; tamanoClob) {&lt;br /&gt;
                osWriter.write(clob.getSubString(posDesde, tamanoBuffer));&lt;br /&gt;
                posDesde += tamanoBuffer;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            osWriter.write(clob.getSubString(posicionDesde, new Long(tamano - posDesde + 1).intValue()));&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB &amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
/**&lt;br /&gt;
 * Implementacion usando un Clob de oracle.&lt;br /&gt;
 */&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {/**&lt;br /&gt;
  * Query que busca el Clob por id.&lt;br /&gt;
  * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
  */&lt;br /&gt;
 private String query;&lt;br /&gt;
 public void leerClob(Long id) {&lt;br /&gt;
     Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                 new Object[] {id }, new RowMapper() {&lt;br /&gt;
         public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
             return (Clob) resultSet.getClob(1);&lt;br /&gt;
         }&lt;br /&gt;
     });&lt;br /&gt;
 String contenidoClob = null;&lt;br /&gt;
 try {&lt;br /&gt;
         long tamanoClob = clob.length();&lt;br /&gt;
         contenidoClob = clob.getSubString(1, tamanoClob);&lt;br /&gt;
         System.out.println(contenidoClob);&lt;br /&gt;
     } catch (SQLException e) {&lt;br /&gt;
         String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
         throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
     } catch (IOException e) {&lt;br /&gt;
         String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
         throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
     } finally {&lt;br /&gt;
         if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
             try {&lt;br /&gt;
                 osWriter.close();&lt;br /&gt;
             } catch (IOException e) {&lt;br /&gt;
                 String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB&amp;quot;;&lt;br /&gt;
                 throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Ver también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Oracle]] &lt;br /&gt;
*[[JDBC]] &lt;br /&gt;
*[[CLOB de Oracle]] &lt;br /&gt;
*[http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] &lt;br /&gt;
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] &lt;br /&gt;
*[http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/clob.html Java Sun Clob Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]] [[Category:WebLogic]] [[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3509</id>
		<title>CLOB de Oracle en Weblogic</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3509"/>
				<updated>2009-10-19T04:42:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si tenemos una aplicación [[Java]] corriendo en [[WebLogic]] la forma de acceder a un [[CLOB de Oracle]] para escritura se maneja de una forma especial. en nuestro caso utilizamos [[JDBC]] y por consiguiente la clase '''weblogic.jdbc.vendor.oracle.OracleThinClob'''. Aqui dejamos un ejemplo: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java5=&amp;quot;java5&amp;quot;&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import weblogic.jdbc.vendor.oracle.OracleThinClob;&lt;br /&gt;
&lt;br /&gt;
import com.dosideas.dao.UnDao;&lt;br /&gt;
&lt;br /&gt;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtiene el writer del Clob.&lt;br /&gt;
     */&lt;br /&gt;
    public Writer obtenerWriter(Long id) {&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate()&lt;br /&gt;
                               .queryForObject(getQuery(), &lt;br /&gt;
                                 new Object[] {idPeticion }, &lt;br /&gt;
                                 new RowMapper() {&lt;br /&gt;
				     public Object mapRow(ResultSet resultSet, int rowNum) &lt;br /&gt;
                                                                     throws SQLException {&lt;br /&gt;
				         return (Clob) resultSet.getClob(1);&lt;br /&gt;
                                  }&lt;br /&gt;
                            });&lt;br /&gt;
        Writer writerDelClob = null;&lt;br /&gt;
 &lt;br /&gt;
        try {&lt;br /&gt;
            writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            // Tratar el error&lt;br /&gt;
        }&lt;br /&gt;
	&lt;br /&gt;
	return writerDelClob;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Para realizar la Lectura de un CLOB de Oracle, usamos tambien JDBC, y como la clase weblogic.jdbc.vendor.oracle.OracleThinClob implementa la interfaz java.sql.Clob, utilizamos los metodos de esta ultima para obtener el contenido del CLOB. La funcion getSubString nos permite obtener desde la posicion del caracter que le indiquemos, una catidad determinada e caracteres. Con el metodo length, obtenemos el tamaño del CLOB, con lo cual podemos obtener todo el contenido, o recuperarlo por una cantidad fija de caracteres, asi como lo vemos en los siguientes ejemplos:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Implementacion usando un Clob de oracle.&lt;br /&gt;
*/&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * tamano del buffer de lectura del CLOB. Dependiendo de su tamano, la&lt;br /&gt;
     * cantidad de fetch que se realizan.&lt;br /&gt;
    */&lt;br /&gt;
    public int tamanoBuffer;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerYExportarClobexportar(OutputStream writerServlet, Long id) {&lt;br /&gt;
&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                    new Object[] {id}, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        OutputStreamWriter osWriter = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            // Para escribir mas facil crea un buffer para escritura.&lt;br /&gt;
            osWriter = new OutputStreamWriter(writerServlet);&lt;br /&gt;
&lt;br /&gt;
            long tamano = clob.length();&lt;br /&gt;
            long posDesde = 1;&lt;br /&gt;
            while (desde + tamanoBuffer &amp;amp;lt; tamanoClob) {&lt;br /&gt;
                osWriter.write(clob.getSubString(posDesde, tamanoBuffer));&lt;br /&gt;
                posDesde += tamanoBuffer;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            osWriter.write(clob.getSubString(posicionDesde, new Long(tamano - posDesde + 1).intValue()));&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB &amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Implementacion usando un Clob de oracle.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
 /**&lt;br /&gt;
   * Query que busca el Clob por id.&lt;br /&gt;
   * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
   */&lt;br /&gt;
  private String query;&lt;br /&gt;
  public void leerClob(Long id) {&lt;br /&gt;
      Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                  new Object[] {id }, new RowMapper() {&lt;br /&gt;
          public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
              return (Clob) resultSet.getClob(1);&lt;br /&gt;
          }&lt;br /&gt;
      });&lt;br /&gt;
  String contenidoClob = null;&lt;br /&gt;
  try {&lt;br /&gt;
          long tamanoClob = clob.length();&lt;br /&gt;
          contenidoClob = clob.getSubString(1, tamanoClob);&lt;br /&gt;
          System.out.println(contenidoClob);&lt;br /&gt;
      } catch (SQLException e) {&lt;br /&gt;
          String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
          throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
      } catch (IOException e) {&lt;br /&gt;
          String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
          throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
      } finally {&lt;br /&gt;
          if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
              try {&lt;br /&gt;
                  osWriter.close();&lt;br /&gt;
              } catch (IOException e) {&lt;br /&gt;
                  String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB&amp;quot;;&lt;br /&gt;
                  throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
              }&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Ver también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Oracle]] &lt;br /&gt;
*[[JDBC]] &lt;br /&gt;
*[[CLOB de Oracle]] &lt;br /&gt;
*[http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] &lt;br /&gt;
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] &lt;br /&gt;
*[http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/clob.html Java Sun Clob Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]] [[Category:WebLogic]] [[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3508</id>
		<title>CLOB de Oracle en Weblogic</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3508"/>
				<updated>2009-10-19T04:39:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si tenemos una aplicación [[Java]] corriendo en [[WebLogic]] la forma de acceder a un [[CLOB de Oracle]] para escritura se maneja de una forma especial. en nuestro caso utilizamos [[JDBC]] y por consiguiente la clase '''weblogic.jdbc.vendor.oracle.OracleThinClob'''. Aqui dejamos un ejemplo: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java5=&amp;quot;java5&amp;quot;&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import weblogic.jdbc.vendor.oracle.OracleThinClob;&lt;br /&gt;
&lt;br /&gt;
import com.dosideas.dao.UnDao;&lt;br /&gt;
&lt;br /&gt;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtiene el writer del Clob.&lt;br /&gt;
     */&lt;br /&gt;
    public Writer obtenerWriter(Long id) {&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate()&lt;br /&gt;
                               .queryForObject(getQuery(), &lt;br /&gt;
                                 new Object[] {idPeticion }, &lt;br /&gt;
                                 new RowMapper() {&lt;br /&gt;
				     public Object mapRow(ResultSet resultSet, int rowNum) &lt;br /&gt;
                                                                     throws SQLException {&lt;br /&gt;
				         return (Clob) resultSet.getClob(1);&lt;br /&gt;
                                  }&lt;br /&gt;
                            });&lt;br /&gt;
        Writer writerDelClob = null;&lt;br /&gt;
 &lt;br /&gt;
        try {&lt;br /&gt;
            writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            // Tratar el error&lt;br /&gt;
        }&lt;br /&gt;
	&lt;br /&gt;
	return writerDelClob;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Para realizar la Lectura de un CLOB de Oracle, usamos tambien JDBC, y como la clase weblogic.jdbc.vendor.oracle.OracleThinClob implementa la interfaz java.sql.Clob, utilizamos los metodos de esta ultima para obtener el contenido del CLOB. La funcion getSubString nos permite obtener desde la posicion del caracter que le indiquemos, una catidad determinada e caracteres. Con el metodo length, obtenemos el tamaño del CLOB, con lo cual podemos obtener todo el contenido, o recuperarlo por una cantidad fija de caracteres, asi como lo vemos en los siguientes ejemplos:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Implementacion usando un Clob de oracle.&lt;br /&gt;
*/&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * tamano del buffer de lectura del CLOB. Dependiendo de su tamano, la&lt;br /&gt;
     * cantidad de fetch que se realizan.&lt;br /&gt;
    */&lt;br /&gt;
    public int tamanoBuffer;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerYExportarClobexportar(OutputStream writerServlet, Long id) {&lt;br /&gt;
&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                    new Object[] {id}, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        OutputStreamWriter osWriter = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            // Para escribir mas facil crea un buffer para escritura.&lt;br /&gt;
            osWriter = new OutputStreamWriter(writerServlet);&lt;br /&gt;
&lt;br /&gt;
            long tamano = clob.length();&lt;br /&gt;
            long posDesde = 1;&lt;br /&gt;
            while (desde + tamanoBuffer &amp;amp;lt; tamanoClob) {&lt;br /&gt;
                osWriter.write(clob.getSubString(posDesde, tamanoBuffer));&lt;br /&gt;
                posDesde += tamanoBuffer;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            osWriter.write(clob.getSubString(posicionDesde, new Long(tamano - posDesde + 1).intValue()));&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB &amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Implementacion usando un Clob de oracle.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
  /**&lt;br /&gt;
    * Query que busca el Clob por id.&lt;br /&gt;
    * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID =&amp;amp;nbsp;?&amp;amp;nbsp;;&lt;br /&gt;
    */&lt;br /&gt;
   private String query;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerClob(Long id) {&lt;br /&gt;
       Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), &lt;br /&gt;
                                                   new Object[] {id }, new RowMapper() {&lt;br /&gt;
           public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
               return (Clob) resultSet.getClob(1);&lt;br /&gt;
           }&lt;br /&gt;
       });&lt;br /&gt;
&lt;br /&gt;
       String contenidoClob = null;&lt;br /&gt;
&lt;br /&gt;
       try {&lt;br /&gt;
           long tamanoClob = clob.length();&lt;br /&gt;
           contenidoClob = clob.getSubString(1, tamanoClob);&lt;br /&gt;
           System.out.println(contenidoClob);&lt;br /&gt;
       } catch (SQLException e) {&lt;br /&gt;
           String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
           throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
       } catch (IOException e) {&lt;br /&gt;
           String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
           throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
       } finally {&lt;br /&gt;
           if (osWriter&amp;amp;nbsp;!= null) {&lt;br /&gt;
               try {&lt;br /&gt;
                   osWriter.close();&lt;br /&gt;
               } catch (IOException e) {&lt;br /&gt;
                   String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB&amp;quot;;&lt;br /&gt;
                   throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
               }&lt;br /&gt;
           }&lt;br /&gt;
       }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Ver también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Oracle]] &lt;br /&gt;
*[[JDBC]] &lt;br /&gt;
*[[CLOB de Oracle]] &lt;br /&gt;
*[http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] &lt;br /&gt;
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server] &lt;br /&gt;
*[http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/clob.html&lt;br /&gt;
&lt;br /&gt;
java Sun Clob Guide] &lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]] [[Category:WebLogic]] [[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	<entry>
		<id>https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3507</id>
		<title>CLOB de Oracle en Weblogic</title>
		<link rel="alternate" type="text/html" href="https://dosideas.com/wiki/index.php?title=CLOB_de_Oracle_en_Weblogic&amp;diff=3507"/>
				<updated>2009-10-19T04:28:15Z</updated>
		
		<summary type="html">&lt;p&gt;Mganuza: /* Ver también */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Si tenemos una aplicación [[Java]] corriendo en [[WebLogic]] la forma de acceder a un [[CLOB de Oracle]] para escritura se maneja de una forma especial. en nuestro caso utilizamos [[JDBC]] y por consiguiente la clase '''weblogic.jdbc.vendor.oracle.OracleThinClob'''. Aqui dejamos un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code java5&amp;gt;import java.io.IOException;&lt;br /&gt;
import java.io.Writer;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import weblogic.jdbc.vendor.oracle.OracleThinClob;&lt;br /&gt;
&lt;br /&gt;
import com.dosideas.dao.UnDao;&lt;br /&gt;
&lt;br /&gt;
public class UnDaoImpl extends JdbcDaoSupport implements UnDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? FOR UPDATE;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Obtiene el writer del Clob.&lt;br /&gt;
     */&lt;br /&gt;
    public Writer obtenerWriter(Long id) {&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate()&lt;br /&gt;
                               .queryForObject(getQuery(), &lt;br /&gt;
                                 new Object[] {idPeticion }, &lt;br /&gt;
                                 new RowMapper() {&lt;br /&gt;
				     public Object mapRow(ResultSet resultSet, int rowNum) &lt;br /&gt;
                                                                     throws SQLException {&lt;br /&gt;
				         return (Clob) resultSet.getClob(1);&lt;br /&gt;
                                  }&lt;br /&gt;
                            });&lt;br /&gt;
        Writer writerDelClob = null;&lt;br /&gt;
 &lt;br /&gt;
        try {&lt;br /&gt;
            writerDelClob = ((OracleThinClob) clobReporte).getCharacterOutputStream();&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            // Tratar el error&lt;br /&gt;
        }&lt;br /&gt;
	&lt;br /&gt;
	return writerDelClob;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para realizar la Lectura de un CLOB de Oracle, usamos tambien JDBC, y como la clase weblogic.jdbc.vendor.oracle.OracleThinClob implementa la interfaz java.sql.Clob, utilizamos los metodos de esta ultima para obtener el contenido del CLOB. La funcion getSubString nos permite obtener desde la posicion del caracter que le indiquemos, una catidad determinada e caracteres. Con el metodo length, obtenemos el tamaño del CLOB, con lo cual podemos obtener todo el contenido, o recuperarlo por una cantidad fija de caracteres, asi como lo vemos en los siguientes ejemplos:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.OutputStreamWriter;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
* Implementacion usando un Clob de oracle.&lt;br /&gt;
*/&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? ;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * tamano del buffer de lectura del CLOB. Dependiendo de su tamano, la&lt;br /&gt;
     * cantidad de fetch que se realizan.&lt;br /&gt;
    */&lt;br /&gt;
    public int tamanoBuffer;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public void leerYExportarClobexportar(OutputStream writerServlet, Long id) {&lt;br /&gt;
&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), new Object[] {idPeticion }, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        OutputStreamWriter osWriter = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            // Para escribir mas facil crea un buffer para escritura.&lt;br /&gt;
            osWriter = new OutputStreamWriter(writerServlet);&lt;br /&gt;
&lt;br /&gt;
            long tamanoClob = clob.length();&lt;br /&gt;
            long posicionDesde = 1;&lt;br /&gt;
            while (posicionDesde + tamanoBuffer &amp;amp;lt; tamanoClob) {&lt;br /&gt;
                osWriter.write(clob.getSubString(posicionDesde, tamanoBuffer));&lt;br /&gt;
                posicionDesde += tamanoBuffer;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            osWriter.write(clob.getSubString(posicionDesde, new Long(tamanoClob - posicionDesde + 1).intValue()));&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter != null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB ID :[&amp;quot; + id+ &amp;quot;]&amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.sql.Clob;&lt;br /&gt;
import java.sql.ResultSet;&lt;br /&gt;
import java.sql.SQLException;&lt;br /&gt;
import org.springframework.dao.DataAccessResourceFailureException;&lt;br /&gt;
import org.springframework.jdbc.core.RowMapper;&lt;br /&gt;
import org.springframework.jdbc.core.support.JdbcDaoSupport;&lt;br /&gt;
&lt;br /&gt;
import com.tm.sera.dao.ClobReaderDao;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Implementacion usando un Clob de oracle.&lt;br /&gt;
 */&lt;br /&gt;
public class ClobReaderDaoImpl extends JdbcDaoSupport implements ClobReaderDao {&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Query que busca el Clob por id.&lt;br /&gt;
     * SELECT ARCHIVO FROM TABLA_CON_ARCHIVO WHERE ID = ? ;&lt;br /&gt;
     */&lt;br /&gt;
    private String query;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    public void leerClob(Long id) {&lt;br /&gt;
		&lt;br /&gt;
        Clob clobReporte = (Clob) getJdbcTemplate().queryForObject(getQuery(), new Object[] {idPeticion }, new RowMapper() {&lt;br /&gt;
            public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {&lt;br /&gt;
                return (Clob) resultSet.getClob(1);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        String contenidoClob = null;&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            long tamanoClob = clob.length();&lt;br /&gt;
&lt;br /&gt;
            contenidoClob = clob.getSubString(1, tamanoClob);&lt;br /&gt;
            System.out.println(contenidoClob);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        } catch (SQLException e) {&lt;br /&gt;
&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al buscar CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } catch (IOException e) {&lt;br /&gt;
            String mensaje = &amp;quot;Ocurrio un error al acceder al CLOB por ID:[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
            throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (osWriter != null) {&lt;br /&gt;
                try {&lt;br /&gt;
                    osWriter.close();&lt;br /&gt;
                } catch (IOException e) {&lt;br /&gt;
                    String mensaje = &amp;quot;Ocurrio un error al cerrar la conexion para lectura del CLOB ID :[&amp;quot; + id+ &amp;quot;]&amp;quot;;&lt;br /&gt;
                    throw new DataAccessResourceFailureException(mensaje, e);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ver también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Oracle]] &lt;br /&gt;
*[[JDBC]] &lt;br /&gt;
*[[CLOB de Oracle]] &lt;br /&gt;
*[http://www.oracle.com/technology/docs/tech/java/sqlj_jdbc/doc_library/javadoc/oracle.sql.CLOB.html Javadoc CLOB] &lt;br /&gt;
*[http://download.oracle.com/docs/cd/E13222_01/wls/docs91/jdbc/thirdparty.html#1045809 Using Third-Party Drivers with WebLogic Server]&lt;br /&gt;
*[http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/clob.html&lt;br /&gt;
java Sun Clob Guide]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oracle]] [[Category:WebLogic]] [[Category:Java]]&lt;/div&gt;</summary>
		<author><name>Mganuza</name></author>	</entry>

	</feed>