De gebruikers van Engage Process Modeler Team kunnen samenwerken in hetzelfde project. Als er voldoende licenties zijn aangeschaft kunnen er zelfs meer gebruikers tegelijkertijd werken in hetzelfde project.
Als er meer dan één gebruiker tegelijk actief is in een project is de vraag hoe de wijzigingen die worden gemaakt door deze gebruikers worden verwerkt in het project. De volgende regels gelden voor het werken met Engage Process Modeler:
1. Alle wijzigingen in de projectstructuur worden direct doorgevoerd.
2. Wijzigingen in een diagram kunnen alleen worden gemaakt en opgeslagen als het diagram is vergrendeld.
Dit betekent dat twee gebruikers verschillende inhoud van hetzelfde project kunnen zien. Voorbeeld: Als gebruikers A en B hetzelfde lege project openen en gebruiker A maakt een nieuw proces P1 aan, dan zal gebruiker B deze niet direct zien, maar pas nadat het project is ververst (bijvoorbeeld met een browser refresh met F5). Gebruiker B kan een proces P2 aanmaken en hiermee werken zonder van het bestaan van proces P1 af te weten. Beide processen worden pas zichtbaar voor allebei de gebruikers na het verversen of opnieuw openen van het project. Als twee gebruikers proberen tegelijkertijd hetzelfde projectonderdeel te wijzigen (bijvoorbeeld hernoemen) zal de laatst opgeslagen wijziging winnen. Deze aanpak is prima voor projecten, maar niet erg handig voor de inhoud van diagrammen. Daarom willen we niet dat twee gebruikers tegelijkertijd hetzelfde diagram aan het wijzigen zijn. Om dit te voorkomen bestaat er een mechanisme van vergrendelen van diagrammen.
Het vergrendelen gebeurt in de meeste gevallen automatisch en een gebruiker zal hier niets van merken. Op het moment dat gebruiker A begint met het wijzigen van een diagram (hij voegt bijvoorbeeld een processtap Telefoon in in een leeg proces) wordt het diagram automatisch vergrendeld voor deze gebruiker. Dit garandeert dat hij de enige gebruiker is die op dat moment wijzigingen kan maken. Het feit dat een diagram vergrendeld is, is zichtbaar door het sterretje achter de naam van het diagramvenster.
Als gebruiker B hetzelfde procesdiagram opent zien hij het oorspronkelijke proces (dus een leeg proces in dit voorbeeld) omdat de wijzigingen van gebruiker A nog niet zijn opgeslagen. Op het moment dat gebruiker B ook wijzigingen gaat aanbrengen in hetzelfde proces (hij wil bijvoorbeeld een Handmatig toevoegen) zal Engage Process Modeler proberen het diagram te vergrendelen. Deze poging zal mislukken. Het proces wordt gewijzigd naar alleen lezen en er verschijnt een bericht bovenin het diagram. Het bericht geeft informatie wie op dit moment ook bezig is met het bewerken van het diagram en bovendien een knop Start bewerken. Met deze knop kan gebruiker B opnieuw proberen om het diagram te vergrendelen (omdat gebruiker A ondertussen klaar is met zijn wijzigingen bijvoorbeeld).
U kunt deze gele balk inklappen met het '>' symbool aan de rechterkant.
Zolang gebruiker A het diagram blijft wijzigen kan gebruiker B deze niet vergrendelen en deze dus ook niet wijzigen. Het diagram wordt vrijgegeven als gebruiker A het diagram sluit of als hij voor minimaal 15 minuten geen wijzigingen heeft aangebracht. Als gebruiker B uiteindelijk succesvol is met het vergrendelen zal de inhoud van het diagram anders zijn dan wat hij op dat moment ziet. Daarom verschijnt de volgende melding:
Na het verversen kan hij opnieuw proberen om een Handmatige activiteit toe te voegen, maar nu moet hij beslissen of hij deze voor of na de Telefoon wil plaatsen.
Feitelijk is de vergrendeling niet gekoppeld aan de gebruiker, maar aan zijn sessie. Het kan voorkomen dat dezelfde gebruiker meer dan 1 actieve sessie heeft. Als hij bijvoorbeeld hetzelfde diagram opent in twee verschillende browsers heeft elke browser zijn eigen sessie. Als het diagram dan wordt gewijzigd in een browser en de gebruiker probeert deze ook te wijzigen in de andere browser verschijnt de volgende melding:
U kunt deze gele balk wederom inklappen met het '>' symbool aan de rechterkant.
Door te kiezen voor Overnemen wordt het vergrendelen verplaatst naar deze sessie. Dit betekent wel dat eventuele wijzigingen in de andere sessie die nog niet waren opgeslagen verloren zullen gaan.