Jarvis Pizzeria: Collaborate in PCS

An interesting aspect of working in Oracle Process Cloud Service with a team of three people is the fact that you need to collaborate and work together in the same “source”. However, where traditionally we are used to develop on our machine and merge source in repositories like Git, Bitbucket or Subversion, in the Cloud, we do not even see the source, let alone are able to merge it.
So, how does a team collaborate in the Oracle Cloud?

Oracle offers a good, free platform for collaboration called Developer Cloud Services (DevCS).
As long as you have an other Oracle Cloud product - i.e. JCS, ABCS - DevCS comes for free, it does not come stand-alone. Within this environment, it offers a wiki, issue trackers, source control and much more. For this use case, we will focus on how to work together within PCS.
Once the PCS instance is requested, set up and ready to use, you can share the instance with others.

For this, we need to login on cloud.oracle.com, the sharing happens from the Oracle Cloud Dashboard and not from within the PCS instance.

Within the Dashboard, we open the menu on the left hand side and go to the Users tab.

Here we can add users, we added all the members of the Jarvis Pizzeria team.

The accounts are created and set up and invitation e-mails are automatically sent. Everyone will get their own private space within PCS. To collaborate, we created a new space and shared the workspace among each other to develop together on the same application and processes. This is done within PCS, so we can leave the Oracle Cloud Dashboard and log onto our PCS instance.

Within the ‘Develop Processes’ part of PCS, we can create a New Space from the Create button.

The space is added to the List of Spaces, and it is private by default. However, now we can start sharing it.

Pressing the Share button will bring up a popup to share the space with other users.

Pressing the choose button, gives another popup where we can browse the users.

After selecting the users and pressing ok, we are brought back to the previous screen. We need to select the role for the users and click share. A confirmation is shown, which we can now close, and the space is shared.

To make sure not more than one member is currently working on the same process, there is a lock & edit mechanism that sees to it that only one developer at the same time can work on the application.
When you do not have a lock on the application, the blue top bar will tell you you are in viewing modus.

When no one else has a lock on the application, the blue bar will show a pencil to start editing.

However, that is not always the case, because maybe someone else has the lock. On the right we can see how many people have access to our process, in this case it shows the number three.

When we click this button, it will show us the users in a popup.

To take over the lock from Marc, who is currently disconnected to the application, but still has the lock, we need to go back to the Application. We can not lock a single process instance within our application, we need to lock the whole application. In the Application Menu there is an option ‘Take over application’.

Once the application is taken over, the lock is shifted from Marc to Richard in this case and Richard can start developing the process. When going into the application, the blue bar on top will show Editing instead of Viewing:

Also, the popup will show Richard with the lock being online and Editing within the application.

Next to ‘Editing’, there are three important buttons, save, publish and discard. The save button will save your changes, although PCS also saves automatically. After saving we still have the lock and can continue working on our application.
Both the publish and discard buttons will release the lock.

If we do not publish our changes, we will get a warning about losing our changes when we discard and release the lock.

If we want to close the application anyway, we need to explicitly discard the current changes we had saved, but not yet published.

However, we have to be aware to always communicate with our teammates and use the button on the top right to see if someone is online or editing. When we take over the lock on the application, we will not get a warning screen whether our teammate is currently making changes or has open changes. When taking over the lock, that user will get a notification that the project is now locked by someone else:

It looks like the saved, but not yet published, changes within the application are automatically published, since we verified that the user taking over the lock directly sees those changes. But this might not be the desired behaviour.