guía para upgrade a la versión 3urudata.com/documentos/qflow36/guia para upgrade a q-flow...

14
Guía para upgrade a la versión 3.6 Setiembre 2015

Upload: others

Post on 23-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para upgrade a la versión

3.6

Setiembre 2015

Page 2: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 1

Índice Tareas previas ............................................................................................................................................... 3

Actualización ................................................................................................................................................. 3

Consideraciones de migración desde Q-flow 3.5 o anterior......................................................................... 4

Eliminación de servicio de envío de notificaciones Simple MAPI ............................................................. 4

Actualización de las Web Parts de SharePoint ......................................................................................... 4

Cambios en el cuadro de texto enriquecido ............................................................................................. 4

Cambios relacionados con localización en tiempo de ejecución .............................................................. 4

Cambios en el formato de exportación .................................................................................................... 5

Consideraciones de migración desde Q-flow 3.4 o anterior......................................................................... 5

Requisitos de software de base ................................................................................................................ 5

Sistema Operativo ................................................................................................................................. 5

SQL Server ............................................................................................................................................. 5

Oracle .................................................................................................................................................... 5

ASP.NET ..................................................................................................................................................... 6

Configuración de sistema .......................................................................................................................... 6

Código personalizado ................................................................................................................................ 6

Acciones temporales en días .................................................................................................................... 6

Cambios en Web Services ......................................................................................................................... 6

Verificación de consistencia de datos ingresados programáticamente ................................................... 6

Control de tipo de datos de aplicación ................................................................................................. 6

Control de cantidad de instancias de datos y roles .............................................................................. 7

Consideraciones de migración desde Q-flow 3.3 o anterior......................................................................... 7

Formularios personalizados ...................................................................................................................... 7

Cambios en validaciones del lado del cliente ....................................................................................... 7

Cambios en validaciones del lado del servidor ..................................................................................... 7

Diseño de procesos ................................................................................................................................... 7

Base de datos ............................................................................................................................................ 8

Exportación e importación ........................................................................................................................ 8

Consideraciones de migración desde Q-flow 3.2 o anterior......................................................................... 8

Page 3: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 2

Formularios personalizados ...................................................................................................................... 8

Cambio en MasterPage predeterminada .............................................................................................. 8

Hojas de estilos (CSS) ................................................................................................................................ 8

Cambios en estilos de multivaluados .................................................................................................... 8

Consideraciones de migración desde Q-flow 3.1 o anterior......................................................................... 9

Formularios personalizados ...................................................................................................................... 9

Diálogos modales .................................................................................................................................. 9

Manejo de líneas y multivaluados ........................................................................................................ 9

Generación dinámica de controles ....................................................................................................... 9

Diseñador de procesos ............................................................................................................................ 10

Consideraciones de migración desde Q-flow 3.05 o anterior .................................................................... 10

Cola de mensajes .................................................................................................................................... 10

Consideraciones para migración de datos en Base de Personalización ................................................. 10

Consideraciones de acceso a datos de aplicación para actualización de Base de Datos ....................... 11

Compatibilidad de funcionalidades con versiones de Servidor de Base de Datos ................................. 11

Consideraciones de migración desde Q-flow 3.03 o anterior .................................................................... 11

Uso de Ajax ............................................................................................................................................. 11

Consideraciones de migración desde Q-flow 3.01 o anterior .................................................................... 12

Formularios personalizados .................................................................................................................... 12

Page 4: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 3

Tareas previas

1. Leer atentamente la sección Actualización de Q-flow del manual de Instalación y Configuración

de Q-flow 3.6. Allí encontrará indicaciones precisas de cómo actualizar Q-flow. Este documento

es complementario.

2. Bajar todos los servicios de Q-flow

3. Realizar un backup full de la base de datos

a. Generalmente se le da el nombre Qflow3, aunque puede tener otro nombre.

4. Realizar un backup de las carpetas de servicios y del sitio web:

a. <%ProgramFiles%>\Urudata, donde <%ProgramFiles%> debe sustituirse por la carpeta

donde se instalan los programas en la computadora que tiene instalado Q-flow.

