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
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
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.
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;
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
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
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.
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.
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).
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).
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.
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.
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
Top Related