FORMULARIOS SELECT GUARDAR DATOS

Hola tengo un formulario con un select que carga los datos de una tabla de mysql, la idea es que cuando haga clic en el boton enviar, no envie el nombre, si no el codigo del nombre que seleccione a una tabla de datos. Alguien podria ayudarme, estoy trabajando con formularios de la version 6x.

Muchas gracias

  1. Crea una variable de proceso tipo de dato Objeto java.
  2. En ejecución agregar un conector de entrada.
  3. Buscas mysql y luego siguiente colocas los datos de tu bd.
  4. En la siguiente page clic en el lapiz, seleccionas script, das un nombre y pegas el codigo siguiente con tu consulta. Debes cambiar de editor para hacer eso.

def scriptarea=“”
scriptarea=“select NOMBRE_AREA from portafolio.gio_p_areas”

5.En la siguiente page, a la izquierda seleccionas la variable que creaste al principio y a la derecha clic en el lapiz, seleccionas script y pegas el siguiente codigo.

List result = new ArrayList();

while (resultset.next()) {

List sousListe = new ArrayList();
sousListe.add(resultset.getString(1));

result.add(sousListe);

}

return result;

  1. Finalizar
  2. Vas al formulario seleccionas el select en datos valores disponibles seleccionas otra vez la misma variable del principio.

Espero lo logres saludos.

Hola amigo espero te acuerdes de mi, estoy haciendo un procedimiento igual al tuyo, como lograste capturar los usuarios, lo que pasa es que tengo que cargarlos en un select, y al que seleccione asignarle la tarea, ME PODRIAS AYUDAR. MIRA mi correo es rojaco007@yahoo.com , por si me deseas enviar algo. MUCHAS GRACIAS

Hola,

Me puedes comentar como has jalado los datos de una tabla de mysql y los has cargado en un campo select, es que tengo el mismo problema.

saludos

Hola,

gracias por el comentario, pero el problema es que los resultados salen de este formato:
[ dato ]
Por otra parte i si quieres jalar la opcion seleccinada por el usuario , como lo harias, te daria problemas porque arrastrrara las llaves consigo no?

Te explico:
es que estoy involucrado en un proyecto donde tengo 3 tareas humanas:

  • Tarea1-- ejecuta el asdministrador
  • Tarea2-- la ejecuta el usuario seleccionado en el cuadro de seleccion 1
  • Tarea3-- la ejecuta el usuario seleccionado en el cuadro de seleccion 2

Como puedes ver , cuando el adminsitrador ejecute el proceso , tendra consigo un formulario que contendra 2 select boxes , donde tendra que seleccionar un usuario para que haga la tarea 2 y otro para que haga la tarea3.Como lo harias?

Gracias de antemano .
Un saludo

Crea una variable de proceso tipo java.util.HashMap.

Quita este script

List result = new ArrayList();

while (resultset.next()) {
List sousListe = new ArrayList();
sousListe.add(resultset.getString(1));
result.add(sousListe);
}
return result;

y coloca este:

import java.sql.ResultSetMetaData;

HashMap<String,String> hm= new HashMap<String,String>();

resultset.beforeFirst();

while (resultset.next()) {
String key = resultset.getString(‘NOMBRE_PROCESO’);
String value = resultset.getString(‘COD_PROCESO’);
hm.put(key,value);
}
return hm;

alli te debe dar, osea alli te quita los corchetes y te envia el codigo de la etiqueta seleccionada o mejor el codigo que traes de la base.

Hola ,
en :

String key = resultset.getString(‘NOMBRE_PROCESO’);
String value = resultset.getString(‘COD_PROCESO’);

que pongo en NOMBRE_PROCES Y EN COD_PROCESO?

pongo el nombre del campo de la tabla ?

saludos

Hola de nuevo, he realizado la prueva y he echo lo siguiente ,

HashMap<String,String> hm= new HashMap<String,String>();

resultset.beforeFirst();

while (resultset.next()) {

String key = resultset.getString(‘NOMBRE_PROCESO’);

String value = resultset.getString(‘userName’);

hm.put(key,value);

}

return hm

pero me sale el siguiente error:

java.lang.reflect.InvocationTargetException
org.bonitasoft.engine.bpm.connector.ConnectorExecutionException: USERNAME=install | org.bonitasoft.engine.core.operation.exception.SOperationExecutionException: org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: Groovy script throws an exception of type class java.sql.SQLException with message = Column ‘NOMBRE_PROCESO’ not found.

Expression : SExpressionImpl [name=resultset, content=import java.sql.ResultSetMetaData;

HashMap<String,String> hm= new HashMap<String,String>();

resultset.beforeFirst();

while (resultset.next()) {

String key = resultset.getString(‘NOMBRE_PROCESO’);

String value = resultset.getString(‘userName’);

hm.put(key,value);

}

return hm;, returnType=java.util.HashMap, dependencies=[SExpressionImpl [name=resultset, content=resultset, returnType=java.sql.ResultSet, dependencies=[], expressionKind=ExpressionKind [interpreter=NONE, type=TYPE_INPUT]]], expressionKind=ExpressionKind [interpreter=GROOVY, type=TYPE_READ_ONLY_SCRIPT]]

