ProjectWise from Bentley - Document Management Software
ProjectWise is a Document Management Solution (DMS) from Bentley. Its key use case is supporting BIM.
Architecture: It appears to have a pretty old architecture with the ability to "webify" the DMS.
Integration: There are APIs and Power Connectors, but they are extremely limited and not developer-friendly. You can also extend the capability using PowerShell. Be warned: Bentley does not support this, but the ProjectWise community does help to solve the issue.
There are add-ins for office software (word, excel, pptx) and some CAD products to make the BIM process easier.
This post outlines how I have extended ProjectWise to build out a pre-populated folder structure using PowerShell. I then wrap the PS code in an HTTP Azure HTTP-triggered function to call.
Connecting to ProjectWise using PowerShell Example 1:
PS> New-PWLogin -BentleyIMS
Note: You need to already have Bentley's federation auth set up on the local machine running the "CONNECTION Client."
Machine running PS must use the CONNECTION Client from Bentley and the user will be prompted to login. |
Connecting to ProjectWise using PowerShell Example 2:
Login using Federated identity without a popup to select the datasource
PS> Import-Module pwps_dab
PS> New-PWLogin -Datasource 'org-pw.bentley.com:Org Delivery' -BentleyIMS
Connecting to ProjectWise using PowerShell Example 3:
Login with a local account - No Federated account needed.
PS> $Password = ConvertTo-SecureString "passwrdxxx" -AsPlainText -Force
PS> $Cred = New-Object System.Management.Automation.PSCredential ("my_user_logical", $Password)
PS> New-PWLogin -Datasource 'org-pw.bentley.com:Org Delivery' -UserName $Cred.UserName -Password $Cred.Password
Below are two error codes that tell you if your datasource or login credentials are incorrect.
Example 3. Error code: 32768 - Datasource not found. |
Problem: PWPS_DAB requires headers, and no serverless function will support PowerShell modules that require interaction/headered calls.
ERROR: The property 'ThreadOptions' cannot be found on this object. Verify that the property exists and can be set.
Initial Hypothesis: There is no way around using PWPS_DAB as it does not support running in a headless mode. Ouch, and i'm paying for this heavily :)
Possible Resolution: Run a VM or Docker container and expose the function via an HTTP endpoint. It will be a mission, so i guess it docker.
No comments:
Post a Comment