Convert Markdown Documents to PDF Using md-to-pdf

Convert Markdown Documents to PDF Using md-to-pdfAzure DevOps now has an option to link your Wiki to a repo. With this change I decided to start creating all my documentation in Markdown and then to supply my users with PDF output for things such as user guide. This allows me to source control my documents and still supply users with clean looking outputs. Here is how i went about doing this.Create Documents Folder/PackageI started by creating a new folder for my documents and running the npm init command.Install md-to-pdf from NPMInstall the md-to-pdf npm package by running npm i --save-dev md-to-pdfCreate Index.js fileCreate a index.js file in the root directory of your folder and copy the following code.const mdToPdf = require('md-to-pdf'); const config = { "pdf_options": { "format": "Letter", "margin": "15mm", "displayHeaderFooter": true, "headerTemplate": "<style>section {padding-left…

PCF Color Picker

For anyone looking for a PCF Color Picker I just released one out on GitHub! It utilizes React and the Office UI Fabric controls.

GitHub Project
Solution File

Dynamics BPF Javascript: NEW onPreStageChange Handler!

If you are utilizing the UCI interface there is a new JavaScript handler available for the Business Process Flows (BPF), onPreStageChange.  Unlike the onStageChange handler onPreStageChange fires before the actual business process has been changed so that you can evaluate if you want the change to occur and prevent it if needed.

With this new handler we can now get rid of many of the Synchronous workflows used previously to evaluate the changes made to a BPF.  By removing these workflows the overall performance of your BPF changes should be increased.  Additionally calling JavaScript code being before the change also eliminates additional problems such as the users clicking the Next/Previous multiple times before the workflows have been fired (Tip #360
To utilize the new handler you will needed to create a function and then pass that function into the addOnPreStageChange function provided under executionContext.getFormContext().data.process.  It is best practice to pass a function r…

Icon Resources for Dynamics

Below are resources that you can utilize within your Dynamics project for generating icons.

Image Icons
Font Imager
Microsoft Dynamics CRM Icon Pack
Microsoft Dynamics 365 Icon Pack for 2017
Metro Studio - Additional Info On How to Use from PowerObjects

React Icons
These are icon libraries that can be utilized within a React PCF control.
Office UI Fabric

Rollup Field Refresh on UCI Form

In the web client version of Dynamics when you hovered over a rollup field it would show a refresh icon to the right of the field.  In the Unified Client Interface (UCI) version of Dynamics to recalculate the field you can click on the Calculator icon to the left of the field name and a Recalculate button will appear.

Custom Flow Connector For Parsing Address

While working on a demo of the Business Cards Scanner component for PowerApps I found that the component only returns the address as a single line and not as parsed address components (UPDATE: The Business Card Scanner does not split the address fields into the same level of detail as the Contact/Account entities).  After looking around for flow connectors that could parse the data I only found one from Pitney Bowes.  Looking around there are a lot APIs available for address parsing but they are not currently available on Flow so I decided to build my first custom Flow connector to utilize one of these APIs.

Address Labs ( does not require an API key to use and since I'm only doing a few calls for my demos it worked well for me.  You can also check out their document on GitHub (

One of the easiest ways to create a custom connector to flow is to use a Postman collection.

After downloading Pos…

Update Business Process Flow Using Flow

When working through App In A Day Workshop I wanted to improve the Approval flow to move the Business Process Flow (BPF) Stage forward if the Device Order was Approved.  I have utilized plugins and workflow previously to accomplish this type of action but never with Flow.  After doing a quick search i found an article from Elaiza Benitez (Automatically update the stage of a Business Process Flow with Flow 2.0), make sure to check it out it's great.  My post here utilizes the techniques Elaiza provided but applies it to the Device Approval Request Flow as part of the App In A Day workshop.

Below if the final Device Approval Request.  The parts I added to the BPF are outlined in Red.

The first thing we need to do is get the Device Procurement Process record for the Device Order that applies to the BPF we build in the workshop.
Next we need to parse the returned record using the Parse JSON action.  In order to get the schema for this action just run the Flow with the previous action …