In some situations, multiple users may need to work on a model. What are some best practices to facilitate multi-user workflows with OpenFlows products?
If a model is saved on a shared network drive, it is possible for multiple users to open that file at the same time - a "lock" is not currently placed on the file to prevent multiple users from opening it.
When a model is opened, the model files are copied from the location where they are stored, to the Windows Temporary folder (type %temp% in the address bar in File Explorer and look in the Bentley subfolder). When the user is working on the model, it is actually working off the copy from the Windows Temp folder, not the one in the folder where it is saved to. When the model is saved, it is copied from the Temp folder to the folder where the model is saved to, overwriting the old files.
So, if the model is stored on a shared network folder and user A opens it, user B will still be able to open the model from the network folder. At that point, they will each be working off of separate copies of the model in their respective computer's Temp folder. If user A makes changes and saves the model, it will be written back to the network folder. If user B is making changes at the same time and saves the model after user A, then user B's changes will essentially overwrite the changes made by user A, since their version of the model will be copied from their Temp folder and overwrite the current version of the model stored on the network drive.
Instead of using an unmanaged shared network folder, consider ProjectWise. ProjectWise provides a managed environment for multiple users to work on models. ProjectWise allows for models to be checked out by a user. When this is done, the model will not be available to other users, though it will still be listed in ProjectWise. Information on who has the file checked out is also available, so it will be easy to know who is working on what files at a given time. More information on ProjectWise can be found in the link above or through your Bentley account manager. Information on integration between the OpenFlows products and ProjectWise can be found here: ProjectWise Integration. Also, consider Enhancing OpenFlows multi-user workflows with ProjectWise Share
If ProjectWise is not an option and you cannot change the network drive configuration to stop files that are already accessed from being accessed again, it is sometimes better to have the model files saved to the local drive. If a user is working on a project, they can move the model files out of the network drive so they are literally no longer there for others to use. They can then work on file and save it back to the network drive.
Or, if you want to save to a central location (such as a network folder) and provide a way to alert each user if someone else is already working on the model, consider concurrent use alerting. For example if you only work on one single model, you could set the usages threshold to "1". With that set, if one user has WaterGEMS open and another user tries to also open WaterGEMS, they will receive an alert stating that someone already has it open. They could then assume that this means another user is currently working on the one model and that they need to wait for that person to finish (and save) before opening WaterGEMS and the model.
The above section describes a solution to prevent conflicts by "Taking turns" working on a model. If you have a need for multiple users to be working on a model at the same time, consider using your GIS as the central repository (source of truth), and use ModelBuilder sync workflows to handle cases where multiple users need to edit basic model geometry and attributes. This can include getting additions/fixes (from one or more OpenFlows product users) from the model to back to the GIS (use the GIS for conflict resolution). The Change Tracking feature (which tracks who made changes to a model) can help facilitate identifying and getting things back to the GIS.
Another option for multi-user workflows is submodels. Each user could work on a separate hydraulic model representing a portion of the larger system. Once completed, each of those models can be imported as a submodel (File > Import > Submodel) into the main model, and Change Tracking can be used to identify what has changed.