b. <%wwwroot%>\QflowWebSite, donde <%wwwroot%> es la carpeta donde se instalan

por defecto las aplicaciones web. Esta carpeta se encuentra normalmente en:

“c:\inetpub\wwwroot”.

Actualización

1. En el Panel de control de Windows, abra la ventana Agregar y quitar programas.

a. Desinstale todos los componentes de Q-flow. Estos son:

i. Q-flow Backend services

ii. Q-flow BPA

iii. Q-flow BPM

iv. Q-flow OMM

v. Q-flow Web Services

vi. Q-flow Web Site

vii. Q-flow Mobile Site

2. Acceder al instalador de la nueva versión y ejecutar Setup.exe

a. Seleccionar Standard Setup

b. Ejecutar el instalador de la base de datos

i. Seleccionar Update Q-flow database

ii. Asegúrese de indicar correctamente los parámetros solicitados

c. Instalar los servicios de backend

d. Instalar el sitio web de Q-flow

e. Instalar los web services (opcional)

f. Instalar el sitio mobile de Q-flow (opcional)

g. Por último instale las herramientas de diseño de procesos, administración del

organigrama y el administrador de procesos.

Page 5: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 4

Consideraciones de migración desde Q-flow 3.5 o anterior

Eliminación de servicio de envío de notificaciones Simple MAPI El servicio de notificaciones Simple MAPI deja de estar disponible como parte del producto. Se

recomienda reemplazar su uso por el nuevo servicio de envío de notificaciones Exchange Web Services.

Actualización de las Web Parts de SharePoint Las web parts de SharePoint han sido actualizadas para ser distribuídas como un solution package (wsp).

Por este motivo la nueva versión de las web parts se soporta solamente en versiones de SharePoint

2010 y posteriores.

Si su organización utiliza la versión anterior de las web parts en SharePoint 2003 o 2007, puede seguir

usándolas. Sin embargo la versión anterior de las web parts no se mantendrá, y a futuro podrían surgir

cambios en los web services que generen incompatibilidades.

Cambios en el cuadro de texto enriquecido Producto de la corrección de algunos problemas que presentaba el cuadro de texto enriquecido, se

debió cambiar el identificador de cliente (atributo id en JavaScript) generado por el control. Esto afecta

exclusivamente a scripts que utilizan el identificador directamente, sin afectar en lo absoluto scripts que

manipulen el control a través de las funciones GetDataElement o Host.GetData, provistas por Q-flow.

Cambios relacionados con localización en tiempo de ejecución Se realizan algunas correcciones al manejo de localización en tiempo de ejecución, que en algunos casos

no se estaba manejando consistentemente. Los cambios son los siguientes:

En código personalizado (pasos de código, eventos, integraciones) se fija el idioma utilizado para

interpretar valores de tipo string al momento de asignar valores a datos de tipo numérico o

fecha. Hasta ahora el texto se estaba interpretando en el idioma de la cuenta con que

ejecutaban los servicios, pero de ahora se interpretará en cultura invariante (inglés). A modo de

ejemplo analizar la siguiente sentencia:

Host.GetData("número").Value = "1.23";

La sentencia anterior tenía un comportamiento diferente en un servidor en español que en otro

que se encontraba en inglés. Notar que si se estaba utilizando objetos de tipos numéricos (como

int o decimal) o fechas (DateTime) este cambio no afectará en nada y el código seguirá

funcionando igual que antes. A modo de ejemplo, la siguiente sentencia no cambia su

significado en lo absoluto:

Host.GetData("número").Value = 1.23;

Page 6: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 5

En la API de código personalizado se elimina la propiedad Culture disponible en objetos de tipo

User. Dicha propiedad no proporcionaba información útil, ya que los usuarios en Q-flow no

tienen asociado un idioma a nivel de sistema.

En el reemplazo de etiquetas, usadas por ejemplo en los asuntos de los pasos interactivos, se

pasa a usar el formato del idioma de la cuenta del usuario con que ejecutan los servicios. Esto

afecta básicamente cómo se despliegan etiquetas correspondientes a datos de tipo fecha y

