Thursday, 5 June 2025

AI Vendor Management - Formiti

AI is going crazy, and you can build your own but generally you need to look at a supplier, so it's worth understand management of Vendors, you as the controller using their service are at risk of them not making their AI operations transparent.  It's a big business risk to my clients.  

GDPR is closely linked to AI, and if you use a service/vendor, the reputation and fine risk may fall on you as the provider.  Need visibility into each vendor, how they are using AI, in turn they are using vendors so it's a nice complex dependency problem.  You need to be aware of what you are relying on.

Ensure contracts with vendors consider AI, how the process your data and how their sub process vendors do the same.

Track website customer behaviour, we use a vendor to clean up the data.  In turn, I have no idea that they are using AI outside of the UK or EU.  Follow the dependency chains as all this needs to be transparent to the end customer if needed.

Monday, 2 June 2025

Copilot Studio 2025 Notes

WIP 


Copilot Studio
is amazing, the licensing is complex, the AI integration is excellent. Architects really need to understand Licensing and billing or AI will get out of control.  The Purview and governance looks very good.

MS Build 2025: 

MCP Server in Preview - possible to collect data from other AI services or write back.

Connector Kit - So can add custom connectors to from Power Platform Connectors including Copilot Studio - sounds great.

Agent Flow - Added functionality added to Power Automate flows (Copilot Studio aware), deployed via solutions.

Licensing

You need to be aware:

  • M365 agents - need all end users to have M365 copilot licences, retail $20/user.
  • Copilot Studio - Makes need copilot studio AI Studio/maker licence $30/retail, users don't need any licence to use but ..
  • Each prompt generates multiple messages, these are all billable (complex to calculate)
  • (If you use Copilot Studio and it calls Azure AI Foundry, also bills Tokens (also complex to estimate)
  • Copilot Studio is using AI Foundry connector, it is a Premium connector)

Monday, 26 May 2025

Playwright Post 6 - Automating Canvas App MFA login for Playwright unattended for Canvas apps

Overview:  Modern security makes automating logins requiring MFA rather difficult.  This post looks at possible approaches to automate the login.

Option 1. Turn off MFA—not really, but you can set a conditional rule in EntraId to not perform MFA. This is not an option in many enterprises.

Option 2. Time-based One-Time Password (TOTP)—Microsoft Authenticator makes this pretty difficult. At least I can't do it, as the APIS are relatively limited. This is kind of expected, as it's a security measure.

Option 3. Programmatically acquire an access token without browser automation, use MSAL with a client secret or certificate (for confidential clients). 

Option 4.  Use Playwright to record the login and intercept the access token once logged in.  Then you can store it and use it.  There are a few easy options to get the session:

4.1. Retrieve the access token from the response once logged in

4.2. Retrieve from your local storage:

  const token = await page.evaluate(() => {
    return window.localStorage.getItem('adal.idtoken') || window.sessionStorage.getItem('adal.idtoken');
  });
4.3. Retrieve the token using Playwrite at the command run level

Note: This adds the token to my repository. Don't save the token to your repository if you don't realise that the Access/Bearer token will expire depending on what your EntraId sets. The default is 1 hour.

Option 4.3.1. Like option 4.3, use the refresh token to silently generate a new Access token. You store the refresh token during the recorded login (by default, it lasts for 90 days) to generate a new access token when you need it.

Option 4.3.2.  Take it further back to generate the refresh token using the access code you get at the original login, renew the "refresh token", and generate a new access token to run your tests.

If you decide to store your access token, refresh token or code, don't store them in your code repo.  You know why if you got this far.

Thought: as a refresh token works for 90 days on a sliding scale, I've never used the option 4.3.2, as by storing the refresh token, all I need to do is to extend the refresh token by using it to get an access token and the refresh token has 90 days from that point. 

This is the plan I'm thinking of using:

Tuesday, 20 May 2025

Entra AAD Security Groups - Remember

Overview: I have lost count of the number of poor Active Directory and Azure Active Directories I have seen.  I don't think I've ever seen a good Active Directory actually.  Certainly nothing large over 5K users. 

