Вы находитесь на странице: 1из 6

Bonitasoft.com (http://www.bonitasoft.com) | Customer Portal (https://customer.bonitasoft.

com) |
Documentation (http://documentation.bonitasoft.com)

(/user/login)

¿Cómo crear un proceso para registro de


usuarios?
Submitted by isaacehm on Sun, 01/17/2016 - 18:08

Buen día. Soy tesista en la Universidad Central de Venezuela y estoy desarrollando un sistema de
0 gestión de pasantias para mi escuela (Escuela de Computación de la Facultad de Ciencias). Ahora
bien, he estado investigando durante varias semanas sobre Bonita BPM ya que mi propuesta de
solución se basa en la utilización de esta herramienta. Como estoy empezando el desarrollo de
dicho sistema, estoy comenzando por realizar el siguiente proceso:

Una empresa/organización se registra en el sistema mediante un formulario


Los datos del registro son evaluados por un administrador que valida si es una empresa legal
o no
Si la empresa es legal, puede hacer login en el sistema para publicar ofertas de pasantias
para los estudiantes

Bien, los dos primeros puntos los he logrado abarcar luego de estudiar la documentación oficial,
sin embargo, necesito asesoría con el tercer punto, puesto que no se como debo realizar el
proceso de login de manera correcta, es decir, que la empresa con el usuario y contraseña
especificados en el formulario pueda ingresar al sistema posteriormente. Cabe destacar que para
la solución de los dos primeros puntos, he definido un Objeto de Negocio llamado "Empresa", el
cual posee los distintos atributos que necesito conocer de la empresa (nombre, dirección,
telefono, usuario, contraseña, etc), igualmente he definido una organización con Grupos, Roles y
Usuarios.
authentication (/tags/authentication) Login (/tags/login)

Log in (/user/login?destination=node/22154%23comment-form) or register (/user/register?


destination=node/22154%23comment-form) to post comments
4386 reads

Comments
 Submitted by choripanada on Tue, 01/26/2016 - 20:24
Hola, tengo un problema similar. Como hiciste la primera parte para el registro de las empresas?
Lo que quiero lograr es que todo el proceso de registro sea gestionado por bonita, pero para que el proceso
pueda ser instanciado hay que iniciar sesión en el portal. El problema que tengo con esto es ¿cómo voy a iniciar
sesión si no estoy registrado?

Precisamente, porque luego del registro, alguien debe validar los datos de la empresa y otra documentación para
que una vez validado el usuario se active y pueda hacer login en el sistema.
 Permalink (/questions-and-answers/%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-
usuarios#comment-5773)

 Submitted by isaacehm on Tue, 01/26/2016 - 20:50


Hola. Bueno, para la ejecución del proceso que nombre: Registro de empresa, dentro de la organización que cree
desde el menú Organización > Administrar..., definí un usuario llamado "Invitado" con su respectiva contraseña,
dicho usuario es el que ejecutara el proceso de Registro de empresa. Así mismo, entre los actores que definí para
la Pool, agregue uno llamado "Invitado" y desde el botón Configurar > Mapeo de actores ubicado en el coolbar,
especifique para dicho actor el rol Invitado que te mencione anteriormente.

Por otro lado, dentro de la empresa también definí un usuario "Administrador", el cual al momento de crear el
usuario "Invitado" coloque en el campo "Responsable" a dicho "Administrador", de modo que cuando el
"Invitado" inicie el proceso y envié el formulario de registro, el "Administrador" lo recibe en la lista de tareas por
revisar/hacer. Te recomiendo que primero definas la estructura de la organización que quieres representar, es
decir, la organización, sus departamentos o grupos, los cargos o roles que coexisten y los usuarios iniciales.

Saludos.
 Permalink (/questions-and-answers/%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-
usuarios#comment-5774)

 Submitted by choripanada on Tue, 01/26/2016 - 21:01


Vale, gracias por la pronta respuesta, pensaba hacer una aproximación similar (también leí algo por la Q&A de un
usuario anónimo, aunque no me queda del todo claro), el inconveniente que tengo con esto es que ese usuario
invitado tiene acceso a todo el portal de Bonita. ¿Como restringes o evitas que solamente pueda ejecutar la tarea
de registro y que no pueda acceder a otras partes del portal (o por vía API, URL, etc.)?

Ahora lo que tengo definido es una LivingApp a modo de prueba con un Home y un link a mi proceso de registro,
con la organización y actores por defecto. El problema con el que me topé es que si modifico la vista de Login al
Bonita Portal para tener un inicio de sesión al sistema (Una App) y un link al proceso de registro (Otra App), no se
instancia ninguna tarea en el motor de Bonita hasta no haber un usuario con sesión iniciada (por ejem.
walter.bates) y por lo tanto no puedo continuar.

Seguiré haciendo pruebas con un usuario "invitado", pero debería haber una solución más elegante :P (no se si
sea así en la versión de suscripción...)

Saludos.
 Permalink (/questions-and-answers/%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-
usuarios#comment-5775)

 Submitted by isaacehm on Tue, 01/26/2016 - 21:37


Si, es verdad, ese usuario Invitado percibe permisos de administración. En ese caso te podría servir mas el
usuario anónimo aunque yo tampoco he logrado entenderlo del todo. Particularmente, no me afecta del todo
tener ese "Invitado" puesto que solo lo uso para iniciar el proceso de registro, mientras que estoy haciendo un
login personalizado mediante el UI Designer (sin implicar ningún proceso) para evitar el uso del Bonita Portal e
independizar lo mas posible la app que estoy desarrollando, para esto me valgo del loginservice del API
(http://documentation.bonitasoft.com/rest-api-overview-0 (http://documentation.bonitasoft.com/rest-api-
overview-0)). Y dicho loginservice me ha permitido poder crear instanciaciones de procesos (../API/bpm/process?
p=0&c=1&f=name=nombre del proceso).

Espero sirvan de algo los comentarios, yo también estoy aprendiendo aun esta herramienta y voy poco a poco,
seguro hay cosas que no estoy desarrollando del todo bien.
Saludos.
 Permalink (/questions-and-answers/%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-
usuarios#comment-5776)
1 answer

(/answer-%C2%BFc%C3%B3mo-crear-un-proceso-
para-registro-de-usuarios)
Submitted by mzhu on Mon, 01/18/2016 - 14:40

El engine API de Bonita te serviría mucho, sería bueno que leyeras dicha documentación:
+1 http://documentation.bonitasoft.com/manage-users
(http://documentation.bonitasoft.com/manage-users)

En tu caso podrías crear un connector de tipo script y haciendo uso del engine API podrías
registrar un nuevo usuario a la organización de bonita basado en los datos de tu formulario.

Saludos

Log in (/user/login?destination=node/22156%23comment-form) or register (/user/register?


destination=node/22156%23comment-form) to post comments
577 reads

Comments
 Submitted by isaacehm on Mon, 01/18/2016 - 19:43
Muchísimas gracias, logre comprender y avanzar un poco mas. Ya pude crear el usuario como me dijiste, ahora
estoy tratando de añadirlo a un perfil, pero algo extraño ocurre con esa parte del código. Saludos.
 Permalink (/answer-%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-usuarios#comment-5683)

 Submitted by eduardo.cortez_1 on Tue, 01/19/2016 - 21:22


`/*
GENERAR USUARIO BONITA
*/
UserCreator creator = new UserCreator(usuario, password);
creator.setFirstName(unidadVar.getNombreUnidad()).setLastName("");

ContactDataCreator proContactDataCreator = new ContactDataCreator().setAddres


creator.setProfessionalContactData(proContactDataCreator);
final User user = apiAccessor.identityAPI.createUser(creator);

org.bonitasoft.engine.api.ProfileAPI orgProfileAPI = apiAccessor.getProfileAP


SearchOptionsBuilder searchOptionsBuilder = new SearchOptionsBuilder(0,10);
searchOptionsBuilder.filter(ProfileSearchDescriptor.NAME, "user");
SearchResult<Profile> searchResultProfile = orgProfileAPI.searchProfiles(sear

// we should find one result now


if (searchResultProfile.getResult().size()!=1)
{ return null; }

// now register the user in the profile


Profile profile = searchResultProfile.getResult().get(0);
ProfileMemberCreator profileMemberCreator = new ProfileMemberCreator( profile
profileMemberCreator.setUserId( user.getId());
orgProfileAPI.createProfileMember(profileMemberCreator);

org.bonitasoft.engine.api.ProfileAPI orgProfileAPIAdmin = apiAccessor.getProf


SearchOptionsBuilder searchOptionsBuilderAdmin = new SearchOptionsBuilder(0,1
searchOptionsBuilderAdmin.filter(ProfileSearchDescriptor.NAME, "administrator
SearchResult<Profile> searchResultProfileAdmin = orgProfileAPIAdmin.searchPro

// we should find one result now


if (searchResultProfileAdmin.getResult().size()!=1)
{ return -1; }

// now register the user in the profile


Profile profileAdmin = searchResultProfileAdmin.getResult().get(0);
ProfileMemberCreator profileMemberAdminCreator = new ProfileMemberCreator( pr
profileMemberAdminCreator.setUserId( user.getId());
orgProfileAPIAdmin.createProfileMember(profileMemberAdminCreator);

long idGroup = Long.parseLong(grupo);


long idRol = Long.parseLong(rol);
try{
UserMembership memberShip = apiAccessor.getIdentityAPI().addUserMembershi
}catch(Exception e){

}`

Yo utilizo este script para crear el usuario de acuerdo al perfil de usuario y administrador, tambien agrego la
membrecia al usuario con parametros "grupo" y "rol".

Cualquier consulta puedes contactarme a : eduardo.cortez@bird.com.sv (mailto:eduardo.cortez@bird.com.sv),


ofrecemos consultorias.
 Permalink (/answer-%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-usuarios#comment-5702)
 Submitted by isaacehm on Tue, 01/19/2016 - 21:39
Excelente, muchas gracias, Eduardo. Hice algunas comparaciones con mi código, modifique algunas lineas y logre
el objetivo. Saludos.
 Permalink (/answer-%C2%BFc%C3%B3mo-crear-un-proceso-para-registro-de-usuarios#comment-5703)

Create a question (/node/add/answers-question)

Latest
Démarrages automatiques de tâches en fonction de certaines dates (/questions-and-
answers/d%C3%A9marrages-automatiques-de-t%C3%A2ches-en-fonction-de-certaines-dates)
Deleted (/questions-and-answers/deployment-options)
Is there a way to restore a archived case? (/questions-and-answers/there-way-restore-archived-
case)
Get all groups of a task ID's actor (/questions-and-answers/get-all-groups-task-ids-actor)
Next possible task (/questions-and-answers/next-possible-task)

Unanswered
Obtener variables de formularios Bonita 7.9.4 (/questions-and-answers/obtener-variables-de-
formularios-bonita-794)
Complete Human tasks in Bulk (/questions-and-answers/complete-human-tasks-bulk)
Drop down tutorial (/questions-and-answers/drop-down-tutorial)
Possible impact for migrating Bonita while MySQL is on a dedicated server (/questions-and-
answers/possible-impact-migrating-bonita-while-mysql-dedicated-server)
Modify Process Model after upgrade of Bonita platform (/questions-and-answers/modify-process-
model-after-upgrade-bonita-platform)

Popular
1. REST API extension SQL datasource (/questions-and-answers/rest-api-extension-sql-datasource) -
2,704 reads
2. Manipulate elements of repeat container using Javascript (/questions-and-answers/manipulate-
elements-repeat-container-using-javascript) - 2,638 reads
3. how can i insert image as background in my forms ? (/questions-and-answers/how-can-i-insert-
image-background-my-forms) - 2,066 reads
4. How get session cookies from UI Designer (/questions-and-answers/how-get-session-cookies-ui-
designer) - 1,473 reads
5. transition path conditions (/questions-and-answers/transition-path-conditions) - 1,182 reads
(/)

Bonitasoft helps innovative companies worldwide reinvent, automate and gain deep visibility into their
business processes. Bonitasoft's Bonita Digital Process Automation platform enables collaboration between
professional and citizen developers to rapidly deliver automation projects and applications using best-of-
breed DevOps methodologies and tools.
With an ecosystem of more than 150.000 members and customers in 75+ countries, Bonitasoft provides the
most widely used open source and low-code platform for business process automation.

(https://twitter.com/bonitasoft) (https://www.facebook.com/bonitasoftbpm)
(https://www.linkedin.com/company/bonitasoft/) (/blog/rss)
(https://www.youtube.com/user/BonitaSoft)

Site map (/sitemap) | Terms of use (/bonitasoft-website-legal-terms-use)


© Bonitasoft Community is licensed under a CC by-sa 4.0 International License.

Вам также может понравиться