números con decimales, que son las únicas afectadas por el idioma. Previamente se estaba

usando el idioma de instalación de Windows, el cual es más dificíl de cambiar y suele no ser el

esperado por un usuario final.

Cambios en el formato de exportación Se realizan cambios menores en el formato de algunos archivos de exportación. Los cambios se

describen a continuación:

Para los indicadores (KPI), las propiedades Top y Bottom de los rangos pasan a ser números con

decimales, previamente eran strings.

Para los roles de template, las restricciones pasan a ser nuevos objetos, con propiedades para

dar soporte a la aplicación de reglas.

Consideraciones de migración desde Q-flow 3.4 o anterior

Requisitos de software de base Con la migración de Q-flow al .NET Framework 4.5.1, se producen cambios en el software de base

requerido. A continuación se detallan los requisitos de software de base.

Sistema Operativo

Para el servidor:

Windows Server 2008 SP2

Windows Server 2008 R2 SP1

Windows Server 2012

Para equipos clientes:

Windows 7 SP1

Windows 8

SQL Server

SQL Server 2008

Oracle

Oracle 10g R2 con cliente ODP.NET 12c

Page 7: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 6

ASP.NET Los sitios web y web services pasan a usar ASP.NET 4.0 con pipeline integrado. Si utiliza un application

pool específico para Q-flow debe reconfigurarlo, sino pase a usar algún application pool que cumpla los

requisitos mencionados.

Configuración de sistema En lo que respecta a los proveedores de base de datos, ya no se distingue la versión del mismo, pasando

a ser los valores aceptados únicamente "SQLServer" y "Oracle". Tener esto en cuenta en caso de

reutilizar un archivo system.config anterior.

Código personalizado Con la migración al .NET Framework 4.5.1, todo el código personalizado y los formularios pasan a

ejecutarse en la nueva versión. Si bien es poco probable, es posible que su código personalizado tenga

alguna incompatibilidad con esta versión. Le recomendamos revisar la documentación sobre los cambios

que podrían generar problemas, consultando el siguiente vínculo: http://msdn.microsoft.com/en-

us/library/ee941656%28VS.100%29.aspx#core

Acciones temporales en días Se cambia el comportamiento de las acciones temporales éspecificadas en días, para que cuenten la

cantidad de días de trabajo en lugar de contar 24 horas laborales. Tenerlo en cuenta si se tienen

acciones temporales de este tipo.

Cambios en Web Services Las funciones GetUsersByExtendedProperties y GetUsersInGroup de WebOrganization devuelven ahora

un objeto de tipo SimpleUserMessage que contiene solamente las propiedades básicas de los usuarios.

Verificación de consistencia de datos ingresados programáticamente

Control de tipo de datos de aplicación

En la presente versión se implementan funcionalidades que requieren convertir datos de aplicación de

su representación en texto al tipo de datos nativo. Por ejemplo, los datos de aplicación de tipo numérico

se guardan en base de datos en una representación de texto en cultura invariante (inglés), pero ciertas

funcionalidades lo convierten al número equivalente.

El problema de compatibilidad radica en que los datos podrían guardar texto que no es convertible al

tipo de datos especificado. Esto solo se puede conseguir utilizando programación, ya que los controles

de formularios de Q-flow no permiten inconsistencias en el tipo de datos. A modo de ejemplo, si en un

formulario personalizado se asignaba programáticamente el valor “Hola mundo!” a un dato de tipo

numérico, Q-flow tomaba dicho valor y lo guardaba en la base de datos a pesar de ser inválido.

Si se da un caso como el mencionado es casi seguro que la actualización fallará, con un mensaje

indicando que falló la conversión numérica. Desafortunadamente no hay una forma automática de

Page 8: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 7

resolver estos casos, ya que modificar los valores podría resultar en pérdida de información. Las

alternativas son cambiar el tipo de datos a texto, que no impone restricciones de formato, o resolver las

inconsistencias caso por caso.

Control de cantidad de instancias de datos y roles

A partir de ahora se realiza un control de la cantidad de valores que se proveen para datos y roles al