I'm working with a multinational, and we need to improve the security.  Things are a little all over the place, oddly named and inconsistent, basically the normal for an 300k internal user enterprise with history and multiple aquations.

I identify a coupe of properties that will really create a nice hierarchy, issue is I'm using more than the allowed 5k Dynamic AAD Security Groups.  

Group Types to be aware of relating to Entra

1. Static AAD Security Groups

Got to add the users manually, or at least automate the process for anything but the smallest of Entra users.

Static AAD Security groups can be nested.

3. Dynamic AAD Security Groups

Up to 5,000 dynamic groups.

You can inherit Security groups or be inherited (no nesting).

3. Distribution AAD Groups

Used for email and calendars, not security.

4. O365 Groups/Teams Groups

They can inherit O365 groups or AAD Security groups.  They are managed within the org so not the best idea to place heavy security on manually managed teams. 

Resolution:

I have a full hierarchy of users within divisions and subdivisions.  By adding users statically via automation to there lowest level AAD Security Group.  Then I can add the child groups.  This gives me multiple groups that have more and more users in as we go up the hierarchy.  Additive groups with positive security gives me the best options.  

Future Wishes:

If only Entra supported more dynamic AAD Groups per tenant or allowed Dynamic groups to be nested in static AAD groups



Monday, 12 May 2025

Playwright Post 5 - Understanding how Playwright Works

Playwright as a tool consists of two main parts.

Part 1: Playwright Library: This is the automation of a browser using the Page Object Model (POM). It provides a uniform API to run against the 3 main browser engines, automating tasks like navigating, clicking, filling in form data, and validating content on a web page. Classes include APIRequest, APIResponse, and BrowserContext. The worker process runs the API calls sequentially. Unified library API calls are sent to the browser context, which runs unaware of the calling context.  

Top link runs in Node.js and makes API library calls, there is no timing between the Node.js (Controller) and the browser instance (running Chromium instance)

Part 2: Test Runner: This part runs the Playwright tests.


Playwright Series

Wednesday, 30 April 2025

MS Fabric OneLake Shortcuts

 "Shortcuts in Microsoft OneLake allow you to unify your data across domains, clouds, and accounts by creating a single virtual data lake for your entire enterprise.MS Learn

It allows open storage format data to be stored in the source system, metadata is added to OneLake, and the data can be queried; the load is predominantly performed against the source system, e.g., Dataverse/Dynamics.

Clarification: A shortcut is automatically added to MS Fabric for each Dataverse.  Dataverse creates Parquet files (est 5-10% extra data storage, counts against Dataverse storage).  Via the shortcut, report writers or data engineers can access the Dataverse data as though it is inside MS Fabric's OneLake.

Understand: Dataverse creates Parquet files that MS Fabric can look at to generate dataset data.

"Shortcuts are objects in OneLake that point to other storage locations.MS Learn

External shortcuts (data is held at the source system) supports any open format storage format, including: 

  • Apache Iceberg Tables via Snowflake,
  • Parquet files on SnowFlake,
  • Microsoft Dataverse
  • Azure Data Lake Storage (ADLS), 
  • Google Cloud Storage, 
  • Databricks, 
  • Amazon S3 (including Iceberg tables),
  • Apache Spart (Iceberg)
Internal shortcuts supported:
  • SQL Databases: Connect to SQL databases within the Fabric environment.
  • Lakehouses: Reference data within different lakehouses.
  • Warehouses: Reference data stored in data warehouses.
  • Kusto Query Language (KQL) Databases: Connect to data stored in KQL databases.
  • Mirrored Azure Databricks Catalogs: Access data from mirrored Databricks catalogs.
I think these are also Internal shortcuts:
  • PostgreSQL
  • MySQL
  • MongoDB

Example High Level Architecture

External shortcuts with snowflake and Dataverse.


Tuesday, 29 April 2025

PowerBI reporting against ProjectWise (Project Insights)

