ProjectWise Performance Report

Hello everyone,

For those of you at the conference, this was the dashboard I showed in my presentation and for those not at the conference, this is a dashboard on performance monitoring inside of ProjectWise using PowerShell.  Please find the attached documents to getting started with setting up performance monitoring on your system.  There is a PowerShell script that needs to be run on some kind of scheduled task at the various locations you want to test, the template for the PowerBi report and a setup document to help you link the results from your script with PowerBi.  For any questions or discussion please post to this thread.  Enjoy!



UPDATE March 16, 2020

Change log
- Now supports WSG metrics, activated with the -IncludeWSGData switch (requires PWPS_WSG to be installed if activated)
- Added more verbose logging
- Added Environment table and WSG table to output
- Updated the call to get currently connected users (should perform better)
- Now only clears files created by the script from the working directory (was previously clearing everything)
- If you do not want WSG data returned you do not need to activate the switch, or change your current script in any way.
- If you do with to collect WSG data please remember to install PWPS_WSG the same way you install PWPS_DAB
- A new datatable is returned for Environment data, which will be added to the output dataset
- No breaking changes have been made.

Parents Reply Children
  • I have successfully implemented the reporting and dashboard using SQLite database – it was easier than expected.
    I am getting the following error for the environment attribute: anyone seeing similar behavior?

  • We need the actual command line.  Please upgrade to the latest version of PWPS_DAB.

    Mark Weisman | Bentley Systems

  • i am running version of PWPS_DAB.

    Running this Powershell script:

    #region Module Import
    Import-Module PWPS_DAB -Verbose
    $PWPS_DABVersion = (Get-Module -Name PWPS_DAB | Where-Object ModuleType -eq 'Binary').Version.ToString()
    Import-Module "C:\Program Files\WindowsPowerShell\Modules\pwps_dab\$PWPS_DABVersion\HelperFunctions.psm1" -Verbose
    #region variables
    $Datasource = ''
    #region Return Metrics
    $PWPerformanceReportVariables = @{
        Connection = "VD LAN";
        Location = $ENV:VD_LOKALITET;
        ConnectingViaCache = "False"
        Datasource = $Datasource
        OutputType = "DataTable"
        TestParentPath = "PWPerfReport"
        TestFileSizeInMB = 5
        EnvironmentTableName = "ENV_Dokument"
        EnvironmentName = "Dokument"
        EnvironmentColumnName = "TITEL"
    $PerformanceDataset = Get-PWPerformanceReportData @PWPerformanceReportVariables -UseBentleyIMS -Verbose

    throws this error - which is strange as it first fails to find it, and afterwards fail to create it, because it already exists:

    VERBOSE: Building ProjectWise test environment...
    VERBOSE: Environment Name: Dokument
    VERBOSE: Environment Table Name: ENV_Dokument
    VERBOSE: Environment Column Name: TITEL
    WARNING: Error processing SQL Select statement 'SELECT e.o_envname, t.o_tabname, c.column_name from
     dms_env e LEFT JOIN dms_tabs t on e.o_tabno = t.o_tabno LEFT JOIN INFORMATION_SCHEMA.COLUMNS c on 
    t.o_tabname = c.TABLE_NAME WHERE e.o_envname = 'Dokument' AND t.o_tabname = 'ENV_Dokument' and
    lumn_name = 'TITEL''
    VERBOSE: Checking for environment :Dokument'...
    WARNING: Specified environment not found! Creating environment...
    New-PWEnvironment : Environment 'Dokument' already exists.
    At C:\Program Files\WindowsPowerShell\Modules\pwps_dab\\HelperFunctions.psm1:4189 char:13
    +             New-PWEnvironment @NewPWEnvironment -Verbose | Out-Null
    +             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (Dokument:String) [New-PWEnvironment], Exception
        + FullyQualifiedErrorId : Environment already exists.,PWPS_DAB.NewPWEnvironment

    Running this Powershell script to verify, that the environment exists:

    $Environments = Get-PWEnvironments
    $Environments | Where-Object {$_.Name -eq 'Dokument' -and $_.TableName -eq 'ENV_Dokument' -and $_.AttributeNames -contains 'TITEL'}

    Returns the Environment:

    PS C:\Users\thbn> $Environments = Get-PWEnvironments
    $Environments | Where-Object {$_.Name -eq 'Dokument' -and $_.TableName -eq 'ENV_Dokument' -and $_.AttributeNames -contains 'TITEL'}
    ID             : 123
    Name           : Dokument
    TableID        : 23
    TableName      : ENV_Dokument
    AttributeCount : 56

  • Try running it without specifying the EnvironmentTableName, EnvironmentName, and EnvironmentColumnName. These are not required and it appears the specified environment already exists.

  • I have tried that - it tries to create a new Test Environment, if the variables is not defined.
    It fails generating the new Environment (user has administrative rights).