momento de iniciar flows o responder tareas. Si bien los controles de formularios de Q-flow no permiten

que la cantidad de valores ingresados sea inconsistente con el alcance del dato o rol, sí era posible lograr

inconsistencias si se utilizaba programación para cargar los valores, ya sea usando formularios

personalizados o web services.

El control ahora realizado afecta a flows en donde se dan este tipo de inconsistencias. Si recibe mensajes

de error de que un dato o rol tiene demasiadas o muy pocas instancias, verifique el mismo sea (o no)

multivaluado y que imponga restricciones consistentes en la cantidad de instancias permitidas.

Consideraciones de migración desde Q-flow 3.3 o anterior

Formularios personalizados

Cambios en validaciones del lado del cliente

La forma en que se generan los identificadores de cliente1 para datos y roles multivaluados ha sido

modificada. Esto afecta solamente a validaciones que utilicen los identificadores escritos directamente

en javascript (“hardcoded”), no afecta a validaciones que utilicen las funciones de la API de Q-flow.

Los cuadros de texto numérico ahora utilizan el atributo onkeydown. Esto es algo a tener en cuenta para

dominios personalizados que utilicen dicho atributo, ya que de ahora en más no podrán hacerlo con

éxito. En estos casos lo que se recomienda es agregar dinámicamente el manejador al evento keydown,

lo cual se puede hacer al cargar la página usando la función addEventListener, por ejemplo.

Cambios en validaciones del lado del servidor

Se cambió la interfaz del control de formularios para el manejo de adjuntos

(Qframework.Web.Interaction.Attachments). Si bien oficialmente el manejo de adjuntos utilizando

dicho control no estaba soportado, era posible realizar algunas operaciones con algo de esfuerzo.

Quienes usaban dicho control para manejar adjuntos, deberán ahora usar las nuevas funciones

diseñadas para el manejo de adjuntos desde formularios personalizados.

Diseño de procesos

Se cambió la estructura de los archivos utilizados para almacenar localmente los datos no protegidos al

diseñar procesos en el BPM. Si bien siempre fue conveniente, en esta versión es fundamental asegurarse

1 Atributo id de HTML.

Page 9: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 8

de hacer check in de los cambios locales antes de migrar a la nueva versión, de lo contrario podría

perderse la información local.

Se cambió el algoritmo utilizado para dibujar las aristas y sus etiquetas, por lo que es posible que los

diseños de procesos no se muestren exactamente igual que en versiones anteriores. De todos modos se

hizo hincapié en mantener compatibilidad por lo que si existen cambios estos deberían ser menores.

Base de datos

Se hicieron grandes cambios en el esquema de base de datos, puntualmente en tablas relacionadas con

la definición de los procesos. Si se dispone de reportes que acceden a la base de Q-flow y en particular

obtienen datos relacionados con el diseño de procesos, se recomienda revisarlos.

Exportación e importación

El formato del archivo de exportación e importación del modelo organizacional tiene grandes cambios

en esta versión. Archivos exportados en versiones anteriores no podrán ser importados en esta versión.

Consideraciones de migración desde Q-flow 3.2 o anterior

Formularios personalizados

Cambio en MasterPage predeterminada

En la MasterPage utilizada en los formularios por defecto se modificó la sobrecarga de la función

EnablePrint , la cual recibía dos argumentos y ahora pasa a recibir uno solo. Esto puede generar un error

de compilación en formularios personalizados que reutilicen ese código.

De ser el caso, el problema se corrige modificando en el formulario personalizado la invocación a

EnablePrint pasando únicamente el primero de los argumentos.

Hojas de estilos (CSS)

Cambios en estilos de multivaluados

Debido a cambios realizados para permitir la personalización de líneas y multivaluados, se cambiaron las

clases CSS utilizadas.

En esta versión se reemplaza la clase CSS instanceButton definida en Styles.css por las clases

addInstanceButton y removeInstanceButton. Si su organización utiliza un skin personalizado, se

recomienda copiar estas nuevas clases desde alguno de los skins predeterminados (Jade o Sapphire) a su

hoja de estilos