Overview: Integration with Bentley is fairly complex but the project ProjectWise Project Insights provides a Power BI Custom Connector.  The connector is not certified by Microsoft but it can be used for gaining reporting insights.

Introduction to ProjectWise's Project Insights

These are the instructions I followed and it still works

Power BI report - Simple - Using ProjectWise Project Insights                                        

ProjectWise Posts:

Introduction to ProjectWise and BIM

ProjectWise from Bentley - extend with Powershell

Postman Collection to connect to Bentley's REST API for ProjectWise (WSG)

PowerBI reporting against ProjectWise (Project Insights) - This post

Postman Collection to connect to Bentley's REST API for ProjectWise (WSG)

Overview: Here is a short recording showing how to connect postman to ProjectWise's API's (WSG).

Here is the postman collection: Tutorial on connecting to ProjectWise APIs using Postman

A short video (1.5min) if you want to play with the two endpoint I used:


ProjectWise Posts by me:

Introduction to ProjectWise and BIM

ProjectWise from Bentley - extend with Powershell

Postman Collection to connect to Bentley's REST API for ProjectWise (WSG) (this post)

Power BI reporting against ProjectWise (Project Insights) 

Sunday, 13 April 2025

Mendix - Logging & Tracing

Mendix offers a few integrations with various Application and Performance Monitoring (APM) tools.

There is no integration with Azure Monitor.  The closest I have is log files can be downloaded.

Cloud edition allows you to download the log files.

TBC

Friday, 28 March 2025

Power BI Premium to MS Fabric Primer

Power BI Premium allows all users in your enterprise to consume (use) reports, you buy licences separately for the report builders.

Two methods of getting report data: Import Mode (data is not live/real-time, and retrieval is fast) & Direct Query Mode (real-time data, but retrieval is slow)

All Power BI Premium subscriptions will automatically become MS Fabric during 2025. 

Direct Lake Mode

An additional method of querying, "Direct Lake Mode," combines the best aspects of both old methods for retrieving data.  Direct Lake Mode (real-time and fast data retrieval).

OneLake

  • Storage is in Delta Parquet 
  • Data is stored once, along with permissions, when copied into Fabric; the individual Lakehouses, warehouses, and transformations still rely on the original Parquet file data.
  • Shortcuts create a virtual pointer to a variety of data types such as Snowflake, ADSL, ...

Great Visual Descriptions of the 3 options: Comprehensive Guide to Direct Lake Datasets in Microsoft Fabric

Tuesday, 18 March 2025

Microsoft's Copilots Explained as the naming kills me

Microsoft's Copilots products... starting with M365 Copilot options

Source: Screenshot from a presentation, 6 May 2025 - must come from MS.

1. Microsoft 365 Copilot versions

1.1. Copilot (Microsoft 365 Copilot Chat) (Is Free)

It allows access to ChatGPT-4 with web content.  AI like ChatGPT, Perplexity, ...

1.2. Microsoft 365 Copilot Pro

(+$20/month full retail if bought as an add-on).  More features but not everything the M365 Copilot for Business offers.  All users get Copilot Builder (maker capability), and consumers need the M365 Pro licence to use M365 Copilot agents.

1.3. Microsoft 365 Copilot for Business



I believe a lot of documentation and people are grouping "M365 Copilot Pro" and "M365 Copilot for Business" together, and only see a free and pro/paid versions of M365 Copilot. 

M365 Copilot Pro for Business (I know :) ) is grounded in the business data you can access in your enterprise.  Inline copilots, including grounded business data inside the office applications.

Microsoft 365 Copilot is an AI-powered Agent with multiple child Copilots for Microsoft 365 apps like Word, PowerPoint, Outlook, Excel, and Teams. It leverages large language models (GPT-4 and GPT-4Pro) and your enterprise data through the Microsoft Graph. To work with M365 Copilot Pro, you need the M365 Copilot license for each user accessing or creating the new agent, which is pricy, per user per month. 

