Dynamic Managed Workspace Framework


Dynamic Managed Workspace Framework Introduction

The Dynamic Managed Workspace Framework (DMWF) is a templated ProjectWise Managed Workspace that is primarily .cfg file based.

The Dynamic Managed Workspace Template saves time in Workspace development.  Both owner/operators and consultants can implement it in the same way.  The functionality within the Workspace can handle multiple workspaces and scenarios. 

Since the Workspace is designed to take advantage of the ability for ProjectWise to be context-sensitive, the template is referred to as the Dynamic Managed Workspace.

Note: to Owners/Operators/Agencies (OOA):  This workspace is designed to allow multiple workspaces to work together.  While an OOA may not need such a robust workspace, implementing this workspace template, and providing installation instruction based on this template, will allow easy adoption by Design Consultants who need to implement additional OOA workspaces.

 

Common Managed Workspace Requirements

The following are a few requirements that are common among the majority of those implementing managed workspaces:


-Simple Configuration Setting Block (CSBs)

     Simple to create and manage

-Adaptable
     Adaptable to a organizations specific needs and well as adaptable to client workspaces.

-Utilize either CSBs or .Cfg file
   Allows the use of controlling the configuration with either CSBs or .cfg files.

-Supports V8 and Connect
     Supports both V8 and CONNECT Edition workspaces

-Error Checking
     Provides error checking to help identify missing configurations or typos.

The Dynamic Managed Workspace seeks to meet these requirements.

Workspace Philosophy: Framework Variable Redirection Only

All well-designed Workspaces should allow for the minimal redirection of the framework variables to achieve portability when workspace must be distributed to other organizations.

With this in mind, only a few variables must be redirected for V8i and CONNECT Edition workspaces to be placed in any environment.

For V8i, these variables are:

_USTN_WORKSPACEROOT
_USTN_PROJECTNAME

For CONNECT Edition, these variables are:

_USTN_CONFIGURATION
_USTN_WORKSPACENAME
_USTN_WORKSETNAME

While these are the minimal variables, additional variables will probably be needed to match real-world locations of the configurations and project.

It must also be noted that V8i had limited workspace redirection options. Hence, Owner/Operators had to resort to several different methods to accomplish this.  This template has been developed to allow for V8 workspaces to be organized in a similar manner to that of CONNECT Edition.

Most client-supplied workspaces can be easily incorporated into the Dynamic Managed Workspace structure. However, some workspaces may include customizations that are not directly compatible with ProjectWise.

Single CSB Concept

The Managed Workspace is designed to use a single CSB at the predefined level. 

This single CSB points to a common configuration file (Common_Predefined.cfg) that includes dynamic variables that can be used to build an entire Workspace around.   The fundamental idea in this concept is that all framework variables can be set at the Predefined level and locked if needed.  The name for this file is "Common_Predefined" because it is a common configuration (cfg) file used by all products/versions and runs at the Predefined configuration level in the ProjectWise Managed Workspace.

The Common_Predefined.cfg file contains a version check which allows differentiation between variables required for V8i and CONNECT Edition.  In addition, the supplied configuration files incorporate error checking to verify the appropriate folders and configuration files are in place and notify you of any issues.

Workspace specific framework variables are defined in PW Setup files located within each Workpace.  The PW Setup files may also contain variables that can substitute for Environment Variables.  Hence, rather than setting environment variables on the computer, these can be set for each workspace and allow multiple Agency Workspaces to co-exist within the same environment. 

Configuration File Naming Convention

The configuration files have a consistent naming convention. (e.g  Common_Predefined_PWSetup.cfg)

PWSetup: Files with PWSetup in the name are intended to be edited as needed.  The content of these files is for the configuration's adaptation into ProjectWise.   User (Operational) configuration variables (those that start with MS_) should most likely not be defined in these files.

Level Inclusion:  Where appropriate, the PWSetup File Names contain the level at which the ProjectWise Managed Workspace processes them.  (e.g., _Predefined, _Application, etc.)

Location:  The configuration file name will Include where the file resides.  Typically, in one of three locations: Common, Workspace, or WorkArea.   The first part of each cfg typically reflects this.

More Examples:

Common_Predefined.cfg

Common_Application.cfg

Common_SiteOrg.cfg

Common_Predefined_PWSetup.cfg