Por más información sobre los skins y su personalización referirse a la sección “Personalización” del

manual del Sitio web.

Page 10: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 9

Consideraciones de migración desde Q-flow 3.1 o anterior

Formularios personalizados

Diálogos modales

El control de fecha y el selector de ítems se compatibilizaron con dispositivos móviles, y en consecuencia

ya no abren diálogos modales para desplegar su contenido.

Si se usaba la página de calendario, ésta no estará disponible ya que ahora no es una página

independiente.

Si se dependía del bloqueo que ejerce un diálogo modal antes de seleccionar un valor, un script

podría dejar de funcionar ya que no se abren diálogos modales y por lo tanto no existe el

bloqueo mencionado.

Manejo de líneas y multivaluados

Se refactoreó el manejo de líneas y multivaluados para simplificar el código y permitir establecer y

consumir valores de los controles a través de una API consistente.

Este cambio podría llegar a ocasionar problemas en formularios personalizados que accedieran al árbol

de controles de las líneas o realizaran otras operaciones complejas.

Se cambió un mecanismo Ajax personalizado, por update panels. Cambió la estructura de controles que

se generan para líneas y multivaluados, por lo que si se accedía a instancias de controles dentro de

líneas o multivaluados accediendo al árbol de controles hijos, es probable que ese código ya no

funcione.

La función que hay que utilizar en lugar de este mecanismo es Interaction.GetDataControl, o

directamente utilizar los nuevos métodos que se definieron en los controles de los formularios

personalizados para acceder a sus valores (opción recomendada si está identificado el dato).

Generación dinámica de controles

En formularios personalizados donde se alterna la generación dinámica de controles a través del método

Interaction.GetGroupPanels con algunos controles fijos pueden haber problemas.

El problema se puede dar si se llama al método GetGroupPanels y dependiendo de algún criterio, por

ejemplo el grouping text, se determina si el grupo se debe agregar o no a la página. Si a su vez se definen

controles a través del uso del control Data o Line, esto puede causar errores de ViewState.

Si se usan sólo controles Data/Line, o sólo generación dinámica a través de GetGroupPanels no hay

problemas.

El problema se soluciona iterando en la colección de paneles a través de Interaction.GetDataGroups y

luego llamando a la función Interaction.GetGroupPanel(groupName).

Page 11: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 10

Diseñador de procesos Se corrigió la forma en que se evalúan las expresiones del paso de evaluación, respetando la

precedencia usual de los operadores NOT, AND y OR.

Esto no afecta a las evaluaciones que usaban paréntesis. Sí podría afectar a evaluaciones donde se

ejecutaban operaciones por distintos operadores sin agruparlos en paréntesis, ya que antes no se

tomaba una precedencia de operadores sino que venía dada por el orden en que aparecían los

operadores en la consulta.

Consideraciones de migración desde Q-flow 3.05 o anterior

Cola de mensajes Asegúrese que las colas de mensajes creadas por Q-flow (de novedades y notificaciones) estén vacías.

Esto es especialmente importante si usted está migrando a Q-flow 3.1 o posterior, ya que las colas de

mensajes dejan de ser utilizadas a partir de dicha versión, por lo que cualquier mensaje pendiente no

será procesado por los motores. En caso de que la cola no esté vacía, deshabilite el acceso web de Q-

flow y los Web Services, de modo que no se realicen operaciones nuevas sobre el sistema, y espere a

que el back-end procese todos los mensajes pendientes.

Las colas de mensajes creadas por Q-flow se encuentran dentro de las colas privadas en la

administración de Servicios y Aplicaciones de Windows.

Consideraciones para migración de datos en Base de Personalización A partir de su versión 3.1 Q-flow incluye la posibilidad de almacenar los datos de la Base de

Personalización, en la misma base de Q-flow, de modo que quede integrada y no se necesite un

proveedor externo. Si usted está haciendo una actualización de una versión 3.05 o anterior a una

versión 3.1 o posterior, tiene la posibilidad de seguir utilizando la base de personalización tal cual lo

estaba haciendo, o de migrar los datos y utilizar el nuevo método. Vale la pena aclarar que al utilizar el