Tip: Optimise results by preparing content!  Like docx, pptx and pdf files. PDF, DOCX, XLSX (kind of), PPTX. Also works on CSV, text, HTML, MD, and WAV audio files.  Supported file type.

Microsoft-specific app copilots included in M365 Copilot Pro:

  • 2.1. Word Copilot: Helps with drafting, rewriting, editing, summarising, and generating new ideas.
  • 2.2. Excel Copilot: Assists with data analysis, generating insights, creating complex formulas, and automating tasks.
  • 2.3. PowerPoint Copilot: Aids in creating presentations, suggesting layouts, creating slides, and enhancing visual content.
  • 2.4. Outlook Copilot: Supports email management, drafting responses, scheduling, and organising tasks.
  • 2.5. OneNote Copilot.
Note: Microsoft Copilot does not allow uploading images/pictures like ChatGPT does as of March 2025, but I don't doubt it is coming.  ChatGPT can also redraw (using DALLe)

Extending the use of M365 Copilot Pro licensing
  1. M365 Copilot takes a no-code approach to building agents with our company data. Each user needs an M365 Copilot Pro licence to access the new bot/agent/copilot.
  2. Copilot Studio is a more advanced way to build copilots and requires a separate license.
Options Building you own Agents/Copilots with business aware data.


Agent Builder - all users need the M365 Copilot Pro licence.
Copilot Studio - makes need a Studio Builder licence for each maker, build agents using low code AI.  Each query is charges using messages as it's currency.  There is complex pricing for instance a query can cost 13 message credits.
AI Foundry - the individual paid services on Azure relating to AI uses tokens for billing.  A simple query is 4 tokens depending how the question is broken down.  Once again it is difficult to estimate the costs.  

2. Microsoft Dynamics 365 Copilots

Overview of Dynamics 365 Copilots:

Source: Microsoft (I lost the reference)

2.1. Customer Engagement (CRM) Apps

  1. Dynamics 365 Sales – Manage leads, opportunities, and customer relationships.
  2. Dynamics 365 Customer Service – Case management, knowledge base, and omnichannel support.
  3. Dynamics 365 Field Service – Manage field operations, work orders, and technician scheduling.
  4. Dynamics 365 Marketing (now part of Customer Insights - Journeys) – Campaign automation and customer journeys.
  5. Dynamics 365 Customer Insights:
    • Data – Unify and analyze customer data.
    • Journeys – Design and automate personalized customer experiences.
  6. Dynamics 365 Customer Voice – Collect and analyze customer feedback.

2.2. Finance & Operations (ERP) Apps

  1. Dynamics 365 Finance – Core financials, budgeting, and global accounting.
  2. Dynamics 365 Supply Chain Management – Inventory, manufacturing, and logistics.
  3. Dynamics 365 Project Operations – Project planning, resource management, and billing.
  4. Dynamics 365 Commerce – Unified retail, e-commerce, and POS.
  5. Dynamics 365 Human Resources (being merged into Finance) – HR management and employee self-service.

2.3. SMB-Focused App

  • Dynamics 365 Business Central – All-in-one ERP for small and medium-sized businesses (finance, sales, purchasing, inventory, and more).

2.4. Industry-Specific Solutions

  • Microsoft Cloud for Industry (e.g., Healthcare, Financial Services, Manufacturing) – Built on Dynamics 365 and Power Platform with tailored capabilities.

Note: Microsoft D365 Copilot/ Microsoft Copilot for Dynamics 365 and Power Platform/ Dynamics 365 AI are in this area.

3. Copilot Studio

Build copilots and distribute them to the business. This is awesome, but from a naming perspective, it actually makes sense. 

4. Azure AI Foundry

Organisations and developers can use the AI Foundry platform to build AI-driven solutions.  Can use 1,800 models and 200 Azure Services.  There are so many AI services on Azure.  I'm not even starting that conversation.

5. Security & Governance of Microsoft 365 Copilot 

The M365 copilot will respect the Access Controls you have permission to, so Jim in operations won't see Tim's sales figures in a Word document in SharePoint. Jim does not have access to the document from the sales site collection. Therefore, they can't query Copilot for the data they don't have permission to (done using MS Graph).