WorkspacePWSetup_Predefined_Name_Version.cfg

WorkAreaPWSetup_Predefined_Name.cfg

 

Dynamic Variable Naming

Framework variable created for this configuration begins with _DYNAMIC_ to reflect the dynamic context capabilities with the configuration.

Vocabulary

Workspace: Standards shared by multiple projects.  Workspaces are identified by names

Work Area Folder: A ProjectWise WorkArea (previously known as a ProjectWise Project/Rich Project)

PWSetup Folder: Locations where the configurations can be modified to suit ProjectWise Dynamic Workspace Environment.  The "_" is used to put this at the top of the list but can be modified to meet user naming conventions.  Example uses: 

Common PWSetup: PW configuration common to all Workspaces

WorkSpace PWSetup: PW configuration that is Workspace Specific

WorkArea PWSetup: PW configuration that is WorkArea specific

 

Workspace Name Designation 

The Dynamic Managed Workspace needs to designate a workspace name to be used by the application.  The Dynamic Managed Workspace utilizes two variables to designate the V8 and CONNECT Edition workspaces.  These are _DYNAMIC_V8WWORKSPACENAME and _DYNAMIC_CEWORKSPACENAME.  These variables are defined in the file WorkArea PWSetup* and located within the WorkArea in a folder called _PWSetup

The names should align with the folder names in the ..\Bentley 2023\V8Workspaces\ and ..\Bentley 2023\Configuration\Workspaces\ folders.  Even though V8 does not use workspace names, the CONNECT Edition concept can be utilized in a ProjectWise DI environment.  ProjectWise Explorer can read the version variables at the time of launch.

To accomplish this, the WorkArea PWSetup .cfg file may contain syntax similar to this:

 

  %if defined (_VERSION_8_11)

       _DYNAMIC_V8WORKSPACENAME=V8WorkspaceExample  

 %elif defined (_VERSION_10_0)

        _DYNAMIC_CEWORKSPACENAME=CEWorkspaceExample

 %endif

 

Alternate syntax can be used to prevent a file from being opened with the wrong version as well by using an %error statement:

 

  %if defined (_VERSION_8_11)

       %error This WorkArea not configured for V8i  

 %elif defined (_VERSION_10_0)

        _DYNAMIC_CEWORKSPACENAME=CEWorkspaceExample

 %endif

 

Dynamic Managed Workspace Load Process

The  four (4) basic steps are:

  1. Managed Workspace Initiated. The Managed Workspace requires at least one variable assigned to ProjectWise through a CSB.  In the template, the variable is  _DYNAMIC_DATASOURCE_BENTLEYROOT, and the CSB is typically called Bentley Common Predefined 2023  

Subsequent variables are then defined relative to this.  For example,

_USTN_CONFIGURATION=$(_DYNAMIC_DATASOURCE_BENTLEYROOT)Configuration/

The subsequent variables are assigned through the Common_Predefined.cfg file.   This configuration will typically use _DYNAMIC to prepend associated variables.

  1. Workspace Names Established/ Once a root variable is created, the next step is to know the Workspace to load. You will pass the name of the Workspace to the Configuration.

_DYNAMIC_CEWORKSPACENAME and _DYNAMIC_V8WORKSPACENAME and are used to define the Workspace names. 

These names will correspond to the folder's name in the ..\Configuration\Workspace\ folder and ..\V8Workspaces\ for CONNECT and V8, respectively.  There are 3 Options to assign these variables.

 

  1. Application Version Determined. This is accomplished using a logic fork within the Common_Predefined.cfg file, which checks two variables: _VERSION_8_11 and VERSION_10_0.  Depending on the value of these variables, further version specific variables are set.

 

  1. Workspaces Adopted to the ProjectWise environment. This is accomplished using a configuration file in  _PWSetup\ folders (primarily under the Workspace folder). 

 

Additional options are available in the template.  These include:

Workspace Groups

ProjectWise Drive Incorporation

Specific Application Version Detection

WorkArea root location identification

 

Addition Links and Information:

Installation/Setup Instructions

Documentation

Dynamic Managed Workspace 2023 (see DynamcManagedWorkspace.xlsx located in the .,,\Resources\Bentley2023\Documentation\ folder of the download)

Templates

What's New (Release Notes)

Dynamic Managed Workspace 23.0.1

(See wiki "files" section for older releases)