Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual de Uso ProcessMaker
Manual de Uso ProcessMaker
Manualdeuso
ProcessMaker
v1.0
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile1
ManualdeusoProcessMaker
Resumen
Estemanualtieneporobjetivoorientaralosalumnosquecursanelramodel
departamento de industrias de la Universidad de Chile correspondiente a
Diseo de Sistema de Informacin Administrativos; obligatorio para la
formacindeestudiantesdeespecialidadindustrialycomputacinendicha
casa de estudios. El manual gua en la creacin de un proceso en el
programa ProcessMaker versin 1.705 e incorpora desde la creacin de
tareashastalacreacindetriggers,conexinabasesdedatosyusode
formularios.
EstebanAllendePrieto
DiegoDazEspinoza
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile2
ManualdeusoProcessMaker
TabladeContenidos
IniciodeSesin....................................................................................................................................4
Construccindeunprototipo...............................................................................................................5
Creacindeusuariosygrupos.........................................................................................................6
Creacindegrupos..........................................................................................................................8
Creacindelproceso......................................................................................................................11
ConfiguracindelaBasedeDatos................................................................................................13
Configuracindelmapadeprocesos.............................................................................................18
Creacindedynaforms..................................................................................................................27
AgregaruncomponenteGrid........................................................................................................38
Configuracindelospasos............................................................................................................42
CargadedatosdelaBasedeDatos...............................................................................................48
ConsultasenSQL......................................................................................................................48
ConsultasenProcessMaker.......................................................................................................50
Cargadeuncampodetexto......................................................................................................50
Cargadeunalista......................................................................................................................50
Cargadeungrid........................................................................................................................51
CreacindeTriggers.................................................................................................................51
ModelosdeTriggers..................................................................................................................53
TriggerObligatorio...............................................................................................................53
TriggerdeInsercin/ActualizacinenSQLenlaBD..........................................................54
TriggerdeInsercinenSQLrecuperandoId.......................................................................54
TriggerdeCargaManualdeunGrid....................................................................................54
TriggerdeCargaManualdeuncampo................................................................................54
TriggerdeInsercin/ActualizacindeFilasdeunGridalaBD.........................................55
SQLenTriggers........................................................................................................................56
Insercin,ActualizacinyEliminacinenSQL..................................................................56
ActualizacindeunGrid......................................................................................................56
Ubicaruntrigger...................................................................................................................57
UbicacindelTriggerObligatorio.......................................................................................60
PruebadelPrototipo.......................................................................................................................61
Exportacin....................................................................................................................................66
Importacin....................................................................................................................................67
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile3
ManualdeusoProcessMaker
IniciodeSesin
DirijasealadireccinHttp://localhost.
Aquingreselainformacindecuentadelgrupo(user,passwordyworkspaceonombre
delgrupo).Siestaejecutandodesdesuequipo,estasson:
user:admin
password:admin
workspace:workflow
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile4
ManualdeusoProcessMaker
Construccindeunprototipo
Pasosaseguirenlaconstruccindelprototipo
1Creacindegruposyusuarios
2Creacindelproceso
3ConfiguracindelaBasedeDatos
4Configuracindelmapadeprocesos
5CreacindeDynaforms
6Configuracindelospasos
7CargadedatosdelaBasedeDatos
8ActualizacindelaBasedeDatos
9Pruebadelproceso
10Exportacindelproceso
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile5
ManualdeusoProcessMaker
Creacindeusuariosygrupos
Aqusevaacrearlosgruposdeusuariosnecesariosparaelprocesoyaprovechando
tambincrearemosdepasoalusuariodeprueba.
Queesungrupodeusuarios?
Un grupo de usuarios son todos los usuarios que pueden realizar ciertas tarea. Por
ejemplo, Maria es una vendedora que realiza el ingreso de ventas. Maria entonces
perteneceraalgrupodeVendedores.Aunqueelsistemapermiteasociarunatareaaun
usuarioenparticular,esmuchomejorusargruposyaquepermiteunamayorflexibilidad
eneltemaderecursoshumanosyexpansin
Peroantescrearemosalusuariodeprueba.Esteusuarioesopcional,yaquepueden
ocupar al usuario admin como usuario para probar los casos, aunque no es
recomendable.
1VayaaUSERSyhagaclicenellinkNew
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile6
ManualdeusoProcessMaker
2IngreseunuserID(ej:prueba).Esteseraeluserqueseusaraparainiciarsesin
3Cambielafechadeexpiracin(Expirationdate)aunafechaprudente(ej:prximo
ao),yaquedesdeestafechaenadelantenopodrocuparalusuario.
4 Cambie Role a PROCESSMAKER_OPERATOR (Nota: Nunca cambie el Role del
usuarioadmin)
5IngreseenNewPasswordlanuevapassword,yescribalanuevamenteenConfirm
Password
6IngreseenFirstNameunnombre.(Ej:Prueba)
7Sidesea,completelosotroscampos.
8HagaclicenSave
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile7
ManualdeusoProcessMaker
Creacindegrupos.
1VayaaUSERSyelijaGroups
2HagaclicenNewGroupyenlaventanaqueaparece,ingreseenNameelnombre
delgrupo(oqueeslomismo,elnombredelRoleneldiagramadeRoles).Hagaclicen
Save.RealiceestepasoporcadaRolqueposeasudiagramadeRoles.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile8
ManualdeusoProcessMaker
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile9
ManualdeusoProcessMaker
3HagaclicenellinkMembersqueaparecealladodelprimergrupo.Luego,hagaclic
enAssignEmployee.
4Enlaventanaqueaparece,hagaclicenenAssignqueseubicaenladerechadel
usuarioprueba.(OAdministratorsiestnocupandoaladministradorcomousuariode
prueba).
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile10
ManualdeusoProcessMaker
5Repitalospasos3y4porcadagrupoqueposea.
Creacindelproceso
1ElijaPROCESSESyhagaclicenellinkNew
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile11
ManualdeusoProcessMaker
2EnTitleingreseelnombredelprocesoyenDescriptionunabrevedeldescripcinde
este.HagaclicenelbotonSaveparacrearelproceso.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile12
ManualdeusoProcessMaker
ConfiguracindelaBasedeDatos
Para poder usar la Base de Datos en ProcessMaker, primero hay que configurar la
conexinenelproceso.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile13
ManualdeusoProcessMaker
Esteeselmapadeprocesos.Parapoderllegarael,elijaeltabPROCESSESyhaga
clicenlinkEditqueaparecealaderechadesuproceso.
Paraconfigurarlaconexin:
1HagaclicenDATABASECONNECTIONS.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile14
ManualdeusoProcessMaker
2Enlaventanaemergente,hagaclicenNew
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile15
ManualdeusoProcessMaker
4HagaclicenTestConnection.Sitodosalebien,deberaverunapantallasimilarala
siguiente.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile16
ManualdeusoProcessMaker
5HagaclicenOK,yluegoenCREATE.FinalmentecierrelaventanadeBasedeDatos.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile17
ManualdeusoProcessMaker
Configuracindelmapadeprocesos.
a)CreacindeTareas
Elmapadeprocesosesellugaradondeseindicaquetareastieneelprocesoycualesla
secuenciadeejecucinSeencuentraenPROCESSESyluegohaciendoclicenellink
Editqueseencuentraaladerechadelproceso
Loprimeroquesedeberealizareslacreacindetareas.Paraello,hagaclicderecho
sobreelmapa.
HagaclicenAddTask.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile18
ManualdeusoProcessMaker
SalvoquesutareasellameTask1,vamosahoraacambiarledenombre.Hagaclic
derechosobrelatarea.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile19
ManualdeusoProcessMaker
AhorahagaclicenProperties
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile20
ManualdeusoProcessMaker
EnTitleseingresaelnombredelatarea,mientrasqueDescriptionseingresauna
brevedescripcindeloquesedeberahacerenlatarea.Sielprocesopuedecomenzar
porestatarea,entoncessechequeaStartingTask.Cuandofinalice,hagaclicenSave.
(Nota: Salvo si sabe lo que esta haciendo, no cambie el valor de Variable for Case
priority)
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile21
ManualdeusoProcessMaker
Lapelotitaverdequesalearribadelatareasealaqueelprocesopuedepartirdeesta
tarea.
b)Definicindelasecuencialidaddetareas.
Ahoraquelastareasestncreadas,estiempodedefinirelordendeejecucindelas
tareas.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile22
ManualdeusoProcessMaker
Losiconosqueseencuentranenlapartesuperiorderecha(enestecaso,tambinala
derechadelTitulo)permitendefinirlasecuenciadeejecucindelproceso.Eliconode
mas a la izquierda, el de la flecha gris, permite definir una secuencia simple. Una
secuenciasimpleesunasecuenciaqueindicaquecuandoterminalatareaA,paseala
tareaB.Paracrearestetipodesecuencia,arrastreconelmouselaflechagrisalatareaA
(tareaorigen)enlacualenelejemplovaaserRegistrodePedidodeTutora
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile23
ManualdeusoProcessMaker
Despusdearrastrarysoltarlaflechagrisenlatarea,apareceunaflechaconunpunto
rojo.AhorasedebehacerclicenlatareaB(tareadestino).
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile24
ManualdeusoProcessMaker
Quedandoas
Ahora,queremosindicarquelaultimatareaeslatareafinal.Paraesobastaarrastrarel
iconodelapelotitanaranjasobrelatareafinal,enestecasoChequearDisponibilidad
Horaria.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile25
ManualdeusoProcessMaker
Depasada,tambinseagregootrasecuenciasimpledelasegundatareaalatercera
tarea.Comoestaahoraelproceso,esteparteenRegistrodePedidodeTutora,pasando
luego a Chequeo de Burocracia Requerida, para realizar finalmente Chequear
DisponibilidadHorariayterminarelproceso.
Elrestodelassecuenciasseexplicaranenelapndicesobreestas.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile26
ManualdeusoProcessMaker
Creacindedynaforms
Undynaformesunapaginadeformulariousadoenunaovariastareas.Paracrearuno,
hagaclicenDYNAFORMSenelmapadeprocesos.
HagaclicenNew.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile27
ManualdeusoProcessMaker
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile28
ManualdeusoProcessMaker
HagaclicenellinkEditqueestaalaizquierdadelnuevodynaform.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile29
ManualdeusoProcessMaker
Loprimeroquedeberatenereldynaformesuntitulo,aunquenoesobligatorio.Para
crearleuntitulo,hagaclicenelbotonT.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile30
ManualdeusoProcessMaker
EnFieldNameescribaelnombredelcomponente.Parauntituloosubtitulo,noesmuy
importante, pero si lo es para el resto de los componentes. Dos componentes que
compartanelmismonombre,aunqueestnendistintosdynaforms,compartenelmismo
valor.EnLabelescribaeltextoquequierequeaparezcacomotitulo.Finalmente,haga
clickenSave.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile31
ManualdeusoProcessMaker
ElbotonSpermitecrearunsubtitulo.Esparecidoacrearuntitulo,salvoqueahorael
textoaaparecerseponeenCaption.Otrocomponentequetodoformulariodeberatener
eselbotonparaavanzar.HagaclickenelbotonconlaimagendeunbotonconunaS
adentro.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile32
ManualdeusoProcessMaker
EnFieldNameponerelnombredelcomponente,yenLabelponerlaetiquetadelboton.
PresionefinalmenteSave.
AgreguemosahoraunCampodeTexto.Presioneelbotondeunrectnguloblancoconun
cursor(Eselsegundoiconodeizquierdaaderecha)
Como se podr ver, el campo de texto es el que posee mas opciones. Partamos
describindolosdeauno.
FieldName:Igualqueelrestodeloscomponentes,elnombreseusaparareferenciarlo
dentro de una consulta SQL. Adems, dos componentes que compartan el mismo
nombre,aunqueestnendynaformsdistintos,compartenelmismovalor.
Label:Textoqueaparecealladoizquierdodelcampo.Sirveparasealarquesedebera
ponerenel.
Max.Length:Mximolargodelvalor.Cualquiertamaomayoraesteestruncado.
Validate: Permite validar el campo. Any=sin validacin; Alfa=solo letras; AlfaNum=solo
letras y nmeros; Int=El campo debe ser un entero; Real=El campo debe ser un
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile33
ManualdeusoProcessMaker
real;Email=emailvalido;
Texttransformto:Sielvalorsequieretodoenmaysculasotodoenminsculas
Required:Sielvalordeesteelementodebesernovaco,sedebemarcarestaopcin
(Actualmente,solomuestraelasteriscoderequerido)
ReadOnly:Siel valordeesteelementonosepuedemodificar,se debe marcaresta
opcin
DependentField:Camposquedebenactualizarsesiestecambiadevalor.
DefaultValue:Valorinicialdeestecampo
Size:Tamaoenletrasvisibledelcampo
Mode: Indica apariencia del campo. View, muestra el valor del campo como label,
mientrasqueEdit,lomuestracomouncampodelinea.
EnnuestroejemplocompletamosFieldNameyLabeldejandoelrestoensusvalores
pordefecto.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile34
ManualdeusoProcessMaker
Observemos que el campo quedo despues del boton Siguiente. Para arreglar esto,
presioneeltabFieldsList
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile35
ManualdeusoProcessMaker
AhsehaceclickenUpqueestaaladerechadenombre_clienteparasubirloenlalista
(ytambinenlaposicinenlapagina)
EnFieldsList,unopuedeborrarcomponentescomotambineditarsuspropiedades,
inclusoelnombredecampo(FieldName).
AhorasihacemosclickeneltabPreview(yesperandounossegundosparaquese
refresque)veramosesto:
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile36
ManualdeusoProcessMaker
!!
Finalmente,adiferenciadelmapadeprocesos,undynaformtienequesergrabado.Para
estopresioneelbotondeldisqueteazul(elbotondemasalaizquierda).SitodosaleOK,
uncuadro de dialogovaainformarque se grabo el dynaform.Ahora puede cerrar el
dynaform.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile37
ManualdeusoProcessMaker
AgregaruncomponenteGrid
Supongaquequeremosqueelclientepuedapedirmasdeunatutoraalavez.UnGrid
permitetenerunacantidaddinmicadeelementos.
UncomponenteGridrequiereuntipoespecialdedynaform,elcualespecificacomovana
hacerlascolumnas.Estedynaformespecialsecreaigualqueundynaformespecial,salvo
queeltypedeldynaformnoesNormal,sinoquegrid.
LasdiferenciasentreundynaformGridyunonormalson:
Losdynaformgridposeenmenoscomponentesqueundynaformnormal
El orden de los componentes en un dynaform grid determina en que columna se
encuentra,siendolacolumnademasalaizquierda,laprimeraenlalistadecampos
(FieldList)
Loscomponentesdeundynaformgridnopuedencompartirvalorconcomponentesde
dynaforms normales. Si sucede que un componente de un dynaform grid tiene el
mismo nombre que un componente en un dynaformnormal, el valorde ambos es
distinto.
AssevelapantalladepreviewdeundynaformGrid
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile38
ManualdeusoProcessMaker
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile39
ManualdeusoProcessMaker
Aligualqueotroscomponentes,sielFieldNamecoincideconeldeotrocomponente,
tendrnelmismovalor.Sinembargo,elvalordeuncomponentegridnoescompatible
conlodelosotroscomponentes,asqueevitecompartirlo,salvoqueesteseatambinun
componente grid que posea las mismas columnas (aunque pueden estar en distinto
orden).
EnGridseseleccionaeldynaformgridquesedeseaocuparcomomolde.Sinodesea
quesepuedanaadirfilas,deschequeeAddnewrows.Sideseaquenosepuedan
eliminarfilas,deschequeeDeleterows.Paraaadir,aligualqueotroscomponentes,hay
quehacerclickenSave.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile40
ManualdeusoProcessMaker
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile41
ManualdeusoProcessMaker
Configuracindelospasos
Hastaelmomentosehancreadoformularios,ysehadefinidoelflujodelproceso.Sin
embargo,todavanosehadichoqueformulariossevanausarenquetareas.
EnelmapadeProcesos,hagaclickderechoenunaTareayseleccioneSteps
Aqusepuedenverlospasosquerealizaunatarea.Cadapasoconsisteenmostrarun
dynaform.Esasquealenviareldynaform,sepasaalsiguientepaso.Elultimopasoes
AsignarTarea,queesunpasoimplcitoParaagregarunnuevopaso,sedebehacerclick
enNew.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile42
ManualdeusoProcessMaker
Aquaparecentodoslosdynaformsquenohansidoasignadoscomopasosenestatarea.
Para agregar un dynaform como paso, se debe hacer click en Select al lado del
dynaformaagregar.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile43
ManualdeusoProcessMaker
EllinkEditpermiteeditareldynaform(EsunatajoalEditqueseencuentraenlalistade
dynaforms).EllinkRemoveeliminaeldynaformcomopaso,mientrasqueUpyDown
mueve el paso arriba o abajo respectivamente. El orden es importante, ya que se
muestraneneseordencuandoseejecutalatarea.
Por defecto, siempre se muestra todos los pasos cuando se ejecuta una tarea. Sin
embargo,sepuedeponerunacondicinparaquesemuestreunpasoenparticular.Para
eso,sedebehacerclickeneltabConditions.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile44
ManualdeusoProcessMaker
AqusepuedeobservareldynaformylacondicindeejecucinSisehaceclickenEdit,
sepuedeeditarlacondicin
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile45
ManualdeusoProcessMaker
Lascondicionessonexpresionesbooleanas.Porejemplo,siquisiramoscompararqueel
nombredelclienteesJuan,comocondicinescribiramos:
@@nombre_cliente=='Juan'
Delejemplosepuedeobservarque@@nombre_componentepermiterecuperarelvalor
deuncomponentedealgndynaform.Lootroesquealigualquealgunoslenguajesde
programacin,sedebeponerdosigualesparacompararigualdad.Ponerunsoloiguales
valido, pero tendra un efecto no deseado para muchos. (Siendo el primero, que no
comparaigualdad).Aquvaunalistadecomparadores:
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile46
ManualdeusoProcessMaker
Comparador
Efecto
==
Comparaigualdad
>=
Comparamayoroigual
>
Comparamayor
<=
Comparamenoroigual
<
Comparamenor
()
Asociaunacomparacin
Niegaunacomparacin
&&
||
Verificasialgunadelasdoscomparaciones
esverdadera(oambas)
Cuando termine de editar la condicin, se debe hacer click en Save par guardar la
condicin
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile47
ManualdeusoProcessMaker
CargadedatosdelaBasedeDatos
EnProcessMakeresrelativamentesimplelacargadedatosdelaBasedeDatos.Sin
embargo,serequiereunpocodeconocimientodeSQL.
ConsultasenSQL
UnaconsultasimpleenSQLes:
SELECT*FROMCliente;
que trae todas losregistros que se encuentra en la tabla Cliente. Si se desea traer
ciertascolumnassolamente,porejemplolascolumnasidynombrelaconsultaseria:
SELECTCliente.id,Cliente.nombreFROMCliente;
Estaconsultasepodrareescribircomo:SELECTid,nombreFROMCliente;,yaqueno
hayambigedaddesaberaquetablaspertenecenesascolumnas(porquesolohayuna
tablaenelSELECT).
Siahoranoqueremostodoslosregistros,sinolosquecumplenunrequisito,comopor
ejemploqueelsaldodelclienteseamayoroigualque100,laconsultaseria
SELECTid,nombreFROMClienteWHEREsaldo>=100;
EnSQL,laigualdades=,mientrasqueesdistintoes<>.
Quepasasinecesitamosdoscamposqueestnentablasdistintas?.Senecesitahacer
unaconsultaenvariastablas.Porejemplo:
SELECTCliente.id,Cliente.nombre,Mascota.nombreFROMCliente,Mascota
WHERECliente.mascota_id=Mascota.id;
traeeliddelcliente,nombredelclienteylamascotadeeste.Esimportanteobservarque
lacondicindelWHEREesimportante,yaquepermiteestablecerelvinculoentreCliente
y Mascota. Si no lo hubiramos puesto, hubiramos obtenido el producto cruz entre
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile48
ManualdeusoProcessMaker
ClienteyMascota.
Sisequieremascondiciones,seenlazanconANDoOR.Tambinsepuedenagruparen
parntesis
Ej:
SELECTCliente.id,Cliente.nombre,Mascota.nombreFROMCliente,Mascota
WHERECliente.mascota_id=Mascota.id
AND(Mascota.nombre='chip'ORMascota.nombre='Lazy');
Enlacualbuscaramostodoslosclientesquetengancomonombredemascota'chip'o
'Lazy'
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile49
ManualdeusoProcessMaker
LasconsultastambinsepuedenordenarusandoORDERBY.Porejemplo:
SELECTCliente.id,Cliente.nombre,Mascota.nombreFROMCliente,Mascota
WHERECliente.mascota_id=Mascota.id
AND(Mascota.nombre='chip'ORMascota.nombre='Lazy')
ORDERBYCliente.nombreASC;
querealizalamismaconsultaquelaanterior,peroordenalosregistrosporelnombredel
clientedeformaAscendente(DeAaz).SisedeseaordenardeformaDescente,se
cambiaelASCporDESC.
ConsultasenProcessMaker
Enprocessmaker,sepuedetambinocuparelvalordeuncomponentepararealizarla
consultausandolanotacin@@.Porejemplo:
SELECTid,nombreFROMClienteWHEREsaldo>=@@saldo_minimo;
buscalosclientesqueposeansaldomayorqueelespecificadoenelsaldominimo.
Cargadeuncampodetexto
Haydospropiedadesdeloscomponentesdeundynaformquenosehanmencionado.
EstassonSqlConnectionySql.SqlConnectionpermiteseleccionarlabasededatosa
ocupar.Pordefectoesnone,osea,ninguna.SqlpermiteingresarlaconsultaSQLa
realizar.
Parauncampodetextosetienequeseleccionarunasolacolumna,yqueserecupereun
soloregistro.
Cargadeunalista
Enunalista(osimilares)senecesitaseleccionardoscolumnas,ysepuedenrecuperar
variosregistros.
La primera columna se ocupa como valor, mientras que la segunda se ocupa como
etiqueta. El valor es lo que se almacena como valor del componente cuando se
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile50
ManualdeusoProcessMaker
selecciona,mientrasquelaetiquetaeselnombrequesemuestraenelcomponente.
Ej:Ponerlasiguienteconsultaenelcomponentelista_clientes
SELECTid,nombreFROMCliente;
creaunalistaenlacualsemuestralosnombresdelosclientes,ycuandoseselecciona
una,seguardasuiden@@lista_clientes
Cargadeungrid
Enungrid,nohayrestriccinnidecolumnasnidefilas.Sinembargo,elgridsolovaa
ocuparlascolumnasquecoincidaennombreconalgncomponentedelgridqueposeael
mismonombre.
Adems,estetipodecomponentenoposeeloscamposSqlConnectionniSql,porlo
quesenecesitahacerunacargamanualenuntrigger.
ActualizacindeBasedeDatos
Para actualizar la Base de Datos (tanto ingresando datos, como actualizndolos) se
necesitan Triggers as que primero explicaremos el uso de Triggers, despues las
insercionesyactualizacionesenSQL,finalmenteexplicandocomograbaruncomponente
grid.
CreacindeTriggers
UntriggerescasicdigoenPHPquesepuedeejecutarantesodespuesdeunpaso.Es
casi,porquesepuedeocupar@@paraindicarunvalordeuncomponente.Detodas
formas,noesnecesariounconocimientodellenguajedeprogramacinPHPparaeluso
quevamosarealizardetriggers.
ParaactualizarenlaBD(orealizarcargamanual)serequierecrearuntriggerobligatorio,
masuntriggerporactualizacinenlaBD.
Paracrearuntrigger,sedebehacerclickenTriggersenelmapadeprocesos.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile51
ManualdeusoProcessMaker
LuegohacerclickenNew.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile52
ManualdeusoProcessMaker
Title:ConfiguracindelaBD
Descripcin:PermiterealizarconsultasalaBDsinconocerelDBS_UID
delconectordelaBasedeDatosenProcessMaker
Script:
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile53
ManualdeusoProcessMaker
$proc=@@PROCESS;
$sql="SELECTDBS_UIDFROMdb_sourceWHEREPRO_UID='$proc';";
$tmp_db=executeQuery($sql);
@@DB=$tmp_db[1]["DBS_UID"];
TriggerdeInsercin/ActualizacinenSQLenlaBD
ModelodetriggerpararealizarinsercionesoactualizacionesenlaBD.
Script:
$sql="SuconsultaenSQLaqu";
executeQuery($sql,@@DB);
TriggerdeInsercinenSQLrecuperandoId
PermiteinsertarunregistroenlaBDyrecuperarlaiddelelementorecininsertado
Script:
$sql="SuconsultaenSQLaqu";
$nombre_variable=executeQuery($sql,@@DB);
Nota:
Podrusar$nombre_variableparareferenciaraestaid,hastaantesdepasaralsiguiente
dynaform.
TriggerdeCargaManualdeunGrid
PermitecargarungridusandodatosenlaBD
Script:
$sql="SuconsultaenSQLaqu";
@@nombre_grid=executeQuery($sql,@@DB);
TriggerdeCargaManualdeuncampo
PermitecargaruncomponenteusandoundatoenlaBD.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile54
ManualdeusoProcessMaker
Script:
$sql="SuconsultaenSQLaqu";
$tmp_db=executeQuery($sql,@@DB);
@@nombre_componente=$tmp_db['nombrecolumna'];
TriggerdeInsercin/ActualizacindeFilasdeunGridalaBD
Permiteinsertar/actualizarunregistroporcadafiladelgrid.
Script:
foreach(@@nombre_gridas$numero_fila=>$fila){
$sql="SuconsultaenSQLaqu";
executeQuery($sql,@@DB);
}
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile55
ManualdeusoProcessMaker
SQLenTriggers
EnTriggershaydostiposdevariablesaocupar:lasdelproceso(lasquepartencon@@)
ylastemporales(lasquepartencon$).
ParaocuparlasprimerasenconsultasSQLenTriggershayqueencerrarlasen{}.
Ej:
$sql=SELECTnombreFROMClienteWHEREnombre='{@@nombre_cliente}';;
Enelejemplosepuedeobservarqueloscadenassedebeencerrarencomillassimples('
).Lastemporalesnorequierenqueseocupe{},aunquesiquierepuedeponerlo.
Insercin,ActualizacinyEliminacinenSQL
ParainsertarunregistroenSQLseocupaINSERT.Porejemplo:
INSERTINTOCliente(nombre,saldo)VALUES('Pedro',100);
queinsertaenClienteunregistroconnombre='Pedro'ysaldo=100.
ParaactualizarunregistroseocupalainstruccinUPDATE.Porej:
UPDATEClienteSETsaldo=100WHEREnombre='Pedro';
queactualizaelsaldoa100detodoslosclientesconnombrePedro
ParaborrarunregistroseocupalainstruccinDELETE.Porej:
DELETEFROMClienteWHEREnombre='Pedro';
borratodoslosclientesquetengacomonombrePedro
ActualizacindeunGrid
SisedeseaactualizarungridenunaBDqueyaestaingresada,yestapuedecambiarde
tamao.EntoncesesrecomendablequeprimeroseborrentodaslasfilasdelaBDyse
vuelvaaingresar.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile56
ManualdeusoProcessMaker
Ubicaruntrigger
Hastaelmomentosolosehancreadotriggers.Sinembargo,mientrasnoseindiqueen
quepartessequiereocupar,soloestaremoscreandolibrerasdetriggers.
Pararealizaresto,sedebehacerclickderechoenunatareaenelmapadeprocesosy
seleccionarSteps.Luego,hacerclickeneltabTriggers
Comosepuedeobservar,apareceunrbolconunnodoporcadadynaform,ademsdel
formularioAssignTask.Siseexpandeelnododeundynaform,sepuedeobservardos
nodosBeforeyAfter.EnBeforevanlostriggersqueseejecutanantesdequese
muestreeldynaform,mientrasqueloqueestnenelAftersonlosqueseejecutan
despuesdeenviareldynaform,peroantesquelostriggersdelsiguientepaso.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile57
ManualdeusoProcessMaker
Siseexpandecualquieradeambosnodos(BeforeoAfter)sepuedeobservarunalista.
Aligualquelospasos,lostriggersseejecutanpororden.Paraagregaruntriggerala
lista,sedebehacerclickenAdd
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile58
ManualdeusoProcessMaker
EnTriggerssedebeseleccionarelTriggeraejecutar,mientrasqueenConditionse
ponelacondicinparaejecutarestetrigger.Sisedejavacalacondicin,entoncesel
triggersevaaejecutarsiempre.Luego,sehaceclickenAssign.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile59
ManualdeusoProcessMaker
UbicacindelTriggerObligatorio
EltriggerobligatoriosedebeejecutarenelBeforedelprimerdynaformdealgunatarea
queseainicial.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile60
ManualdeusoProcessMaker
PruebadelPrototipo
Parainiciarlapruebadelprototiposedebeiniciarsesinconelusuariodeprueba(salvo
quehayanusadoalusuarioadminparaserelusuariodeprueba).Despushacerclicken
CasesenelmendeProcessMaker
Paracrearunnuevocaso,sedebehacerclickenNew.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile61
ManualdeusoProcessMaker
EnProcesssedebeelegirelprocesoylatareainicial(queseencuentraadentrodel
parntesis).LuegosedebehacerclickenStart
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile62
ManualdeusoProcessMaker
Llegandoalultimopasodelatarea,sellegaalformularioAsignarTarea
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile63
ManualdeusoProcessMaker
AlhacerclickenContinue,seobtienelasiguientepantalla
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile64
ManualdeusoProcessMaker
Comosepuedeobservar,nosmandamosanosotrosmismoselcaso.Sisehaceclicken
Opensepuedeseguirenelworkflow.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile65
ManualdeusoProcessMaker
Exportacineimportacindeunproceso
Exportacin
Para exportar un proceso, haga click derecho en un lugar vaco dentro del mapa de
procesos,yelijaExportProcess
Alfinal,enFilehayunlinkalarchivodelproceso.Haciendoclickeneselinkseiniciael
procesodedescarga.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile66
ManualdeusoProcessMaker
Importacin
EnProcess,enlalistadeprocesos,hagaclickenImportqueseencuentraalladode
New
EnFileseseleccionaelarchivo.pmaimportar.LuegosedebehacerclickenImport.
Sielprocesoyaexista,saleunapaginamas.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile67
ManualdeusoProcessMaker
Laopcinrecomendadaeslaprimera,enlacualreemplazaelantiguoprocesoporel
procesoaimportar.HagaclickenSaveyelprocesosevaaimportar.
DepartamentodeIngenieraIndustrialFacultaddeCienciasFsicasyMatemticasUniversidaddeChile68