Purview: DLP improves what your users can do, and better governance.  Ensure M365 copilots are used ethically.


Understand how users are using your M365 Copilot.

6. Code Copilots

GitHub Copilot

GitHub Copilot is an AI-powered tool that helps developers write code by suggesting snippets and completing lines in real time. Developed by GitHub and OpenAI, it learns from public code repositories and supports various programming languages and frameworks. Its goal is to boost productivity and reduce repetitive coding tasks.  It's amazing!! and getting better all the time.


Code Copilots: GitHub Copilot extensions in VS and VS Code. Amazon Q Developer is an AWS code generator that is best for building code and solutions. GitHub comes in three flavours: Individual, Business, and Enterprise.

GitHub explains code, optimises your code's performance, improves readability, generates unit tests, improves error handling, adds new code with requested functionality, ensures coding consistency, and improves modularisation to help with the DRY principle.  GitHub is the diggity bomb.

Note: ChatGPR is owned by OpenAI.  Microsoft is a significant investor but does not own the service.

7. Summary

Naming and complexity with Microsoft are tough. The AI parts are massive. The M365 copilots break down into Dynamics or O365 worlds, each with many options.  I wish Microsoft had a hierarchical, sensible naming system, which no doubt the Marketing department would hate.

Sunday, 16 March 2025

SAP LeanIX Intro

  • LeanIx is an SAP Saas product that facilitates Enterprise Architecture (EA) in businesses, utilising dashboards and diagrams to support informed decision-making.   
  • To create the roadmap, align business goals with IT strategy by generating 'As-is' and 'To-be' architectures.
  • Improve integration, reduce complexity, and eliminate duplicate systems to make better decisions.

Note: Using Leanix is an all-in or don't bother tool.  LeanIx provides a comprehensive view of your applications, business processes, and interactions with IT assets.

3 Products make up LeanIX:

  1. Application Portfolio Management: The base product for recording the application landscape allows for inventory dependencies and identifying redundancies to optimise the application landscape.
  2. Architecture and Roadmap: Using the Application Portfolio, visualise the 'As Is' and 'To Be' architectures and visualise the impacts of change.
  3. Tech Risk and Compliance: We verify technology standards and can fund projects to help address data residency rule breaches.

Twelve fact sheets, such as the application fact sheet template, are essential. The meta model is the plan that shows how information in the fact sheets is interconnected.  

The "LeanIX Meta Model" at a high level shows the 4 EA architectural views:  

  1. Data Architecture
  2. Application Architecture
  3. Business Architecture
  4. Technical Architecture 

On top of the four architectural pillars sits Strategy & Transformation, covering:

  • GAP & Roadmap, 
  • Principles, 
  • Requirements and Assumptions.

What I Like:

  1. Inventory of Products, dependencies and link to documentation
  2. Nice predefined reports and the ability to collaborate with stakeholders
  3. Visualise dependencies, excellent reporting capabilities

Note: LeanIX is based on The Open Group Architecture Framework, i.e. TOGAF.  TOGAF's Architecture Development Method (ADM) 

Tuesday, 11 March 2025

SQL Server on Microsoft Fabric

 Release to Public Preview in Nov 2024 and Ignite.

  • SQL Server can be directly used/provisioned within MS Fabric.  This means you get your data instantly into OneLake for reporting, and you have a fully functional relational database.  
  • Supports temporal tables (history)
  • Enable GraphQL to allow secure OAuth access to the data.
  • Stored Procs are supported, and GraphQL API can be enabled on each of them.
  • Fully managed Service by Microsoft.

Sunday, 2 March 2025

Introduction to ProjectWise and BIM

Overview: Bentley Systems is a leader in BIM and working with CAD documents. Bentley's BIM-compliant Document Management System (DMS) is ProjectWise.  BIM aims to improve collaboration between parties and ensure consistent, relevant information is available.  

