Saturday, 10 August 2024

What is a Digital Twin?

Digital Twins: Predict and optimise asset performance.  Provides digital simulation by integrating data and models of physical assets from design to tear down with a real-world physical asset.

A digital twin is a virtual, real-time representation of a physical object, system, or process. It mirrors its behaviour, characteristics, and performance and is connected to its real-world counterpart through a two-way flow of data.

Tuesday, 6 August 2024

Using Power automate to populate Excel files with data

 



Power Automate Flows containing Approvals failing with XrmApprovalsUserRoleNotFound

Overview: The Power Automate Approval action on an existing flow stops working and throws the error:  "'XrmApprovalsUserRoleNotFound'. Error Message: The 'Approvals User' role is missing from the linked XRM instance."  I did not have control on the environment so I needed others to perform the fix so that I could verify.

Problem:

The ‘Start and wait for an approval’ action/connector used in a Power Automate flow has been failing for 3 weeks in Dev, I now need this functionality to change the workflow ‘IDC-StartApprovalCertificateWorkflow’.  The error show is “Action ‘Start_and Wait_for_an_approval_xx” failed.  The request failed: Error code: ‘XrmApprovalsUserRoleNotFound”. Error Message: The ‘Approvals User’ role is missing from the linked XRM instance.'

Initial Hypothesis:

All the runs of my flow have been failing for 3 weeks in Dev for 3 weeks on the ‘Start and wait for an approval’ in the dev env.  I have tried creating a new vanilla flow using the ‘Start and wait for an approval’ action and it fails with the same issue.

Triggering the flow in other environment including my production, and the ‘Start and wait for an approval’ action works.  I cannot see any difference except the environments.  The error message "XrmApprovalsUserRoleNotFound" is basically telling me that my user should be in the Approval Users role. I have the role assigned.

  • Env: Client-DEV
  • Type: Automated
  • Plan: This flow runs on owner's plan (paul@client.com)

Resolution:

Microsoft Support: Check the user running the flow is int he 'Approvals User' role is correctly assigned in the environment user security roles. 

Admin: The user running the flow already has the role assigned. We have re-assigned the role again.  Did not test, got the developer/owner to test.

Developer/me/flow owner: The approval has started working again in the Dev environment, I just retested and flow that was not firing yesterday is now working again.  New flows also fire/work correctly.

Summary: The user role in the Dataverse was correctly assigned, it looks like a refresh of the user in the 'Approver User' role corrected the issue.

Research:

https://www.linkedin.com/pulse/power-automate-approvals-flows-failing-adrian-colquhoun



Saturday, 3 August 2024

Mendix Notes 2024

Extendibility: Mendix Studio Pro IDE

  • Currently, Aug 2024 you can build Extensions with Mendix with C#.  Extend the Mendix Studio Pro/IDE/editor e.g. Connect to Azure, and query for resources, unit testing,..
  • Mendix look like they will also support TypeScript (TS) and JS for extensions.  Eventually, we may add low-code extensions using Mendix...

Mendix Series

1.  Overview of Mendix 

2. Mendix - Part 2 - Diving deeper

3. Extensibility for Mendix Studio (this post)

4. Building a Mendix Widget for the Mendix Market Place (Convert text to Audio using Azure AI)

5. Mendix Tips & Thoughts



Wednesday, 31 July 2024

Low Code testing with Playwright - 1. Intro Exercise (15 min)

Exercise 1.  Install and setup you first Playwright Test

1. Verify VS Code is installed 
2. Ensure the Microsoft Playwright Extension is installed (use the default language TypeScript)
 
3. Create a folder using Windows Explorer as shown here: C:\Users\paulb\source\repos\Playwright\Mendix

4. Open the folder in VS Code and ensure the project is initialised C:\Users\paulb\source\repos\Playwright\Mendix> npm init playwright@latest --yes -- --quiet --browser=chromium --browser=webkit

5. Verify your screen looks similar to this...




Exercise 2.  Record and run your first Playwright test

1. On the "Testing" area, select "Record new"


2. The recorder opens, type in a url in my case I used "https://www.paulbeck.co.uk"


3. Click and assert text exists on the page

4. Stop the recorder and close the browser.

5. Run the test, as shown below, validate the result

Sunday, 21 July 2024

Simple comparison of Cloud Storage options

Azure offers 3 main options for storing files:

Azure File Store (Supports SMB, no version control)

Azure Blob Storage (No SMB, has version control via apis, tiers for archiving)

Azure Data Lake Storage -Gen2 (No SMB, no versioning), more relevant to Big data/DataLake

 

AWS also has options to consider:


Amazon Simple Storage Service (S3), similar to Azure Blob Storage with an API and tiers

Amazon FSx, similar to Azure File Store, supports SMB and NFS

Amazon Elastic Block Store (ESB) supports NFS


Office 365/SharePoint Archive option:

https://adoption.microsoft.com/en-gb/microsoft-365-archive/

Extra SPO/O365 storage costs about $0.20/GB per month, using the SP Achieve service cost 0.05$/TB per month.  Also you only get changed for what you use, no pre-provisioned size.  Security & compliance is maintained so for old data needed to be archive this is a great easy option.

Sunday, 7 July 2024

PowerAutomate Flow to populate a word document table with Dynamic Rows

Overview: I recently needed to generate a dynamic table within word using Power automate, there are lots of resources out there to do it.  I found the order I did the core steps in determines if the process works so thought I'd blog this as a reminder and simple guide.

Objective: Use a flow to build an dynamic array and display the output within a Word document.

Steps

1. Create a new Flow in Power Automate (here I am initialising an array but you can build this up as you need too.  The Select option and nested actions allow for creating most required data sets)


2. Create a Word document for the template (in my scenario, I've created the MS word document inside a SharePoint Document library, as shown below)

3. Edit the word Document to Display the dynamic Rows (you need to edit in the Word app not the browser version of word).  
  • Add/Insert a Table (mine needs three columns)

  • Ensure you have the "Developer" ribbon setup and give the focus to the position where the fist dynamic field is needed.

  • Insert the "Plain Text Content Control" within the table at the desire places
  • Add the "key" name from the array to each plain text control as shown below:


  • The word document should looks as shown below.  Save and close the docx file.