opengnsys-1.1.0 (#14) - No me permite añadir acciones a procedimeintos (#415) - Message List

No me permite añadir acciones a procedimeintos
 unsolved

Hola,

Acabamos de notar que no nos permite crear nuevos procedimientos ni agregar acciones a procedimientos existentes. El mensaje que aparece es:

ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como un Procedimiento

He realizado una comprobación de las tablas con

sudo mysqlcheck -c ogAdmBD -u root -p

Y me da OK en todas la tablas.

¿Alguna idea?

SAlu2

  • Message #909

    Hola,

    Examinando los logs de error de mysql y apache, lo único que he visto es esto en el de apache:

    [Tue Dec 10 16:47:56.506576 2019] [:error] [pid 26259] [client IP.IP.IP.IP:52111] PHP Notice:  Undefined offset: 1 in /opt/opengnsys/www/includes/comunes.php on line 154, referer: https://IP.IP.IP.IP/opengnsys/principal/acciones.php
    

    Este mensaje de error aparece cada cierto tiempo en el log, pero no se si estará relacionado con el fallo.

    SAlu2

    • Message #910

      Hola.

      En la versión 1.1.1 tenemos unas correcciones en el fichero /opt/opengnsys/www/includes/comunes.php, sustituyendo la antigua función split por explode, lo que evita problemas en las nuevas versiones de PHP. Prueba a hacer los cambios a ver si funciona.

      Saludos.

      • Message #911

        Muchas gracias por la respuesta,

        He sustituido en el fichero que indicas la función split por explode y he reiniciado el servidor, pero el problema persiste. También he sustituido el fichero por el que viene con la versión 1.1.1 por si había otros cambios aparte de las funciones y tampoco se ha solucionado.

        Me inclino a pensar que el problema puede estar en el fichero /opt/opengnsys/www/asistentes/gestores/gestor_Comandos.php, dentro del bloque que incluye la acción en el procedimiento ya que si que crea el procedimiento, pero no mete dentro la acción. De momento no se muy bien como podría hacer una traza del código php para localizar el fallo.

        SAlu2

        • Message #912

          Hola de nuevo,

          Por si sirve de algo...

          He probado a insertar manualmente una acción en un procedimiento existente con la sentencia que se utiliza en /opt/opengnsys/www/asistentes/gestores/gestor_Comandos.php:

          mysql> INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES ("201","0","9","nfn=IniciarSesion");
          

          Y me ha dado el siguiente error:

          ERROR 1364 (HY000): Field 'procedimientoid' doesn't have a default value
          

          En efecto el campo no tiene definido valor por defecto:

          mysql> describe procedimientos_acciones;
          +-----------------------+-------------+------+-----+---------+----------------+
          | Field                 | Type        | Null | Key | Default | Extra          |
          +-----------------------+-------------+------+-----+---------+----------------+
          | idprocedimientoaccion | int(11)     | NO   | PRI | NULL    | auto_increment |
          | idprocedimiento       | int(11)     | NO   |     | 0       |                |
          | orden                 | smallint(4) | YES  |     | NULL    |                |
          | idcomando             | int(11)     | NO   |     | 0       |                |
          | parametros            | text        | YES  |     | NULL    |                |
          | procedimientoid       | int(11)     | NO   |     | NULL    |                |
          +-----------------------+-------------+------+-----+---------+----------------+
          6 rows in set (0,00 sec)
          

          La base de datos está en strict mode:

          mysql> select @@sql_mode;
          +-------------------------------------------------------------------------------------------------------------------------------------------+
          | @@sql_mode                                                                                                                                |
          +-------------------------------------------------------------------------------------------------------------------------------------------+
          | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
          +-------------------------------------------------------------------------------------------------------------------------------------------+
          1 row in set (0,00 sec)
          

          Creo que el fallo está ahí, lo que no sé que es mejor, definir un valor por defecto para ese campo, permitir que sea NULL o desactivar el modo strict en la base de datos.

          SAlu2

          • Message #913

            Buenas.

            En la versión 1.1.1 (Espeto) ese campo tiene un valor por defecto:

            procedimientoid INT(11) NOT NULL DEFAULT '0'
            

            Aprovecho para indicar que ya hemos liberado la nueva versión y que vamos a anunciarlo en breve.

            Saludos.

            • Message #914

              Hola,

              Con ese cambio funciona perfectamente, gracias.

              Por cierto, ahora tenemos la 1.1.0a en Ubuntu 16.04, bastará con ejecutar el script de actualización para pasar a la 1.1.1 o es necesario montarla sobre una Ubuntu 18.04?

              SAlu2

              • Message #915

                Me auto contesto,

                He probado en una mv para pruebas lo que dice en la documentación, primero he actualizado a la 18.04 y a continuación he ejecutado el guion de actualización. En principio todo parece haber ido bien.

                SAlu2

                • Message #916

                  Hola.

                  Has hecho bien, para actualizar a OpenGnsys 1.1.1 hay que actualizar primero Ubuntu a la 18.04, porque hay dependencias importantes.

                  Saludos.

Attachments

No attachments created.