Goals: Design, Coordinate and Collaborate.

ProjectWise Server

  • Setup DataSource (separate databases), e.g. UK Archive, UK Projects, EU Projects
  • Hierarchy for files (think Windows Explorer view of files)

ISO 19650

  • Manage information (data & Assets) within an Infrastructure project.  Founded in the UK under BIM, it is now an international standard.  
  • Strength is ensuring users are using the correct approved document (stop incorrect versions/info)
  • All versions, comments, and updatedby recorded.
  • Workflow has metadata to be filed for each phase/status change.
  • BIM Statuses
    1. WIP (draft) | Open - only a tiny part of the project team can see the document,
    2. Shared | Review - This can be used by other teams so more people can see the files,
    3. Published - all internal reviews completed.  And ready for the customer,
    4. Archived - Completed 
Tip: Code folders and files within ProjectWise.

Workflows

  • Can create custom workflows such as a peer review or technical approval.
  • There is also the workflow that copies the document and moves it into the next BIM status Folder. So if I change the status in WIP, the document is copied along with its properties, and the major version is incremented.

ProjectWise 365 Services

  1. ProjectWise Web Connections - Web 
  2. Share - Share with 3rd parties
  3. Deliverable Management - create the output for the customer, including comments made on documents
  4. Project Insights - analytics on each project that can show if it is late or the status is not correct. 
  5. Forms

ProjectWise Web

  • Standard UI that shows the folder and file hierarchy and can search for files
  • Attributes are just document metadata that is relevant to the file.
  • Files can be checked in and out so they are locked to you.
  • Link files in Deliverables or create Document Sets (basically group documents) into a file/container.
  • Files can be assigned to workflows such as a peer review...

ProjectWise Drive

  • Download and install on each laptop
  • Can use Windows Explorer to work with files as if on the local machine (as if on an SMB file share)

BIM Dimensions

3D - Geometry (Drawing) including metadata such as width and weight and hierarchy

4D - Scheduling

5D - Cost Estimation

6D - Lifecycle

7D - Asset Management


Note: 360 - Is AutoCAD's equivalent to ProjectWise.
Big providers of technology for the BOM framework are Bentley and AutoDesk.

BIM Execution Plan (BEP)

Plan prepared to manage BOM activities


Sunday, 23 February 2025

Agile Project Management Thoughts

Initially, this post was on keeping Project Management Simple.  This works well for small and medium-sized projects.  How I think Kanban boards are excellent, I like MS Planner as it's built into MS Teams and Outlook and stores project documentation within SharePoint connected to MS Teams.

There is a ton of sound Project Management software and approaches.  

Primavera (P6) - Oracle

Strong Project Management software focusing on the Construction and Infrastructure industry.  

Microsoft Project

A project management tool that offers advanced features such as tracking dependencies, costs, and complex project schedules. It is suitable for larger projects that require detailed planning and management. MS Project can be used in various forms, including Project for the Web, Project Online, and the Project desktop application.

Microsoft Planner

Microsoft Planner is a web-based planning application that allows you to assign and discuss tasks, manage tickets, and view progress charts. It is integrated with Microsoft Teams and Outlook, making it easy to organise team tasks and collaborate.

Problem-Solving (Explore/Interview Process to build IT solutions)


McKenzie Problem-Solving Approach

  1. Define the problems
  2. Find the root cause
  3. Use “hypothesis-driven” process
  4. Analyze with “issue tree”
  5. Propose solutions

My preferred approach is the three-step Problem-Solving approach:

  1. Problem
  2. Initial Hypothesis
  3. Proposed Resolution

Repeat until fixed/solved.

Sunday, 16 February 2025

Website and CRM for a new business: My thoughts

Overview: I need landing pages and/or a simple CMS that copes with mobile devices (responsive).  The website needs cookie acceptance, performs analytics, and a form to sign up users.  Then keep the signed-up users to be emailed and develop them into customers using email tracking and email templates.  The number of contacts is high, plus 10k, and the conversion rate is envisaged to be low.

