Pages

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

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

Copilots Explained

GitHub Copilot

Code Copilots: GitHub Copilot extensions in VS and VS Code.  Amazon Q Developer is an AWS code generator best for building code/ and solutions.  GitHub comes in 3 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.

Microsoft 365 Copilot Chat (Is Free)

Basically, just allows access to ChatGPT-4 with web content

Microsoft 365 Copilot (+£20/month if bought as an add-on)  I believe it is also referred to as Microsoft 365 Copilot Pro

Copilot is grounded in the business data you have access to in your enterprise.
Inline copilots, including grounded business data inside the office applications.

Microsoft 365 Copilot is an AI-powered Agent that assists with 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, you need the M365 Copilot license, which is pricy, marked at $30 per user per month.  Access to Copilot studio

Copilots in M365

Optimise results by preparing content!  Like docx, pptx and pdf files.  PDF, DOCX, XLSX (kindof), PPTX. Also works on csv, text, html, md files and wav audio files.  Supported file type.

Microsoft Copilot does not allow uploading images/pictures like ChatGPT does as of March 2025, but I don't doubt it is coming.  ChatGPT also can redraw (using DALLe)

RAG - Retrieval-Augmentation Generation basically indexes data into a Vector Index. Then, users can ask questions of the data source, and it retrieves the data in a formatted way for the requesting user.

RAG Explained.

Retrieval  - query the index/Knowledge source (Vector index)

Source/Vector Index supporting AI (body on knowledge to use)

RAG Grounding - is where accuracy is improved by anchoring the model's output to verify correct information.  Stop hallucinations.

Note/Thoughts:

  • Index SharePoint documents in the Copilot can be in German or about 100 languages, and I can ask for them in English or other languages.
  • Best to keep the source documents short.  
  • Copilots in SPO love formatting, i.e., title and header.
  • It does not read doc files but limits itself to the main document types. I need to verify this, as it seems wrong.
  • Folders have no influence on Vector Search results. They are helpful in choosing sources and managing content but have no effect on vector databases.
  • Neither does the depth of a document inside folders.  Vector data is based on the data in the document & the metadata.
  • Content works best in tables if it makes logical sense.
  • It's better to move Excel document data into Dataverse. Excel is iffy, so don't expect it to be excellent. Or Excel to PDF can work better. Remember to mark tables as tables in Excel (small tables; don't do massive worksheets). Limits are reached quickly.
  • Copilot can also return images; it's new, so no doubt more to come...
  • Support for Sensitivity Labels, set up so M365 copilot won't access highly confidential data or whatever policy you want.
  • Agents can access the MSGrapgh Data, including emails and SharePoint Onedrive.

Prompt Engineering


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.

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).