Hola de nuevo ,

Ya logre que funcione .Actualmente lo que quiero es tal como te comente antesriormente , es assignar a un usuario una tarea y eso lo quiero hacer por formulario, donde tengo un campo select i lo lleno de todos los usuarios i cuando se seleccione uno lo que quiero es su “id” , (mediante una consulta mysql intermedia )para meterlo en el filtro de actores , hay alguna forma de obtener el id directamente ?

o hay alguna otr aforma para hacer esto.

Muchas gracias de antemano!

Bueno en el ejemplo que te envie era una conuslta a una tabla que tenia los campos COD_PROCESO Y NOMBRE_PROCESO en la etiqueta del select aparece el nombre del proceso pero cuando enviaba el formulario se enviaba COD_PROCESO, osea que en tu consulta jala los dos campos el ID y el NOMBRE_USUARIO que creo eso es lo que preguntabas arriba. La función de arriba es precisamente para eso.

Bueno en el ejemplo que te envie era una conuslta a una tabla que tenia los campos COD_PROCESO Y NOMBRE_PROCESO en la etiqueta del select aparece el nombre del proceso pero cuando enviaba el formulario se enviaba COD_PROCESO, osea que en tu consulta jala los dos campos el ID y el NOMBRE_USUARIO que creo eso es lo que preguntabas arriba. La función de arriba es precisamente para eso. Aunque sinceramente ya no los estoy manejando con la version 6x estoy intentando hacer lo mismo en la versión 7, en la cual todo cambia por completo.

Bueno en el ejemplo que te envie era una conuslta a una tabla que tenia los campos COD_PROCESO Y NOMBRE_PROCESO en la etiqueta del select aparece el nombre del proceso pero cuando enviaba el formulario se enviaba COD_PROCESO, osea que en tu consulta jala los dos campos el ID y el NOMBRE_USUARIO que creo eso es lo que preguntabas arriba. La función de arriba es precisamente para eso. Aunque sinceramente ya no los estoy manejando con la version 6x estoy intentando hacer lo mismo en la versión 7, en la cual todo cambia por completo.

Hola de nuevo , gracias por responder!,

El ejemplo funciona y me devuelve los usuarios bien , el problema es que ahora estoy implementado otro conectro donde lo que necesito recuperar es el id y la variable cambia , porque ahora necesito guardar los resultados en una variable tipo java.lang.long , esta variable ira definida en actor filter(por eso me obliga a que escoja una variable tipo java.lang.long) , la idea es que el usuario que inicia sesion selecciona en el select box que usuario va a ejecutar una tarea entonces selecciona su nombre en el selectbox , entonces lo que haya seleccionado se guarda en una variable que ira dentro un conector para que forme parte de una consulta mysql asi:

select id from user_ where userName='${variable_q_contiene_usuario}'

la variables donde me devuelve los resultados es una variable tipo java.util.Hashmap, y la idea es que me guarde el resultado de la consulta mysql en una java.lang.long tal como te explique.

Espero que me puedas ayudar.
Muchas gracias de antemano:)

Ya esta resuelto.

Gracias!

Hola ,

Lo que tienes que hacer es cargar los campos select a partir de la variable que recoge los usuarios a partir de la consulta mysql. Hecho esto y como paso intermedio tienes que realizar otra consulta para crear una consulta par arecoger el id del usuario que hayas seleccionado en el campo select i guardarlo en una variable eso si que sea del tipo java.lang.long para ponerla despues en el filtro de los actores y con esto cualquier usuario que escojas se le assignara la tarea.

Saludos

Hola mira, pero por lo que veo no estas trabajando con H2 que es por defecto la base de bonita,si no que estructuraste MYSQL por defecto, yo no he podido lograr eso, yo se que bonitasoft crea una organizacion y luego esta es publicada en la base de datos, yo estoy trabajando con H2 pero no se como acceder a esa tabla de usuarios de la organización. Disculpa tienes un skype donde te pueda contactar, lo que pasa es que me surgen muchas dudas. GRACIAS

Actualmente estoy trabajando en la oficina , te mandare un mail para que tengas mi correo electronico y cuando pueda hablamos.

En cuanto al tema de la base de datos , yo realize la modificacion a MYSQL , aqui tienes un video:

H2–>MYSQL

Cambiar el tipo de base de datos e ayudara en tu tarea.

Saludos.

hola gracias, te cuento que ese vídeo lo he visto 70 millones de veces y lo único que logre fue, crear la estructura de tablas, pero cuando iba a publicar la organización, me daba un error el cual nunca pude solucionar. TE LO AGRADECERÍA 100% si me ayudas a colocar ese gestor por defecto.

Hablamos por mail , ya te mande un mail a tu correo.
Ahora estoy disponible