Lastly, it needs to be able to manage and track my paid-for advertising at a later stage. Options included Hubspot, Mailchimp, EmailLite, Brevo, Zoho CRM, ActiveCampaign, and WordPress. As this is a startup and a small business, I discounted Microsoft and Salesforce.

WordPress is fantastic with all its plugins, but I was looking for a one-stop shop for a startup.

Option1: Hubspot

Hubspot is a fantastic tool for web-based marketing. It has a built-in CMS, CRM, cookie acceptance, and contact forms that are extendable and flexible. It also has fantastic email capabilities, including templates that interact with the CRM and email templates, and it takes care of the emailing itself. There are various versions, and if the business was high-value low numbers, I'd 100% have gone for the solution.

Pros:

  1. CMS (Solid), but all tooling is integrated, so it's a strong contender
  2. Has a cookie acceptance (GDPR compliant)
  3. Own web page, email analytics, and tracking  OOTB (both are string)
  4. Contact and forms are extendable and offer options - great integration
  5. Email integration is key to our business, and HubSpot offers tracking, mail templates and sending and avoids spam filters.

Cons

  1. HubSpot has way more functionality than we'll ever need; therefore, the UI and usage can be somewhat complex.
  2. The cost is unsuitable for our scenario, which involves many contacts, each with low value. Pricing is designed for low contact numbers, and high-value customers, like an accounting firm, would be ideal.
  3. CMS is limited compared to WordPress

Decision

Don't use HubSpot, as the starter edition has a limit of 1,000 contacts. The price escalates quickly based on the number of contacts.

Option2: MailChimp with WordPress (CMS)

TBC

Monday, 3 February 2025

ProjectWise from Bentley - extend with Powershell

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> Import-Module pwps_dab
PS> New-PWLogin -BentleyIMS

Federated login for PS

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.


Example 3, this item has the wrong credentials Error code: 58064.



Next: I want to run my ProjectWise (PWPS_DAB module) within a serverless function triggered by HTTP endpoints.  I've chosen Azure Functions using PowerShell.

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.
... ... ERROR: Failed to load pwps_dab module. Error: Could not load file or assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system cannot find the file specified.
 
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. 


To Review: 
https://www.linkedin.com/pulse/understanding-bim-workflow-importance-microstation-yassir-el-yaqouby-ltinf/
https://www.linkedin.com/in/uday-singh-5b18a2155/recent-activity/all/
https://www.linkedin.com/pulse/bim-summary-day-1-introduction-what-building-modelling-uday-singh-d48xc/?trackingId=jVx9vtIRPnylCdD6UVE0ag%3D%3D

AutoDesk Revit

Revit 
https://www.linkedin.com/learning/bim-manager-managing-bim-360
https://www.linkedin.com/learning/search?keywords=Autodesk%20BIM%20360
AutoDesk Construction Cloud

Procore - Project/Construction Management 

https://www.linkedin.com/learning/search?keywords=BIM


Wednesday, 29 January 2025

AI Copilot comparrison

 Lunchtime play ...  Claude.io was the best I used... Deepseek didn't work....

AI Engine Comparison Test:

I recently asked a few AI engines a complex tax query:

Perplexity Pro (paid): While I love the app, the answer was not great 6/10

ChatGPT (free): Excellent, factually correct, not too clear in one area 8/10 

DeepSeek: I registered and tried the search, but got the result "The server is busy. Please try again later."  I tried a few times, it is working for common queries, but I assume as this logic wouldn't be cached, it can't even have an attempt with the free version 2/10.

Bing/M365 Copilot: Got a fairly similar result to ChatGPT missing an option and not as well laid out 7/10 

Claud.io: Clean result that is factually correct and offered possible items that would affect the calculation 10/10

Perplexity is my default AI power Search Engine:

Perplexity and the others are great for teaching me this (I use a homemade flip learning type approach), and here are my "follow-on" questions. However, to truly understand something, I still use books (mixed with perplexity), but nothing beats a human-written or recorded topic to give the best understanding.