nuevo modelo la conexión a la base de datos se realiza a través del back-end de Q-flow, por lo que se

elimina una conexión directa del front-end a la base de datos.

Si usted desea seguir utilizando la misma base de personalización, luego de la instalación del Sitio Web

de Q-flow debe reemplazar el archivo Web.Config del sitio web, para que acceda a esa BD de

personalización.

Si usted desea utilizar la nueva base de personalización, y tiene datos que desea conservar en la base

anterior, debe realizar una migración de esos datos, utilizando la herramienta de Migración que puede

descargar de aquí (esta herramienta solo está disponible para migración de base de datos SQL Server).

Page 12: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 11

Para realizar la migración, ejecute la herramienta, introduzca la información de servidor nombre de base

de datos y credenciales para acceder a la base de personalización, y la información de servidor, base de

datos y credenciales para acceder a la base de Q-flow, y clickear en el botón “Ejecutar Migración”

Es importante realizar esta migración antes de empezar a utilizar el nuevo sistema de almacenamiento

de los datos de personalización, ya que la migración sobreescribirá cualquier dato almacenado en la

base de destino.

Consideraciones de acceso a datos de aplicación para actualización de Base de

Datos Si está actualizando Q-flow desde la versión 3.05 o anterior a 3.1 o posterior, el mecanismo de

almacenamiento de los datos en la tabla FlowData se ha modificado, por lo cual si usted tiene reportes

que consultan directamente dicha tabla, u otras aplicaciones que acceden a dicha información

directamente, y no a través de las funciones expuestas por Q-flow, éstas probablemente dejen de

funcionar correctamente y deberán ser modificadas para contemplar dichos cambios.

A su vez, la actualización de la base de datos puede demorar unos minutos o incluso horas dependiendo

del tamaño de la Base de Datos FlowData, ya que se actualizan todos sus datos. También tenga en

cuenta que durante este proceso la performance del motor de base de datos se verá afectada, dado el

intenso uso de recursos que se dará lugar durante esta migración.

Compatibilidad de funcionalidades con versiones de Servidor de Base de

Datos Una de las nuevas funcionalidades a partir de la versión 3.1 de Q-flow es la posibilidad de incluir datos

multivaluados en las búsquedas, y que éstas se realicen sobre todos los valores de los datos. Esta

funcionalidad está disponible sólo si su servidor de Base de Datos es SQL Server 2008 o posterior u

Oracle 11 o posterior.

Consideraciones de migración desde Q-flow 3.03 o anterior A partir de 3.04 se incorpora un nuevo recurso “master page” al sitio de Q-flow llamado

CustomFormMaster.master. Éste a su vez hereda de ContentMaster.master que ya existía

anteriormente.

Para el correcto funcionamiento de sus formularios personalizados, los mismos deben utilizar la nueva

master page (CustomFormMaster.master).

Uso de Ajax Si usted desea migrar de 3.03 o anterior y utiliza los controles de AJAX en sus formularios personalizados

debe tener en cuenta este capítulo.

Page 13: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 12

El problema de compatibilidad se genera debido a que se agregó a ContentMaster.master el control

ScriptManager de Ajax para que todas las páginas del sitio web de Q-flow puedan utilizarlo. De esta

forma, si usted tiene formularios personalizados que definen este control, el mismo estará repetido y

generará un error de tiempo de ejecución.

Solución: si usa el control ScriptManager o ToolScriptManager para trabajar con controles Ajax (por

ejemplo UpdatePanel), simplemente debe borrar de su página dicho control. Si a su vez utiliza otras

características Ajax, tales como registrar js o un web services, reemplace el control ScriptManager por el

control ScriptManagerProxy.

Consideraciones de migración desde Q-flow 3.01 o anterior

Formularios personalizados Si sus procesos utilizan formularios personalizados deberá realizar las siguientes modificaciones para

que estos funcionen correctamente.

Un cambio importante es el refactor que se realizó a nivel de proyectos. Este refactor permite separar

aquellos componentes que antes eran exclusivos de Q-flow a proyectos separados que son reutilizados

