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!
Thanks,
Marty
UPDATE March 16, 2020
ProjectWise_Performance_Report_1.0.7zProjectWise_Performance_Report_Example_2.0.zip ProjectWise_Performance_Dashboard_1.0.zip
While testing an export to SQLLITE I did the following, just sharing might find it useful..
$scriptFolder = (([System.IO.Directory]::GetParent($MyInvocation.MyCommand.Path)).FullName) $PWPerformanceReportVariables = @{ Connection = "Office LAN"; Location = "Melbourne, Victoria"; ConnectingViaCache = "True"; Datasource = "decide-pwce-aus.bentley.com:decide-pwce-aus-010"; ProjectWiseUserName = "PWUserName"; ProjectWisePassword = (ConvertTo-SecureString -String PWPassword -AsPlainText -Force); OutputType = "DataTable"; } $PerformanceDataset = Get-PWPerformanceReportData @PWPerformanceReportVariables -Verbose foreach ($Table in $PerformanceDataset.Tables) { #create a new datatable to populate with the performance data $dt = New-Object System.Data.Datatable ($Table.TableName) #add the columns to the datatable. We can use the property names of the properties object as our column names # Get a list of the performance properties. $PWperformanceProperties = $Table | Get-Member -MemberType Property # Add columns to the datatable for each of the properties in $docProperties foreach ($property in $PWperformanceProperties){ $dt.Columns.Add($property.Name) | Out-Null } #create a new datarow, loop through the performance data and populate the row, and then add the row to the datatable # Create New Datarow $dr = $dt.NewRow() # Populate Datarow with performance values foreach ($column in $dt.Columns) { $dr[$column.ColumnName] = $Table.$($column.ColumnName) } # Add new row to the datatable $dt.Rows.Add($dr) $SQLLITE = @{ SourceDataTable = $dt; OutputFolder = $scriptFolder; OutputFileName = "PW_Performance.sqlite"; } #Export dataset to a SQLLITE database Export-DataTableToSQLiteDB @SQLLITE -Append }
Thanks for sharing.