Tuesday, 21 January 2025

PnP Search - Notes

Overview: I have spent a considerable amount of time figuring out how to use the PnP Search Web parts again.  I do this every few years, as I forget.  This post outlines how to set up filters for the PnP search using my own columns.

Four items to get Filtering working

Tip: Filterable Managed Properties must have a "refinable" search property.  You can't create these in SPO, so use the OOTB Refinable Managed Properties setup for this purpose.

Step 1. Upload content such as docx and pdfs, and add custom metadata.  I added two documents, and there is a text column for Technology


Step 2. Ensure content is being crawled and available thru Managed properties

You need to be a Site Collection Admin > Go to Site Settings for the Site Collection

Navigate to Search > Manage Search Schema > Find an existing "Refinable.." Managed Property and use it to point to the new Crawled Property.

Tip: Force a crawl on the list, and it will take an hour or two, as the trigger is fired periodically. Depending on the size of the crawl, it will take some time.  If it's not showing up after 3-4 hours, you are definitely doing something wrong.

Step 3.
Add Selected properties (this is the Managed Property name or Alias) - paste and move out of input box - weird.
Customise the Layout Slots with the Layout Slot name.

Step 4. Add the PnPSearch Filter Web Part to the page containing the PnP results web part page

Add the Search Filter PnP web part to the search page.

Go to the PnPSearch Results web part properties, and set the "Connect to a filters Web Part" to Enabled and set the Filter web part.

Go back to the PnPSearch Filter web part, select "Configure" and on the Use data from these Web Parts  set to the PnPSearch Results web part.

"Edit" the filters.


Monday, 20 January 2025

Microsoft Purview Summary

Purview covers:

  • Information Protection - Discover, Classify & Protect data such as documents and emails. Tagging and AIP labels can be applied manually or automatically.  Lots of built-in pattern classifiers such as credit cards and PII data are Sensitive Information Type (SIT), which uses expressions like RegEx to identify types of information example [A-Z]{2}[0-9]{6}[A-D]{1} for a UK National Insurance Number.  The dictionary allows one to add words to customise discovery and automatic tagging and labelling for each organisation and industry.  Can also build custom SITs based on specific patterns.  Activity Explorer and Content Explorer help understand the data information architecture and usage.  
  • Data Loss Prevention (DLP) - Block unauthorised actions
  • Inside Risk Prevention (IRP) - Identify risky behaviour inside the org
  • Adaptive protection - adjusts policies like DLP policies based on the risk identified using ML/AI.  Applies stricter measures as risks are identified.
Microsoft End-Point/device Protection: Microsoft Purview allows a company to create end-device DLP policies, push them to all client devices, and protect data within the company.

Notes on Data Protection:

  • Uses SharePoint Information Rights Management for SharePoint.
  • Used to ensure your data meets criteria to ensure standards compliance such as HIPPA, BIM, GxP.
  • Retention labels are used to track and manage sensitive data.

Wednesday, 1 January 2025

Prompt Engineering with Microsoft Copilot

Prompting Microsoft Copilot: Prompting is asking the copilot to give you information.

Four parts to cover in your prompt> 1. goal 2. context 3. source 4. expectation

1. Goal - what do I want, e.g., tell copilot what we want

I want tactics for pricing my SaaS products

2. Context - Why do I need it

e.g., this is a new product in the B2C space

3. Sources - optional - ask from specific resources

e.g. provide my company stats and ask to compare to my market (from the LLM)

4. Expectations - Table of info, summary, or even an image(maybe not)

M365 Copilot app.

Apps that M365 Copilot embedded with if you have the M365 licence include: 
1. Word, 2. Excel, 3. PowerPoint, 4. Outlook, and 5. Teams

1. Word

Word Copilot is part of the M365 copilot branding.  Generates scaffolding/first draft.

2. Excel

Use in Excel with your own data - allows easy query using English/natural language.

3. PowerPoint

Draft a presentation using org themes based on prompts. You can also use Copilot to add images you create using Copilot (DALL-e).