por diferentes aplicaciones, como por ejemplo Q-expeditive. Estos componentes pertenecen ahora al

namespace “Qframework”, lo que implica algunos cambios en las importaciones realizadas en

formularios personalizados. Algunos de los cambios detectados son los siguientes:

El namespace Qflow.Common.Exceptions cambió a Qframework.Common.Exceptions, por lo

que si se lo incluye en el code behind es necesario cambiar la sentencia de importación.

Los controles estándar de Q-flow pasaron de la dll Qflow.Web (namespace Qflow.Web.Controls)

a Qframework.Web (namespace Qframework.Web.Controls), por lo que si se hacía uso de estos

controles en el markup, es necesario cambiar las referencias.

Un cambio importante es que las referencias en el code behind a la propiedad Interaction se

deben cambiar por referencias a la propiedad FlowInteraction. Donde se utilice esta nueva

propiedad es necesario importar el namespace Qframework.Web.Interaction.

Los mensajes fueron movidos al namespace Qframework.BusinessLayer.Messages.Interaction. Si

se hace referencia a esos mensajes es necesario agregar la importación de ese namespace.

La gran mayoría de los enumerados fueron movidos del namespace Qflow.Common a

Qframework.Common, como es el caso de ItemScope.

Esta lista de cambios no está cerrada, puede ser que existan otros cambios de namespace según las

clases que fueran utilizadas en formularios personalizados. En caso de utilizar alguna clase que no se

encuentra dentro de los namespaces aquí sugeridos se recomienda como pauta general buscar una

clase con el mismo nombre en un namespace similar cuyo nombre comience por “Qframework”, pues es

el lugar más probable donde encontrarla.

Page 14: Guía para upgrade a la versión 3urudata.com/documentos/qflow36/Guia para Upgrade a Q-flow 3.6.pdf · Por ejemplo, los datos de aplicación de tipo numérico se guardan en base de

Guía para Upgrade a Q-flow 3.6 13

Adicionalmente, debido a una mejora del comportamiento del control “Submit” de Q-flow, surgen

algunos cambios en lo que respecta a validaciones client-side en formularios personalizados. En la

versión anterior era posible agregar rutinas de validación javascript a eventos como el “onsubmit” del

formulario o el “onclick” del botón “Submit” de Q-flow, mediante snippets como los siguientes:

document.forms[0].attachEvent("onsubmit",validarForm)

GetSubmitElement().attachEvent("onclick",validarForm)

A partir de la nueva versión estas validaciones, si bien se ejecutarán, no detendrán el postback de la

página. Sin embargo, es posible mediante poco esfuerzo lograr que estas validaciones escritas en

javascript sean ejecutadas normalmente dentro del ciclo de la página. La clave es utilizar los controles de

validación de ASP.NET especificando que se utilizará una rutina de validación client-side. Esto se hace de

la siguiente manera:

En el markup de la página se agrega el control de validación ASP.NET con una definición como la

siguiente:

<asp:CustomValidator ID="CustomValidator1" runat="server"

ClientValidationFunction="validarForm" EnableClientScript="true"

ValidationGroup="QCommandButtonValidationGroup"></asp:CustomValidator>

La rutina de validación javascript se modifica para recibir argumentos necesarios para el

framework de validación de ASP.NET. En el caso de ejemplo que estamos viendo la firma sería la

siguiente:

function validarForm(source, clientside_arguments)

Dentro de la rutina de validación javascript se utiliza la propiedad booleana

clientside_arguments.IsValid para especificar si la validación fue exitosa o no. Si la validación no

es exitosa no se realiza el postback.

Debe verificar que todos los elementos de los Templates que contienen script compilen debido a los

cambios de namespace y algunas propiedades que cambiaron su nombre. En general los cambios de

nombres se dan en propiedades terminadas en “ID” por “Id”, por ejemplo: “FlowID” ahora se llama

“FlowId”. Los elementos que debe verificar son:

Pasos de código

Pasos de evaluación por código

Integraciones (las operaciones de cada integración, al menos la que se encuentra en

producción).

Manejadores de eventos