En este documento apuntaremos las acciones a realizar en una aplicación que utilice IGEP, para pasar de una versión a otra. Cada vez que hagamos alguna modificación en igep que vaya a afectar a las aplicaciones que lo utilicen, lo apuntaremos aqui. Este documento está orientado a Informáticos.
23-11-2010
Si se está utilizando de forma complementaria al framework el proyecto jasper para creación de listados, en esta versión ya se puede utilizar la versión 'jasper-3_0_0_4'.
Si el método IgepComunicacion::setAllTuplas no recibe un array corta la ejecución. Asegurarse que si se le pasa la salida del método consultar, hayan registros.
Si se ha definido algún método nuevo de autenticación, en método autenticate añadir IgepSession::session_start($p_apli, false); antes de crear instancia de Auth.
Si se usan clientes de web services con la clase IgepWS_Client y no se ha fijado la opción de codificación, ahora se fija a latin1. Con esto ya no es necesario usar los métodos uff8_encode/utf8_decode para convertir los datos.
(RECOMENDADO) El atributo logSettings ya no se fija en la carga dinámica; añadirlo al gvHidraConfig.inc.xml según el nivel de log deseado en cada servidor donde se despliegue la aplicación.
(RECOMENDADO) Si se usan fechas en servidores de web services se recomienda generarlas usando el método formatSOAP de gvHidraTimestamp.
Cambiamos el nombre del método addCamposClave por setPKForQueries.
El método ConfigFramework::setCustomDirName ya no existe. Si se ha definido algún custom nuevo, hay que actualizar la DTD porque ya no se puede fijar el atributo customDirName (en los xml de la aplicación y del framework si se puede). Podéis copiar la DTD correcta del xml de cualquier custom.
Los métodos de ConfIgep formatoFecha, formatoNumero y formatoFechaNegocio ya no existen.
Los métodos de IgepComunicaUsuario strtotime_es y timetostr_es ya no existen.
El método ConfIgep::es_desarrollo ya no existe. Si hay que hacer alguna acción dependiente del servidor, intentar configurar el xml para cada servidor, o si no hay más remedio usar el nombre del host para decidir. Cuestiones relacionadas:
En el servidor de producción ya no se fija el error_reporting (E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE). Se hará como esté definido en el servidor PHP.
Fijar el parámetro <reloadMappings>false</reloadMappings> en producción, ya que por defecto está habilitado.
Fijar el parámetro <smartyCompileCheck>false</smartyCompileCheck> en producción, ya que por defecto está habilitado.
Actualizar la DTD del fichero gvHidraConfig.inc.xml. Podéis copiar la DTD correcta del xml de la plantilla de aplicación. Cambios realizados:
Se fija el rango del atributo status de queryMode de 0 a 2. Si se ha fijado este elemento comprobar que es el deseado. El valor 3 ya no existe por lo que si se estaba usando (en ConfigFramework::setQueryMode, gvHidraForm_DB::setTipoConsulta o gvHidraSelectionWindow::setQueryMode) cambiar por valor 1.
Cambia el atributo dnsRef de logSettings por el atributo dsnRef.
Se añade el elemento opcional temporalDir, usado para fijar la ubicación del fichero de sesión. (CIT: Es imprescindible para uso en producción)
Cambios en las listas. La clase IgepLista pasa a llamarse gvHidraList, podemos definir una fuente de datos externa. Pasos de migración obligatorios:
Reemplazar en todo el código cualquier ocurrencia de "IgepLista" -> "gvHidraList".
Reemplazar en todo el código cualquier ocurrencia de "$this->addLista" por "$this->addList".
Reemplazar en todo el código cualquier ocurrencia de "->marcarSeleccionado" por "->setSelected".
Reemplazar en todo el código cualquier ocurrencia de "->setSeleccionado" por "->setSelected".
Reemplazar en todo el código cualquier ocurrencia de "->addOpcion" por "->addOption".
Reemplazar en todo el código cualquier ocurrencia de "->deleteOpcion" por "->deleteOption".
Reemplazar en todo el código cualquier ocurrencia de "->setDefList" por "->setList_DBSource".
Cambios en las ventanas de selección. La clase IgepVentanaSeleccion pasa a llamarse gvHidraSelectionWindow, todas las ventanas de selección tienen matching, podemos definir fuentes de datos externas, podemos fijar una tpl a partir de la cual mostrar dicha ventana.
Reemplazar en todo el código cualquier ocurrencia de "IgepVentanaSeleccion" por "gvHidraSelectionWindow".
Reemplazar en todo el código cualquier ocurrencia de "$this->addVentanaSeleccion" por "$this->addSelectionWindow".
Añadir addMatching. Para poder reutilizar las ventanas de selección en diferentes paneles, ahora incorporan Matching. Esto quiere decir, que tendrán un nombre los campos resultado y nosotros podremos asociarlos a nuestros campos de la tpl. A efectos de migración, esto supone que, el tercer parámetro de las antiguas llamadas a IgepVentanaSeleccion se transforma en una o varias llamadas al método addMatching.
// VERSIÓN ANTERIOR $codper = new IgepVentanaSeleccion("codper","PERSONAS",array("codper","nom")); $this->addVentanaSeleccion($codper); // VERSIÓN 3.1.1 $codper = new gvHidraSelectionWindow("codper","PERSONAS"); //Eliminamos el array. $codper->addMatching('codper','codper'); //Creamos tantas llamadas al metodo addMatching como elementos del array $codper->addMatching('nom','nom'); // Nota: los dos parametros serán el mismo para que funcione como en la version 3.0.X $this->addSelectionWindow($codper);
Reemplazar en todo el código cualquier ocurrencia de "->setDefVS" por "->setSelectionWindow_DBSource".
Reemplazar en todo el código cualquier ocurrencia de "->setDependencia" por "->setDependence".
Cambio del nombre de la clase de cheks. Reemplazar en todo el código cualquier ocurrencia de "IgepCheckBox" por "gvHidraCheckBox"