« Anterior - Versión 26/97 (diff) - Siguiente » - Versión actual
Jorge Herraiz, 2013-01-17 17:28


Migración

4.X

xx-xx-2013

  • Cambiar el metodo showMensaje por showMessage
  • Cambiar el metodo setPametrosBusqueda por setSearchParameters
  • Fijar el parametro templatesCompilationDir en el xml. En el custom de la cit tenemos que quitar lo que fija este parametro para que todos pasen a hacerlo.
  • Incluir en el fichero gvHidraConfig.inc.xml de la aplicación modificar la DTD:
    - En la cabecera:

    <!ELEMENT gvHidraConfig (
    gvHidraVersion |
    applicationName |
    appVersion |
    customTitle |
    customDirName |
    templatesCompilationDir |
    reloadMappings |
    smartyCompileCheck |
    logSettings |
    queryMode |
    extConfigDir | smtpServer |
    DSNZone
    )
    - En la definición de elementos:

    &lt;!-- appVersion
    Establece la versión de la aplicación.
    -->
    &lt;!ELEMENT appVersion (#PCDATA)&gt;
    &lt;!-- extConfigDir
    Establece el directorio de configuracion externa
    -->
    &lt;!ELEMENT extConfigDir (#PCDATA)&gt;

    - En la definición del elemento dbDSN, añadia al atributo sgbd el valor sqlsrv. Quedará así:

    &lt;!ELEMENT dbDSN (dbHost, dbPort?, dbDatabase?, dbUser, dbPassword)? &gt;
    &lt;!ATTLIST dbDSN
    id ID #REQUIRED
    sgbd (
    postgres | pgsql |
    oracle | oci8 | oci |
    thin | oracle-thin |
    mysql | sqlite | sqlsrv
    ) "postgres"
    >
  • Sustituir en todos los ficheros TPLs: ' class="boton" ' por ' class="button" '
  • Cambiar el parámetro datos del CWLista por value.
  • Cambiar el parámetro valor del CWCheckbox por value.
  • Cambiar el parámetro valor del CWSelector por value.
  • Correo: ha habido cambios en la clase de IgepCorreo. Se ha dividido en dos por contener comportamientos propios de la CITMA y para permitir definir el servidor SMTP. Migración:
    Añadir en el fichero gvHidraConfig.inc.xml la siguiente definición en la DTD.
&lt;!-- smtpServer
Define el servidor de SMTP
-->
&lt;!ELEMENT smtpServer (smtpHost, smtpPort? , smtpUser?, smtpPassword?)&gt;
&lt;!ELEMENT smtpHost (#PCDATA)&gt;
&lt;!ELEMENT smtpPort (#PCDATA)&gt;
&lt;!ELEMENT smtpUser (#PCDATA)&gt;
&lt;!ELEMENT smtpPassword (#PCDATA)&gt;
Definir en el fichero gvHidraConfig.inc.xml el servidor smtpServer. Si no se especifica nada, por compatibilidad trabajará con el de la gva.
  • Cambiar addAccionInterfaz por addTriggerEvent.
  • Cambiar addPadre por addMaster.
  • Cambiar addHijo por addSlave.
  • Cambiar setParametrosBusqueda por setSearchParameters.
  • Cambiar setLimiteConsulta por setLimit.
  • Cambiar addConstante por addConstant.
  • Cambiar setTipoConsulta por setQueryMode.
  • Cambiar getTipoConsulta por getQueryMode.
  • Cambiar setResultadoBusqueda por setResultForSearch.
  • Cambiar getResultadoBusqueda por getResultForSearch.
  • Cambiar setResultadoEdicion por setResultForEdit.
  • Cambiar getResultadoEdicion por getResultForEdit.
  • Si se dispone de sistema de validación propio (es decir, se ha creado una clase que extiende la clase gvhBaseAuth), el método fetchData tiene un parámetro más. Ahora se queda:
    function fetchData($username, $password, $isChallengeResponse=false )
  • RECORDAR: TODO ESTE PROCESO SE DEBE PASAR A LAS PLANTILLAS DE GENARO.
  • Cambio en las CSS, la migración del css del custom se debe hacer siguiendo el pdf adjunto (migracionCSSgvHidra4.pdf)
    En las aplicaciones hay que modificar los estilos de las tpl, principalmente:
    - "formularios" por "text"
    - "boton" por "button"

3.1.0

23-11-2010

  • Asegurarse que se usa como mínimo la versión de común 'comun-1_4_0' y actualizar cuando sea posible a 'jasper-4_0_1_1' o superior.
  • 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:
    o 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.
    o Fijar el parámetro <reloadMappings>false</reloadMappings> en producción, ya que por defecto está habilitado.
    o 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:
    o 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 IgepVentanaSeleccion::setQueryMode) cambiar por valor 1.
    o Cambia el atributo dnsRef de logSettings por el atributo dsnRef.
    o 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:
    1. Reemplazar en todo el código cualquier ocurrencia de "IgepLista" > "gvHidraList".
    2. Reemplazar en todo el código cualquier ocurrencia de "$this
    >addLista" por "$this->addList".
    3. Reemplazar en todo el código cualquier ocurrencia de "->marcarSeleccionado" por "->setSelected".
    4. Reemplazar en todo el código cualquier ocurrencia de "->setSeleccionado" por "->setSelected".
    5. Reemplazar en todo el código cualquier ocurrencia de "->addOpcion" por "->addOption".
    6. Reemplazar en todo el código cualquier ocurrencia de "->deleteOpcion" por "->deleteOption".
    7. 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.
    1. Reemplazar en todo el código cualquier ocurrencia de "IgepVentanaSeleccion" por "gvHidraSelectionWindow".
    2. Reemplazar en todo el código cualquier ocurrencia de "$this->addVentanaSeleccion" por "$this->addSelectionWindow".
    3. 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.
    + Ejemplo:

    $codper = new IgepVentanaSeleccion("codper","PERSONAS",array("codper","nom"));
    $this->addVentanaSeleccion($codper);

    //AHORA SERA
    $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);

    4. Reemplazar en todo el código cualquier ocurrencia de "->setDefVS" por "->setSelectionWindow_DBSource".
    o Reemplazar en todo el código cualquier ocurrencia de "->setDependencia" por "->setDependence".
    o Cambio del nombre de la clase de cheks. Reemplazar en todo el código cualquier ocurrencia de "IgepCheckBox" por "gvHidraCheckBox"

3.0.0

26-6-2009

  • Asegurarse que se usa subproyecto 'comun-1_2_1'
  • Asegurarse que se usa subproyecto 'jasper-3_0_0_1'
  • Repasar la DTD del fichero gvHidraConfig.inc.xml de la aplicación para incluir las modificaciones relativas a la conexión a BD. [Basta copiar el bloque de texto desde la linea 64 a la 85 aprox. del fichero gvHidraConfig.inc.xml, y pegarlo en el fichero gvHidraConfig.inc.xml de cada aplicación]. (Es IMPRESCINDIBLE si se quieren utilizar reports jasper contra BDs oracle, además de actualizar a la última versión del proyecto jasper). El cambio a una nueva versión del proyecto jasper, puede presentar problemas de incompatibilidad hacia atrás, por lo que es recomendable recompilar TODOS los reports. Para más información, cunsultar la documentación del proyecto jasper.
  • Cambio de las clases de herencia de Negocio. Se han creado varias clases de las cuales el programador podrá heredar dependiendo del tipo de form que esté implementado. Esto implica cambiar la herencia de todas las clases manejadoras de IgepNegocio a una de las siguientes clases:
    o gvHidraForm: Clase que se utiliza para el manejo de paneles sin conexión a BD.
    o gvHidraForm_DB: Clase que se utiliza para el manejo de paneles con conexión a BD.
    o gvHidraForm_dummy: Clase que se utiliza para realizar prototipos de pantalla.

La recomendación en este apartado es cambiar la herencia de IgepNegocio a gvHidraForm_DB excepto cuando el panel claramente, no tiene acceso a BD.

Al cambiar la herencia, la llamada al padre debe ser parent::__construct en lugar de parent::IgepNegocio.

  • Cambio en el formato de los datos: ahora siempre se pueden manejar los datos en formato negocio (el punto como separador decimal para números, y para fechas instancias de gvHidraTimestamp). Detalles:
    o los métodos de ConfIgep formatoFecha y formatoNumero ya no son necesarios y se consideran obsoletos, puesto que el programador siempre trabaja en formato negocio. Si en algún momento se necesita usar los formatos de presentación, se puede usar IgepComunicaUsuario::prepararPresentacion.
    o los métodos de ConfIgep transformaNumero y formatoFechaNegocio ya no son necesarios y se consideran obsoletos, puesto que el programador no debe recibir en ningún caso formatos de presentación. Si en alguna situación son necesarios usar IgepComunicacion->transform_User2FW, y reportarlo al registro de soporte. El método formatoFechaNegocio puede ser útil todavía cuando se necesite validar las fechas de entrada.
    o las fechas vienen ahora como instancias de gvHidraTimestamp (basado en DateTime). Ver la ayuda para saber como operar con esos objetos. Hay que evitar usar fechas timestamp, especialmente si se tienen fechas anteriores a 1970. Habría que reemplazar las funciones date, time, mktime, strtotime, ... Hay métodos equivalentes para esos casos, sin la restricción del timestamp.
    o ConfIgep::comparaFechas() y IgepComunicaUsuario::comparaFechas() ya no existen; en su lugar usar gvHidraTimestamp::cmp que compara fechas en negocio. Si por algún motivo se tienen fechas en formato User, convertirlas previamente con IgepComunicacion->transform_User2FW.
    o IgepComunicaUsuario::timetostr_es es obsoleta. Si se necesita convertir una fecha del FW a formato User utilizar gvHidraTimestamp->formatUser().
    o IgepComunicaUsuario::strtotime_es es obsoleta. Si se necesita convertir una fecha del usuario a formato FW utilizar IgepComunicacion::transform_User2FW.
  • En las credenciales de los servidores de web services, la contraseña hay que almacenarla con hash. Para ello usar el formulario en igep/include/igep_utils/protectdata.php para obtener los hash de las contraseñas, y guardar estas últimas en un lugar seguro, fuera de la aplicación. Esto NO AFECTA en ningún modo a los clientes de web services.
  • Los radios cambian totalmente. El parámetro radio del plugin desaparece y ahora se configura a través del método setRadio de la clase IgepLista. Se tiene que incluir dataType a la definición del plugin porque es por donde le llega la información.
  • Listas múltiples. El parámetro múltiple del plugin desaparece y ahora se configura a través del método setMultiple de la clase IgepLista. Se tiene que incluir dataType a la defición del plugin porque es por donde le llega la información.
  • Los checkbox cambian radicalmente. Ahora se definen en negocio mediante la clase IgepCheckBox. Se deben incluir al panel. En el plugin se elimina el parámetros valorSi y valorNo que vendrán a partir del dataType.
  • Remplazar las referencias a métodos obsoletos por los correctos:
    o setCampo -> setValue (sustituir setCampo por setValue).
    o getCampo -> getValue.
    o setSeleccionado -> setSelected sólo en las acciones de interfaz y acciones genericas.
    o getCampoDisparador -> getTriggerField
  • (RECOMENDADO) Si teneis algún servidor de web services que tenga varias credenciales, ahora podéis tratarlos sin redefinir el método 'checkCredential', sino pasando un array de id's al constructor del servidor.
  • (IMPORTANTE) A partir de la versión 3, se validan los campos antes de realizar ciertas acciones. Concretamente antes de buscar, saltar, regresar de salto, acciones particulares y acciones de actualización de BD (insertar, modificar borrar y operarBD). Hasta esta versión sólo se realizaba esta validación al realizar acciones de de actualización de BD. Esto significa que si tenemos el mismo campo en un panel fil y lis, si es obligatorio, lo será en los dos. Es importante tener esto en cuenta en todos los campos con definición de tipo de datos.
  • Acceso a propiedades str_select, str_where, str_orderBy, str_selectEditar, str_whereEditar y str_orderByEditar. Se deben utilizar los nuevos métodos:
    o setSelectForSearchQuery: se debe usar este método para dar valor a la propiedad str_select.
    o setWhereForSearchQuery: se debe usar este método para dar valor a la propiedad str_where.
    o setOrderByForSearchQuery: se debe usar este método para dar valor a la propiedad str_orderBy.
    o setSelectForEditQuery: se debe usar este método para dar valor a la propiedad str_selectEditar.
    o setWhereForEditQuery: se debe usar este método para dar valor a la propiedad str_whereEditar.
    o setOrderByForEditQuery: se debe usar este método para dar valor a la propiedad str_orderByEditar.

2.2.0

11-06-2008

  • En todas las plantillas añadir 'customTitle=$smty_customTitle' en el plugin CWBarra.
  • Actualizar subproyecto jasper a la última versión adaptada a PHP5 (jasper-2_0_5 o superior) (más información aqui).
  • Cuando tengamos la necesidad de utilizar una lista múltiple (posibilidad de elegir más de una opción), el CWLista tendrá el parámetro "multiple" a true, y además el parámetro "size" con el tamaño de opciones visibles. Éste parámetro, "size", también puede ser utilizado con una lista simple (sin parámetro "múltiple"), en este caso visualmente es como una lista múltiple pero seguimos manteniendo la posibilidad de seleccionar una sola opción.
  • Los servicios web puede que no funcionaran en PHP 5; revisar documentación para actualizarlos.
  • El patrón arbol ha cambiado. Ahora la clase manejadora del panel arbol debe extender de gvHidraTreePattern.
  • Los DSN's propios de gvHIDRA cambian de nombre, para evitar conflictos con las aplicaciones. Hay que cambiar:
    o g_dsn_ora -> gvh_dsn_ora
    o g_dsn_ptc -> gvh_dsn_ptc
    o dsn_log -> gvh_dsn_log
  • Sobre el directorio de plantillas remplazar todas las cadenas "smty_defaultData_" por "defaultData_".
  • El metodo preIniciarVentana ahora recibe el objeto datos como parámetro y este encapsula todos los valores del REQUEST que pueden llegar desde el menu.
  • Cambiamos el método addCampoPanel por el nuevo sistema de creación de tipos. Requiere cambios en la clase manejadora y en las tpls. Éste cambio afecta al funcionamiento en general del framework en varios aspectos. Consultar la documentación de tipos. Usando las nuevas características, pueden no ser necesarios los atributos maxlength, conCalendario, mascara y obligatorio del plugin CWCampoTexto, que reemplazaremos por el atributo dataType. Ejemplo:

    /*En la clase manejadora*/
    //Versión anterior
    $this->addCampoPanel("coste",1,TIPO_DECIMAL,10,2); {CWCampoTexto nombre="coste" editable="true" size="17" textoAsociado="Coste" obligatorio="true" maxLength="10"}
    //Nueva versión {CWCampoTexto nombre="coste" tabindex="1" editable="true" size="17" textoAsociado="Coste"
    dataType=$dataType_TinvLineas2.coste}

    //Nueva versión
    $coste = new gvHidraFloat(TRUE,10);
    $coste->setFloatLength(2);
    $this->addFieldType('coste',$coste);
    /*En la tpl*/
    //Versión anterior
  • Los métodos preX de las clases de negocio ahora reciben los datos en formato BD (antes en formato Interfaz). En las operaciones en views no cambia nada. Pasos a realizar en métodos preX / postX / acciones de interfaz:
    o si se manejan los números con ConfIgep::transformaNumero / ConfIgep::formatoNumero ya se pueden quitar estas funciones, pues los números ya se pueden considerar en formato negocio.
    o si se manejan los números directamente, habrá que revisar el proceso para eliminar cualquier referencia al caracter decimal o separadores de grupos, pues ya no son necesarios.
    o si se manejan las fechas con las funciones de ConfIgep, hay que sustituir formatoFechaNegocio por prepararNegocio y formatoFecha por prepararDatos.
    o si se manejan las fechas directamente, sólo habrá que revisar el proceso si son fechas en mysql.

2.1.0

12-2-2008

  • actualizar subproyecto jasper a la última versión adaptada a PHP5 (jasper-2_0_4 o superior) (más información aqui).
  • actualizar subproyecto comun a 'comun-1_0_0'
  • Se ha cambiado la forma de establecer la configuración. Los ficheros nuevos a añadir se pueden coger de la plantilla o de pruebas-igep. Los pasos a realizar son:
    o Añadir el gvHidraConfig.inc.xml en la raiz de la aplicación
    o Añadir a la raiz de la aplicación el fichero openApp.php. No hay que modificarlo.
    o Si queremos definir acciones particulares al abrir o cerrar la aplicación, en actions hay que añadir el fichero AppMainWindow.php, incluirlo en include.php, y añadir al mappings.php las siguientes lineas:

    $this->_AddMapping('abrirAplicacion', 'AppMainWindow');
    $this->_AddForward('abrirAplicacion', 'gvHidraOpenApp', 'index.php?view=igep/views/aplicacion.php');
    $this->_AddForward('abrirAplicacion', 'gvHidraCloseApp', 'index.php?view=igep/views/gvHidraCloseApp.php');

    o El valor en $g_aplicacion se pasa al xml. El método ConfIgep::codigoAplicacion() ya no existe; se debe usar:

    $conf = ConfigFramework::getConfig();
    $cod_apli = $conf->getApplicationName();
    // o bien:
    $cod_apli = ConfigFramework::getConfig()->getApplicationName()

    o El valor de la constante G_VERSION se pasa al xml. Podemos obtenerla con el método ConfigFramework::getConfig()->getAppVersion.
    o Las conexiones (DSN) hay que pasarlas al xml y/o a AppMainWindow.php. Para obtener los datos de una conexión, hay que usar el método ConfigFramework::getConfig()->getDSN en vez de las variables globales. El DSN $g_dsn_ora es ahora getDSN('g_dsn_ora'). Hay que revisar las conexiones de todas las clases.
    o Las credenciales para los web services funcionan igual que los DSN.
    o El valor en $g_log hay que pasarlo al xml (atributo logSettings) o a AppMainWindow.php.
    o El valor en $gint_tipoConsulta hay que pasarlo al xml (atributo queryMode) o a AppMainWindow.php.
    o El contenido de las funciones obtenerDefLista y obtenerDefVentana se pasan a AppMainWindow.php usando los métodos setDefList y setDefVS respectivamente.
    o La variable $g_rutaCocoon se puede borrar ya que listadosXML ya no está soportado en gvHIDRA 2.
    o Si se usan otras variables globales, usar los métodos guardaVariableGlobal y dameVariableGlobal de IgepSession para manejarlas.
    o Borrar el fichero config.php.

  • El estilo .TABLA_DATOS que se podía utilizar en las tpl para las fichas pasa a llamarse .grupoCampos
  • Si la aplicación tiene tablas con filas coloreadas consultar documentación ya que el sistema ha cambiado. Ahora se debe usar el método setRowColor.
  • Para fijar el valor de una lista o un radio en una acción de interfaz se debe utilizar el método setSelected del objDatos. Anteriormente se usaba un setValue, pero ya no está soportado.
  • (RECOMENDADO) Hasta ahora todos los ficheros estaban en ISO-8859-1, pero en esta versión se han añadido los ficheros gvHidraConfig.inc.xml con codificación UTF-8. A partir de la versión 3.2 de eclipse no hace falta configurar nada y estos ficheros se editan con la codificación correcta (heredan la codificación del tipo de fichero, no del contenedor) pero para otras versiones de eclipse u otros editores hay que comprobar que se editen correctamente.
  • (RECOMENDADO) Uso de la carga dinámica de clases de negocio. Esto afecta al fichero include.php de la aplicación, donde los includes se pueden reemplazar por llamadas a registerClass o registerFolder (mas información aqui).

igep-2_0_0

22-10-2007

  • actualizar subproyecto jasper a la última versión adaptada a PHP5 (jasper-2_0_x o superior). Más información AQUI.
  • En todos los ficheros tpl hay que sustituir 'smty_datosPreInsertados' por 'smty_defaultData_'.
  • Es necesario añadir un return a todos los métodos post. Para más información acudir a la documentación.
  • cambiamos nombre de los métodos de datos por defecto: getDatosPorDefecto por getDefaultData; addDatosPorDefecto por addDefaultData.
  • Hay que comprobar si funcionan las acciones de interfaz y la recarga de lista dependientes porque se han realizado cambios en las mismas.
  • la funcion ConfIgep::formatoFechaNegocio ya no devuelve -1 cuando la fecha es incorrecta, sino FALSE. Además cuando la fecha es NULL o cadena vacia devuelve NULL.
  • Ya no existe el método ConfIgep::profileCIT.
  • Sustituir el actionForward IgepErrorValidacion por gvHidraValidationError.
  • Si la aplicación utiliza IgepCorreo hay que asegurarse de que el from siempre es una dirección de correo.

igep-2_0_0-rc1

20-7-2007

  • actualizar subproyecto jasper a la última versión adaptada a PHP5 (jasper-2_0_x o superior)
  • actualizar subproyecto comun a comun-1_0_0_rc
  • Quitamos parámetro $actionMapping del método accionesParticulares: ahora se tiene acceso al actionMappings a través del objDatos con el método getFordward(). Esto implica que las llamadas:
    $actionForward = $actionMapping->get('correcto');
    serán ahora
    $actionForward = $objDatos->getForward('correcto'); *

    Quitamos referencia a setClaseActual en el constructor de las clases manejadoras. Tal y como teníamos previsto, esto ya no es necesario en PHP5.

  • Cambio de nombre de los métodos internos de negocio. Esto implica que cualquier referencia explícita a ellos desde el código (típicamente desde una acción particular) fallará. Hay que hacer los siguientes cambios:
    o $this->buscar() por $this->refreshSearch()
    o $this->editar() por $this->refreshEdit()
    o $this->recargarDesdeHijo por $this->refreshDetail()
  • Cambio en los actionForward de las acciones de negocio. Se han revisado y cambiado los forwards de cada una de la acciones de gvHidra. Se ha eliminado el retorno "correcto" para sustituirlo por gvHidraSuccess, el error por gvHidraError,...
  • Eliminamos los & en la definición de los métodos. Típicamente en los pre, post y validaciones, ya que en PHP5 no son necesarios. OJO: Siempre que pasemos un objeto se hará por referencia.
  • Al cambiar la clase de mapeo, en el fichero mappings.php hay que cambiar el include: 'igep/include/gvHidraMaps.php'. Tambien hay que cambiar la clase de la que extiende ComponentesMap, y la llamada al constructor de la padre que ahora es gvHidraMaps. En este mismo fichero hay que eliminar tambien todos los parámetros que sobran de las llamadas al método _AddMapping. Concretamente estas llamadas se tienen que quedar sólo con los dos primeros parámetros (el nombre de la acción y la claseManejadora).
  • En todos los menus, añadir la DTD. En los tres ficheros de menu modulos, herramientas y administración. El parametro urlAbs se cambia por url y si se quiere abrir la url en otra ventana hay que añadir el parametro abrirVentana=true. Tambien hay que quitar todos los id.

igep-1_7_1

23-10-2008

- actualizar subproyecto a 'comun-0_18_0'

- actualizar subproyecto jasper a 'jasper-2_0_5'

igep-1_7_0

10-10-2007

- la funcion ConfIgep::formatoFechaNegocio ya no devuelve -1 cuando la fecha es incorrecta, sino FALSE. Además cuando la fecha es NULL o cadena vacia devuelve NULL.

- actualizar subproyecto jasper a 'jasper-2_0_1'

igep-1_6_3

12-9-2007

-

igep-1_6_2

16-7-2007

-

igep-1_6_1

18-5-2007

-

igep-1_6_0

2-5-2007

- El parámetro esBuquedaLarga del plugin CWBoton se ha eliminado. Para conseguir mostrar el texto de espera se debe utilizar el parámetro mostrarEspera.

igep-1_5_2

29-3-2007

- En el fichero de la aplicación include/include.php hay que borrar los ficheros propios de gvHidra y dejar sólo los de la aplicación.

- Hay que observar que el comportamiento de las listas es correcto ya que hemos hecho un cambio y pueden tener un comportamiento anómalo.

- En la lista de campos de la select en una ventana de selección no se permite || para concatenar sino que hay que usar la función concat. Otro cambio es que para usar operadores aritméticos, hay que poner paréntesis. Ejemplo:

select concat(columna, '.') as "col", (fecha + 1) as "hoymasuno", ...

- (RECOMENDADO): El plugin CWPantalla entrada cambia ligeramente su comportamiento, el parámetro "imagen" de los elementos XML modulo, rama y opción, pasa a ser opcional, teniendo un valor predeterminado si no se hace uso del parámetro. Se pueden borrar todos los parámetros imagen.

- (RECOMENDADO): Revisar los campos definidos como "camposBusqueda" en las ventanas de selección, y dejar sólo los que no estén en la lista de campos de la consulta. Ahora ya se busca por defecto en todos ellos.

igep-1_5_1

30-1-2007

- En el fichero import.txt, hay que cambiar la versión de 'comun' a 'comun-0_15_0'

igep-1_5_0

19-1-2007

- En el fichero import.txt, hay que cambiar la versión de 'comun' a 'comun-0_14_0'

igep-1_3_1

20-10-2006

- En el fichero import.txt, hay que cambiar la versión de 'comun' a 'comun-0_12_0'

igep-1_3_0

26-7-2006

- En el fichero import.txt, hay que cambiar la versión de 'informesod' a 'informesod-0_3_0

- Los campos fechas hay que indicarlos usando el método 'addCampoPanel' de la clase de negocio. También hay que quitar las llamadas a 'fcmn_fechas' en la select, ya que las conversiones de formato las realiza Igep, no la BD.

igep-1_2_2

22-6-2006

- Se ha modificado el retorno de los métodos operar y consultar de la clase IgepConexion. Ahora devuelven 1 en caso de error. Es importante revisarlos, pero śolo los que dependen de IgepConexion. Es decir, cualquier llamada a estos métodos en un fichero actions que no sea $this>consultar o $this->operar.
igep-1_2_1

2-6-2006

- Todas aquellas aplicaciones que tengan campos externos deben de modificar las tpls englobando estos campos entre las etiquetas de inicio y fin de un {CWFicha}. Un campo external es aquel (generalmente un CWCampoTexto) que se encuentra en un modo LIS (Tabla), pero esta encima de esta. Es decir, que su ámbito es para toda la tabla. Por tanto, si se tiene el siguiente codigo:

{CWContenedor}
<br> {CWCampoTexto nombre="campoExternal" size="10" value=$smty_campoExternal textoAsociado="External"}
<br> {CWTabla conCheck="true" conCheckTodos="true" id="Tabla1" ...} {CWFila tipoListado="false"} {CWCampoTexto nombre="campoTabla1" size="40" textoAsociado="campoTabla1"}
...

Cambiará a:

{CWContenedor} {CWFicha}
<br> {CWCampoTexto nombre="campoExternal" size="10" value=$smty_campoExternal textoAsociado="External"}
<br> {/CWFicha} {CWTabla conCheck="true" conCheckTodos="true" id="Tabla1" ...} {CWFila tipoListado="false"} {CWCampoTexto nombre="campoTabla1" size="40" textoAsociado="campoTabla1"}
...

igep-1_2_0

31-5-2006
- (RECOMENDADO): Para consultar los mensajes de log generados por la aplicación conviene añadir una opción al menú de Herramientas. Ver documentación

.

igep-1_1_6

23-5-2006

-

gep-1_1_5

16-5-2006

- Se recomienda migrar a esta versión ya que en la 1.1.4 se ha detectado un error crítico para el navegador mozilla.

igep-1_1_4

11-5-2006

-
igep-1_1_3

3-5-2006

1. En el fichero import.txt, hay que cambiar la versión de 'comun' a 'comun-0_11_2'
2. Se ha creado el método prepararOperacion que permite evitar problemas con caracteres especiales en las operaciones INSERT, DELETE y UPDATE. Si realiza estas operaciones específicamente con el método operar puede interesarle utilizarlo antes.
3. Si utiliza en su aplicación un CWImagen sería conveniente vigilar que su funcionamiento es correcto.

igep-1_1_2

19-4-2006

1. En el fichero import.txt, hay que cambiar la versión de 'comun' a 'comun-0_11_0'
2. (RECOMENDADO) Migrar los saltos de ventanas al nuevo sistema mediante la clase IgepSalto y sus métodos.

igep-1_1_1

30-3-2006

1. En el fichero import.txt, hay que cambiar la versión de listadosXML a 'listadosXML-0_1_3'

igep-1_1_0

16-3-2006

1. Advertencia: el programador puede encontrarse con errores en la busqueda o en la edición. Esto se debe a cambios en los métodos internos de Negocio. Si se detecta algún error, tras las comprobaciones típicas (borrar cache, limpiar smarty, ...), comentadlo.
2. Hemos añadido un método que devuelve la información del modo activo dentro de una acción de interfaz. El metodo es getModoActivo(). Esto permitirá a un programador distinguir entre una llamada desde un modo FIL (modo búsqueda) y un modo LIS (modo listado o tabla).
3. Hay que repasar las TPLs
1. TODO panel tendrá un boton inferior "cancelar". Si además el panel actualiza datos (es decir, el 99% de los paneles), tendrá un también boton "guardar".
2. Hay que poner el parámetro "accion" de los botones, con el que se indicará la naturaleza del mismo, posibles valores del parámetro pueden ser: "buscar", "cancelar", "guardar", "listar", "particular". Desaparece el que hasta ahora se utilizaba "submit". * "buscar": Se utilizará únicamente en los paneles de filtro. * "cancelar": Se utilizará cuando queramos un botón para cancelar la edición de un panel tanto tabular como registro. Con él se volverá, en el caso de un tres modos, al panel tabular, y en los otros casos recargará el mismo panel pero en estado lectura. No tiene que llevar parámetro "action" ni "id". * "guardar": Sustituye al "submit" que poníamos hasta ahora. Se pondrá cuando queramos trabajar sobre la base de datos, cuando hemos modificado, eliminado o insertado. * "particular": Se utilizará cuando queramos tener un botón que ejecutará una acción particular al panel. Es obligatorio que tengan el parámetro "action" con la clase manejadora que debe recojer la información, y un nuevo parámetro "id", un nombre identificativo para el botón que nos permitirá referenciarlo desde negocio (activarlo y/o desactivarlo). * "listar": Se utilizará cuando queramos sacar algún listado o informe, siempre aparecerán en una ventana independiente.
3. El parámetro OcultarMD de los botones tooltip se elimina, conviene eliminarlo de las TPLs.
4. En todos los plug-in CWVentana incluir el parametro "onLoad=$smty_jsOnLoad".
4. En las listas multiples se puede seleccionar el número de items que se quiere visualizar. Esto se consigue mediante el parámetro size.
5. Las pantallas de 3 modos necesitan una entrada en el mappings.php para el botón cancelar con la acción 'cancelarEdición', que será del tipo:
$this->AddMapping('TcmnNucleos_cancelarEdicion', 'TcmnNucleos', '', 'IgepForm', 0);
$this->AddForward('TcmnNucleos_cancelarEdicion', 'correcto', 'index.php?view=views/mantComun/tcmn_nucleos.php&panel=listar');
Para el resto de pantallas no es necesario tener una entrada en el mappings.php para el boton cancelar, por lo tanto desaparecen del mappings todas las entradas que se tenían con la acción 'cancelarTodo'.
6. 'vCamposComprobar' era un parámetro en CWBoton, que desapareció hace tiempo, lo anotamos ahora en la migración porque no no nos acordamos de sí fue anotado en su momento. Si en alguna tpl lo tenemos hay que eliminarlo.

igep-1_0_3

6-2-2006

1. Se deberán cambiar las tpl's, ahora el botón ToolTip de Limpiar Campos pasa a ser Restaurar Valores, se deberá cambiar el parametro funcion="limpiar" por funcion="restaurar".
2. Se ha cambiado el método consultar de la clase IgepPersistencia a la clase IgepConexion. Con esto conseguimos que si se quiere realizar una consulta a una base de datos sólo tenemos que crear un objeto conexion. Se tiene que buscar en todas las clases de actions las instancias de la clase IgepPersistencia y (en el caso de que se realicen consultas) cambiarlas a la instancia de IgepConexion.

igep-1_0_2

17-01-2006

1. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_10_0'. Si hay pantallas a las que se accede directamente (sin el menu principal), ver información de comun.
2. (RECOMENDADO) En las clases de negocio (carpeta actions) ya no hace falta poner el include de IgepNegocio
3. (RECOMENDADO) Se han incorporado métodos para formatear fechas y números. Conviene usarlos para que sea más fácil un cambio de configuración.
4. (RECOMENDADO) En las tpls se tiene que añadir un nuevo parámetro al CWVentana. Se trata del parámetro OnLoad que vendrá asignado a la variable smarty $smty_jsOnLoad. Es decir, hay que añadir al CWVentana: onLoad=$smty_jsOnLoad. De momento esto sólo afectará a las ventanas de tres modos, pero proximamente será obligatorio para todas las tpls.
5. Se ha incorporado un nuevo método para poder identificar el campo que lanza una acción de Interfaz. El método es getCampoDisparador y devuelve el nombre del campo de la Tpl que ha "disparado" la acción en ejecución. Esto facilitará el uso de las acciones de interfaz que se disparan desde diferentes campos.

igep-1_0_1

21-12-2005

-

igep-1_0_0

29/11/2005

Esta versión modifica de forma importante el comportamiento interno de IGEP por lo que se recomienda hacer un tag del proyecto antes de migrar, y probar toda la funcionalidad del proyecto una vez migrado.

1. Eliminamos el método dameDatoBusqueda. Este método se utilizaba en los preBuscar. Ahora se tiene acceso a los datos a ir del objDatos.
2. Sustituimos el método comportamientosParticulares($actionMapping,$str_accion, $actionForm) por accionesParticulares($str_accion, $actionMapping, $objDatos)... Ojo cambian los parametros...
3. ATENCION: CAMBIAN TODOS LOS METODOS pre y post. Ahora tiene como parámetro m_datos q pasa a ser una instancia de un objeto IgepComunicaUsuario. Ver documentación para los nuevos metodos de acceso a datos.
4. ATENCION: IGEP PASA A TENER PERSISTENCIA. La programación es igual a la de un cliente-servidor común. Es decir, el constructor de una clase sólo se ejecuta la primera vez que se requiere una instancia de dicha clase, o tras haber hecho una destrucción explícita de dicha instancia, si se vuelven a requerir los servicios de la misma. Todas las propiedades de una clase se recuperarán automáticamente y de forma transparente para el programador.
5. Desaparece el parámetro titulosColumnas del CWTabla, además, el método agregarTitulos() utilizado en los views se elimina. Para poner título a una tabla, se utiliza el parámentro textoAsociado, en los plugins que aparezcan dentro del CWFila (CWCampoTexto, CWLista, CWCheckBox...)
6. Cambia el manejo / declaración de las listas. Ya no hay distinción entre una lista "estática" y una lista cuyo origen de datos sea una SQL. A cualquier lista se le pueden añadir opciones de forma "estática" que se sumarán a las opciones que ya tuviese provinientes de una query (si es que la tenía).
7. Toda referencia a obj_ultimaConsulta o obj_ultimaEdicion debe ser revisada sobre todo en el tema relativo a los saltos. En los comportamientos generales/particulares se debe hacer uso del objDatos. En los saltos se debe hacer uso de los nuevos métodos setResultadoBusqueda y setResultadoEdicion.
8. El mappings de todas las operaciones cambia. Revisarlo tomando como modelo el mappings de inventario.
9. El método AddValidacionCampo pasa a addAccionInterfaz y desaparece el tercer parámetro (era un parametro opcional).
10. Se ha cambiado la accion operarTabla por operarBD. Por tanto se tienen que modificar todas las tpls de las aplicaciones y el mappings.php. Con hacer un replaceAll de operarTabla por operarBD vale.
11. Se ha modificado el plugin CWBoton para unificar conceptos en las acciones. Esto supondrá repasar en las tpl el plugin CWBoton y cambiar el valor asignado al parámetro acción con lo siguiente: * accion = "buscar", se queda como esta. * accion = "guardar", cambia a accion = "submit" * accion = "consultar", cambia a accion = "submit" * accion = "cancelar", se queda como esta * accion = "listado", cambia a accion = "submit" y añadir en el CWBoton el parámetro openVentana = "true" * accion = "unoselec", cambia a accion = "submit" y se añade en el CWTabla el parámetro seleccionUnica = "true"
12. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_9_0'.
13. En el config.php de la aplicacion hay que cambiar el método obtenerDefListaParticulares por obtenerDefLista y el método obtenerDefVentanaParticulares por obtenerDefVentana
14. Hemos añadido una nueva interfaz para los mensajes... ahora no se debe hacer referencia a la propiedad obj_mensaje de las clases. Se debe utilizar el método showMensaje del objeto panel ejemplo: $this->showMensaje('APL-21');
15. El método activarPestanya de los views pasa a ser activarModo. Hay que hacer un replace en todos los views.

Versión de Rama ...

(no se libera ninguna versión más de la rama despues de la 0.9.4)

1. Se ha modificado el plugin CWBoton para unificar conceptos en las acciones. Esto supondrá repasar en las tpl el plugin CWBoton y cambiar el valor asignado al parámetro acción con lo siguiente:
       * accion = "buscar", se queda como esta.
       * accion = "guardar", cambia a accion = "submit" 
       * accion = "consultar", cambia a accion = "submit" 
       * accion = "cancelar", se queda como esta
       * accion = "listado", cambia a accion = "submit" y añadir en el CWBoton el parámetro openVentana = "true" 
       * accion = "unoselec", cambia a accion = "submit" y se añade en el CWTabla el parámetro seleccionUnica = "true" 
2. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_9_0'.

igep-0_9_4

11-11-2005

1. Ya funcionan las fechas (con o sin hora) en oracle y postgres. Implicaciones:
       * El formato de visualización cambia: pasa de 'dd-mm-yyyy' a 'dd/mm/yyyy', y puede afectar a operaciones que lo utilizaran asi.
       * En campos date de oracle o timestamp en postgres, ahora saldrán con la hora también.
       * Habrá que revisar todos los campos 'fecha sin hora' y 'fecha con hora' y en la consulta formatear el campo usando la función de base de datos fcmn_fechas( fecha, tipo ), donde tipo es FECHA o FECHAHORA (en los ficheros sql de listadosOO también). Además el campo en la tpl le daremos el tamaño 10 o 19 respectivamente. De esta forma sólo saldrá la hora cuando se lo indiquemos. Ver más detalles.

igep-0_9_3

21-10-2005

1. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_8_0'.
2. (RECOMENDADO) Vuelven a estar disponibles las pantallas 'Mis peticiones' y 'Novedades de una versión'.

igep-0_9_2

10-10-2005

1. (RECOMENDADO) Por motivo de la puesta en marcha de la nueva aplicación de 'Peticiones de Informática', las opciones definidas en el menu de administración para ver las novedades de una aplicación, y las peticiones de un usuario no van a mostrar la información actualizada, por lo que se requiere quitarlas hasta que obtengan la información de la nueva aplicación.

igep-0_9_1

30-9-2005

1. (RECOMENDADO) Utilizar la constante SALTO_LINEA en vez de '\n'.

igep-0_9_0

21-9-2005

1. (RECOMENDADO) Los métodos consultar y operar tienen control de errores. Si se produce un error devuelven -1. El programador debe controlarlo y abortar la ejecución (realizar un return -1) al detectar cualquier error. Con ello conseguirá que en pantalla aparezca el mensaje de error.
2. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_7_0'.

igep-0_8_3

6-9-2005

1. (RECOMENDADO) Hemos creado un método para no tener que acceder directamente al parámetro str_claseActual. En el constructor de todos los actions hay que cambiar estos accesos por el método setClaseActual('nombreClase').
2. (RECOMENDADO) En las clases de negocio, cambiar la llamada al constructor del padre (this->IgepNegocio por parent::IgepNegocio)

igep-0_8_2

13-7-2005

1. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_6_0'.

igep-0_8_1

20-6-2005

-
igep-0_8_0

6-6-2005

1. En el fichero import.txt, hay que cambiar la versión de comun a 'comun-0_5_0'.

igep-0_7_0

11-5-2005

1. Ahora se puede incluir un ORDER BY a las listas y a las ventanas de selección. Por lo que si interesa se pueden modificar en el fichero config.php. Si no se añade un ORDER BY, Igep añade uno por defecto.
IMPORTANTE: Este cambio ha provocado que necesitemos la definición de la clase actual (str_claseActual) cuanto antes (lo recomendable es despues de invocar al constructor de IgepNegocio). Si se añade una lista antes de instanciar esta variable aparecerá un mensaje de error.

igep-0_6_0

3-5-2005

1. Hemos cambiado los métodos Pre y Post. Les hemos añadido un parámetro que contiene una matriz con todas las tuplas que van a verse afectadas por la operación o con los datos de la consulta. Este parámetro se puede recibir por referencia, con lo que si se cambia algún valor se cambiará en los datos que se van a almacenar en la BD o se van a mostrar en la consulta. Para ello debe añadir un & al parámetro en la definición de la función. Con esto podemos eliminar las referencias a la variable $this->comunica->dameDatosXXX. Hay que destacar que la estructura del parámetro es la siguiente [fila][nombreCampoTpl] => valor; la estructura anterior era [fila][nombreBd] => valor. Por ello habrá que estar muy atentos a este cambio. A continuación mostramos algunos ejemplos:
function preInsertar(& $m_datos){...
//podemos añadir, p.e. una secuencia
function preModificar(& $m_datos){...
//podemos modificar los datos que nos vienen de la pantalla antes operar
function postBuscar(& $m_datos){...
//podemos añadir un campo que pertenezca a una fuente de datos diferente
Es importante tener en cuenta lo siguiente:
    * PreOperacion: Se le pasa la matriz de datos antes de la operación. Aqui es donde si se requiere y, indicandolo con un & en la definición del método se puede modificar dichos datos.
    * PostOperacion: Se le pasa la matriz de datos despues de realizar la operación. De este modo se pueden realizar operacione complementarias.
    * PreBuscar: Se le pasa una vector con los datos que el usuario a picado en el panel de busqueda.
    * PostBuscar: Se le pasa el obj_ultimaConsulta de modo que se le pueden añadir campos al resultado de la consulta.
    * PreEditar, PreRecargar: Se le pasa la selección del maestro.
    * PostEditar, PostRecargar: Se le pasa el obj_ultimaConsulta. 
2. Hemos cambiado el nombre de la accion que inicia una ventana. Esta acción antes se llamaba inicializarBusqueda y ahora pasa a llamarse iniciarVentana. Es preciso cambiar el nombre de esta acción, si no dejará de funcionar. RECOMENDAMOS: Que todas las pantallas accesibles desde el menu (menuModulos.xml) se inicien haciendo una llamada a phrame utilizando esta acción:
phrame.php?action=TinvFacturas__iniciarVentana
3. Por el cambio que hemos realizado en los métodos pre hemos tenido que cambiar el metodo calcularSecuencia. Ahora este método recibe 4 parámetros (el último opcional):
       * nombre de la tabla.
       * nombre del campo sobre el que se quiere realizar el cálculo del máximo
       * un array que contiene los nombres de los campos dependientes y sus valores. Con la estructura [nombreCampoBD] => valor.
       * opcional: un valor de inicio para el máximo.
Por ejemplo, si queremos calcular la secuencia de una factura dependiendo del año tendríamos:
$secFacturas["anyo"] = $m_datos[$indice]["anyoFacturaEnTpl"];
$numEntrada = $this->calcularSecuencia("tinv_facturas","nfactura",$secFacturas);
4. Hemos creado el método addHijo para enmascarar el comportamiento del v_hijos. Por lo tanto RECOMENDAMOS en todos los maestro-detalle cambiar donde haga referencia a v_hijos por:
//$this->v_hijos = array("TinvLineas2"=>array( "anyo"=>"anyo", "nfactura"=>"nfactura"));
$this->addHijo("TinvLineas2",array( "anyo", "nfactura"),array( "anyo", "nfactura"));
5. Nachete... este punto creo que no lo tienes que gastar, pero por si acaso. Si tienes un detalle que gasta los métodos preBuscar o postBuscar a partir de ahora debe llamar a preRecargar y postRecargar. En el preRecargar recibe una matriz de datos que contiene la selección que se ha realizado en el maestro y en el postRecargar el obj_ultimaConsulta para que puedas cambiarlo.
6. Ahora le toca al mappings.php. Hemos quitado la parte del mappings que correspondía a Igep, por lo que se tendrá que cambiar del mappings lo siguiente: * Incluir el siguiente fichero:
include 'igep/include/IgepComponentesMap.php';
  • Cambiar la clase de la que hereda, ahora la definición de la clase ComponentesMap es:

    class ComponentesMap extends IgepComponentesMap {

  • Incluir una llamada en el constructor de ComponentesMap al constructor de la clase padre:

    $this->IgepComponentesMap();

7. Aunque un poco tarde, pero la intención es lo que cuenta. Hay que cambiar en todas las tpls la referencia a $smty_datosPreInsertados por $smty_datosPreInsertadosClaseManejadora donde clase Manejadora es la que corresponda al panel. Perdón Nachete por no avisarte antes.
8. Hemos creado un método para indicar desde un panel detalle quien es el maestro. Le hemo llamado addPadre. RECOMENDAMOS cambiarlo en todas las clases detalle. Ejemplo:
//Antes
$this->str_nombrePadre = "clasePadre"
//Ahora
$this->addPadre("clasePadre")

igep-0_5_0

15-4-2005

1. Hemos cambiado los parámetros que se le pasaban a la función setDependencia de una lista. Ahora los dos parámetros serán de tipo Array de forma que una lista podrá depender de varios campos. Ejem: $listaSubtipos->setDependencia( array("ctipo"), array("ctipo"));
2. Se han eliminado dos parámetros obsoletos: 'name' en CWMarcoPanel y 'nomSolapas' en CWFichaEdicion

igep-0_4_0

22-3-2005

1. El parámetro "accion" del plugin CWFichaEdicion pasa a ser un parámetro de CWPanel.
2. En el fichero import.txt, hay que cambiar la versión de listadosXML a listadosXML-0_1_2.
3. (RECOMENDADO) Se añaden validaciones en el servidor: campos obligatorios, tipo y longitud. Si se estaban haciendo por otro método ya se puede quitar éste.

igep-0_3_0

23-2-2005

1. CWBotonTooltip.php: Cuando se introduzca un plugin de este tipo se deberá incluir un nuevo parámetro "funcion", cuyos valores podrán ser: {insertar, modificar, eliminar, limpiar, abrirVS, buscarVS}, que indicara la accion a realizar por el elemento. Esto antes se indicaba en el parámetro "titulo".
2. CWPanel.php: Se incluye un nuevo parámetro donde se le indicará cuando realizar la comprobación de los campos. Los posibles valores son: {todo, envio,cambioFoco}.
3. CWCampoTexto.php, CWAreaTexto.php, CWCheckBox.php, CWLista.php: La etiqueta que acompaña a estos elementos deja de escribirse en la tpl y pasa a ser un parámetro del plugin "textoAsociado". Se incluirá al principio un * si el elemento tiempo el parámetro obligatorio = "true".
4. (RECOMENDADO) Si se tenían listas estáticas, se ha añadido una forma de enmascarar la creación de estas listas con el método addOption de la clase IgepListas.
5. (RECOMENDADO) Si se tiene un panel sin SELECT, para cambiar su comportamiento, tenemos que sobreescribir los métodos preBuscar y PostBuscar.

igep-0_2_2

3-02-2005

1. En el fichero import.txt, hay que cambiar la versión de listadosXML a 'listadosXML-0_1_1'.
2. Se ha unificado el valor que devuelven las variables en caso de error(1) y en caso de que todo haya ido bien(0) para las funciones de: preNuevo, preInsertar, preModififcar y preBorrar. Para la nueva versión habrá que actulizar los valores que devuelvan estas variables en las actions que sobreescriban dichas acciones.
3. Si se utiliza el método setParametrosParticulares se tiene que sustituir por el método preBuscar. Dentro de este método preBuscar se utilizará una llamada al método setParametrosParticulares pasando como parámetro la where que se quiere anexar.
4. (RECOMENDADO) Se han definido métodos para que de un panel el negocio sepa cual es la clave primaria. Esto sólo se utiliza simplemente en la acción de editar (cuando seleccionamos una o varias tuplas en una tabla y queremos verlas en modo ficha). En esta acción, si se tienen definidos los campos clave del panel, el método construirá una Where sólo con esos campos (ya que ya puede identificar la tupla a partir de ellos). Esto permite evitar posibles errores.
5. (RECOMENDADO) Se han incorporado a negocio dos métodos: consultar y operar. De esta forma el programador no tendrá que utilizar la sentencia $this
>v_tablas[0]->consultar. Estas sentencias deben ser sustituidas por $this->consultar.

igep-0_2_1

27-1-2005

1. Cambiamos el método de IgepPanel activarPestaña por activarPestanya. Será necesario cambiar todas las llamadas en los views.
2. Para detectar los errores en la construcción de la Select hemos cambiado el método buscar. Se ha incluido un ActionForward de error para las busquedas, por tanto se tendrá que modificar el mappings de todas las acciones buscar. Concretamente se tendrá que añadir una nueva línea que sea igual a la que ya existe de incorrecto, con el nombre error.
3. (RECOMENDADO) Si se tienen tipos decimales y se quiere que aparezcan con el formato correcto (coma decimal), se recomienda utilizar el método addCampoPanel con el tipo de datos TIPO_DECIMAL indicando el número de cifras decimales.

igep-0_2_0

11-01-2005

1. Los mensajes de la aplicación se han movido de config.php a un nuevo fichero mensajes.php, también en la raiz de la aplicación.
2. Ahora el valor de g_aplicación es 'case sensitive', y debemos usarlo como esté definida la aplicación en tcom_aplicaciones.
3. En el fichero config.php hay que definir la constante G_VERSION y darle el valor que tenga la versión en tcom_aplicaciones.
4. En el fichero import.txt, hay que cambiar la versión de listadosXML a 'listadosXML-0_1_0-beta-branch-2'. Ésta aporta ahora nuevas características. También ha cambiado de ubicación el fichero post_pdf.php, que ha pasado de igep a listadosXML.
5. (RECOMENDADO) El acceso a las variables de _SESSION se ha encapsulado usando la clase IgepSession. Conviene reemplazar de las aplicaciones los accesos directos a la variable por los correspondientes métodos de clase (o 'static').
6. (RECOMENDADO) Los ficheros views/aplicacion.php, plantillas/aplicacion.tpl y views/principal.php están ahora en igep, y hay que borrarlos de las aplicaciones.
7. En el caso de que se estén utilizando desplegables en un panel de busqueda, se tenía que realizar la carga de las listas de forma manual. Ahora se podrá gastar un evento genérico de Igep llamado inicializarBusqueda. Este método cargará en el array de datosPreinsertados todas las listas; por tanto lo único que tendrá que hacer el programador es asignar en el atributo datos de la lista el valor $smty_datosPreInsertados.nombrecampo.
8. El menu se define ahora en el fichero include/menuModulos.xml y hay que borrar menu.str. Para ver la estructura del nuevo menu ejecutando plantilla_igep. Con esta definición desaparecen los plugins CWPantallaInicio y CWMenuAplicacion, son sustituidos por el plugin CWPantallaEntrada que leerá el fichero xml y prepara el menú para pantallas posteriores. En las plantillas al llamar al plugin CWMenuLayer se hace uso del parámetro "cadenaMenu" en vez de "fichero", será una variable de smarty que será asignada a través de la lógica de negocio, tras ser preparada por el plugin CWPantallaEntrada..

igep-0_1_7

15-12-2004

1. No deberia afectar a las aplicaciones. Se ha quitado el PEAR de IGEP, y eso podría afectar a las conexiones (trim de los datos, indices de arrays asociativos en mayúscula o minúscula, ...) aunque no deberia.

igep-0_1_6

29-11-2004

1. En las clases de negocio, podemos añadir la información para controlar los campos obligatorios desde javascript, antes de ir al servidor.

igep-0_1_5

22-11-2004

1. No hay que modificar nada. Se han añadido funcionalidades.

igep-0_1_4

16-11-2004

1. No hay que modificar nada. Se han añadido funcionalidades.

igep-0_1_3

15-11-2004

1. Utilizar las ventanas de selección y listas genericas. Las particulares declararlas en config.php
2. Igep limita los registros en una consulta a 100. Si hay código en la aplicación para limitar los result-set ya no es necesario.
3. Revisar tpls

igep-0_1_2

15-10-2004

migracionCSSgvHidra4.pdf (81 KB) Veronica Navarro Porter, 2012-12-04 14:12

gvHIDRA_migracion_v5.pdf - Pasos de migración a la versión 5 (98,7 KB) Veronica Navarro Porter, 2019-05-23 10:27