El trigger obligatorio que dieron de ejemplo solo sirve si ProcessMaker y la base de datos esta corriendo en la misma base de datos y con acceso a ambos esquemas.
Si tengo mi PM en una maquina y mi base de datos en otra, obviamente este trigger obligatorio no logra hacer la conexion con la BD externa y no ejecuta mis consultas SQL. Como puedo solucionar este problema?
Claro, cree una nueva conexion a una maquina que no esta en localhost, sino en una maquina en algun lado perdido del internet. Pasa todos los test la conexion funciona sin problemas.
El problema no es ninguno en pantalla sino que simplemente el @@DB que retorna el hacer la consulta obligatoria no es valido, no es el indicado para conectarme a mi maquina remota, seguramente es el indicado para conectarme a localhost solamente (dado que mas encima PM se conecta como root es obvio que se tiene acceso a todos los esquemas dentro de localhost), al hacer cualquier executeQuery se muere la ejecucion del codigo del trigger.
El trigger obligatorio supone que solo tienes una base de datos configurada en un proceso, sea esta localhost o remota. Si tienes dos o mas, usa solo la primera que encuentra que en tu caso, es localhost
Pueden dejar acá todas las ideas que tengan respecto al Process Maker, tales como: ideas para mejorarlo, proponer otro workflow, reclamos, información de errores, bugs, en fin cualquier comentario respecto al uso de este workflow durante la última etapa del ramo. Por favor sean lo más objetivo que puedan.
En comparacion al programa que usban antiguamente, segun comentarios escuchados, process maker (pm) es mas amigable y bonito, sin embargo creo que es similar a lo que ocurre con windows vista y winxp: es mas lento.
A pesar de eso, es muy instintivo y no es dificil de usar. Creo que los problemas surgieron en que el manual que se entrego no permitia responder a todas las dudas que se quisieron hacer, y finalmente las respondian los ayudantes en persona, por mail , msn o foro.
Quizas en vez de cambiar el programa, se debiera "instruir" más a los alumnos en un proximo curso en las clases auxiliares, en cuanto a la parte operativa del programa y su relacion con la base de datos del Query. Creo que a muchos les paso que por dejar pasar el tiempo, a los finales estaban recien instalando el programa o haciendo los formularios.
Tambien como recomendacion el dejar un ejemplo de un proceso en el pm, como se hizo finalmente pero un poco tarde. Se que fue primera vez que se usaba este programa en el curso, pero hubiera sido mejor dejar "la muestra" y que los alumnos vieran como operaba. Al fin y al cabo, el objetivo no es aprender a programar, sino el poder implementar un prototipo que muestre la operacion del rediseño hecho en el proceso de estudio y que se adapte de la mejor forma a las necesidades. Los detalles en cuanto a "hermosear" el prototipo y los formularios que se utilzaran dependen del tipo de proceso que se este haciendo.
Eso, gracias por la disponibilidad a responder las dudas que tuvimos.
$sql1="SELECT nombre as NOMBREG1,apellido_pat as APEPATG1,apellido_mat as APEMATG1,profesion as PROFG1,ano_ingreso as ANHOG1,mail as MAILG1,celular as CELULARG1 FROM profesional WHERE nombre='$nombrebusqueda' OR ano_ingreso=$anhobusqueda;";
@@datosequiposgrid1=executeQuery($sql1,@@DB);
La busqueda funciona muy bien. Salvo cuando uno de los 2 campos no se llena. En ese caso tira un error. Incluso si se llena con cualquier dato (aunque no exista en al base de datos), se ejecuta normalmente pues el comando es OR.
la solucion que le dimos es dejar de valor predeterminado 0 en todos los campos. Claramente no es la solucion optima, pero funciona..
mi duda es: no podría hacer algo asi como crear 2 triggers, uno para cada campo (en vez de dejar un trigger solo anidado con condicion OR), y poner en conditions algo del estilo de :
@@NAME_PROF ! NULL;
y
@@CAMPO_ANHO ! NULL;
Es decir , que ejecute el trigger en particular, solo si el campo es diferente de NULL.. no se si se podrá escribir de esta forma o como..
Intente algo parecido pero no me resulta y ya que en el manual no aparecen mayores referencias al respecto decidí consultarlo en el foro.
el asunto es que cree grupos, a los grupos le asigné usuarios nuevos y estos los asigné a las tareas correspondientes... todo funciona bien...
hasta que lo exporto y lo probamos en otro pc (simulando a un ayudante) y los usuarios no me aparecen y tampoco asignados... entonces no se que pasa:S
igual es importante asignarles grupos a las tareas (de hecho lleva puntaje) pero este problema me lo impide...
alguien sabe que sucede?
agradecido
Lo q yo sé es q al exportar se guarda todo salvo los users (los grupos sip). Si asignaste un grupo a una tarea eso permanece, pero si es un user yo cacho que nop. Ahí no queda otra q darse la lata de hacer nuevos users a cada vez y asignarlos a los grupos...
Seguramente usaste la asignación denominada "Users & Groups (Ad-hoc)" esa es precisamente la que NO hay que usar, puesto que como dije en un hilo anterior, esta se utiliza para casos particulares en donde el prototipo no será usado en otro pc más que en el actual.
Te debería exportar los grupos, si no te los exporta es porque algo estás haciendo mal. Un problema puede ser que los grupos no estén asignados a tareas. Recuerda que sólo se exportan los grupos NO los usuarios. No debería haber problemas con la exportación, al menos es el primer grupo que declara problemas con esto.
gracias por la respuesta, para los que tengan el mismo problema esto ocurre cuando se desconfigura la conexion con la base de datos, y si es que tienen un dropdown que lee desde la base, asi que tienen que asignarlos todos nuevamente (una lataaa)
me referia a que, cuando uno en el Edit del dropdown, si le puso un codigo sql, ademas ahi se debe poner la base de datos con la cual esta relacionada. Cuando ocurre la desconfiguracion de la que hable, el codigo sql sigue ahi , pero la base de datos no sale "asignada" y hay que elegirla nuevamente.
Hola: Necesito insertar datos desde un dynaform que tiene textfiles y grid pero al momento de insertar los valores desde el grid me ingresa los datos en otro registro y yo los necesito todos en un mismo registro. Trato de actualizar con un update el grid pero no puedo llevarme variables externas dentro del grid. Como por ejemplo el maximo de los registros para que actualice el ultimo. Se que es un poco tarde pero de verdad es urgente. Gracias
Estamos añadiendo mas funcionalidades a nuestro PM, y basicamente tenemos una tarea dodne se ingresa un año de busqueda, y luego en el siguiente dynaform se entrega informacion al respecto con aquellos que cumplan el criterio del año en cuestion.
Este es el codigo que puse
$anhobusqueda=@@CAMPO_ANHO;
$sql="SELECT nombre as NOMBREG,apellido_pat as APEPATG,apellido_mat as APEMATG,profesion as PROFG,ano_ingreso as ANHOG,mail as MAILG,celular as CELULARG from profesional WHERE ano_ingreso == $anhobusqueda;";
@@datosequiposgrid=executeQuery($sql,@@DB);
donde CAMPO_ANHO es el nombre del text buton del dynaform anterior en el que se pone el año
todo el resto de NOMBREG, APEPATG etc etc son los text field del grid. (eso se que esta bien porue tenemos en otro lado un grid con esos mismos campos y funciona bien)
el poblema es que al probar el caso y llegar a esa parte nos sale el siguiente error:
Notice: Undefined index: datosequiposgrid in C:\Archivos de programa\ProcessMaker-1.705\www\ProcessMaker1705\workflow\engine\classes\class.pmScript.php on line 340
podría ser porque el datosequiposgrid esta referenciado en otro dynaform paralelo tambien?
$sql="SELECT nombre as NOMBREG1,apellido_pat as APEPATG1,apellido_mat as APEMATG1,profesion as PROFG1,ano_ingreso as ANHOG1,mail as MAILG1,celular as CELULARG1 from profesional WHERE profesional.ano_ingreso = 1998;";
@@datosequiposgrid1=executeQuery($sql,@@DB);
Ese es el codigo. Por si a alguien le sirve, me equivoque en algo muy tonto y era poner despues del WHERE == y no = .
Tengo todos mis task asociados a grupos pero uno me tira el siguiente error "this row doesn't exist" y eso... no se como asignarle usuario a eso...
saludos !!!
ojalá alguien sepa!!!
gracias por todas las ayudas, me han servido demasiado
yo recuerdo haber visto ese error en algún momento.. la verdad es que no me acuerdo muy bien que hice para solucionarlo.. revisa que tiene de especial ese task.. porque si agregaste todo bien no debería de haber problemas..
Bueno ojalá alguien te ayuda como corresponde. Aquí hacemos el humilde intento jeje
el error se produce por haber eliminado un grupo sin haberlo desasignarlo a esa tarea. Lo mejor
que puedes hacer es borrar esa tarea y volverla a hacer.
probamos la consulta MAX en el sql y resulta bien, ahora al ejecutarla en process maker y guardarla en una variable primero nos dice que es un Arreglo, siendo que tiene un valor único...
alguien sabe como guardar esta consulta para que quede como valor único y no como arreglo???
urgente!!!
saludos,
$consulta_noentregados="SELECT COUNT(*) from pedido where pedido.retiro<'$hasta' AND pedido.retiro>'$desde' and pedido.entregado=0 ;";
$consulta_entregados="SELECT COUNT(*) from pedido where pedido.retiro<'$hasta' AND pedido.retiro>'$desde' and pedido.entregado=1 ;";
este es el mismo problema que tengo con el MAX... el process piensa que $porentregar es un arreglo y no lo puedo ingresar al campo, por otro lado probamos colocandole el [1] y tampoco funciona... ojalá nos puedas ayudar,
saludos!! muy cordiales !
...
$consulta_noentregados="SELECT COUNT(*) as cnt from pedido where pedido.retiro'$desde' and pedido.entregado=0 ;";
$consulta_entregados="SELECT COUNT(*) as cnt from pedido where pedido.retiro'$desde' and pedido.entregado=1 ;";
$porentregar=executeQuery($consulta_noentregados,@@DB);
$entregados=executeQuery($consulta_entregados,@@DB);
@@porentregar=$porentregar[1]['cnt'];
@@entregados=$entregados[1]['cnt'];
??
(Esto, porque se supone que el count te debe entregar una fila (No hay group by) y además esa fila es un arreglo con un elemento que contiene tu conteo)
$consulta_noentregados="SELECT COUNT(*) from pedido where pedido.retiro'$desde' and pedido.entregado=0 ;";
te falto la condicion $retiro='$desde' (o sea un igual, mayor, mayor o igual, etc)
Ahora, lo que pasa es que las respuestas de una consulta son siempre una matriz, aunque esta sea de 1x1.
En tu caso, ponle nombre a la columna, y luego obten su valor.
$consulta_noentregados="SELECT COUNT(*) AS conteo from pedido where pedido.retiro>='$desde' and pedido.entregado=0 ;";
...
Que es más o menos lo mismo que le dije yo 😆
(Lo del signo en la condición lo asumí como error al traspasarlo acá, porque dijo que había validado que la consulta le funcionaba 😜)