Issues importing Data Package

In one of our environments we had an issue where we were not able to import a data package from a file. When trying the import it simply did not list the entities included in the package. So we tried the usual; restarting the DIXF service, Restarting the VM…. No luck.

Looking in the Event Viewer we found an error from the Microsoft Dynamics AX DIXF Service Runtime Provider:

Error In SSIS Execution

System.Exception: SYS105313 —> System.InvalidOperationException: The ‘Microsoft.ACE.OLEDB.12.0’ provider is not registered on the local machine. at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() at Microsoft.Dynamics.AX.Framework.Tools.DMF.DriverHelper.DMFOdbcDriver.GetSheetNamesFromExcel(String sourceFileURL) — End of inner exception stack trace — at Microsoft.Dynamics.AX.Framework.Tools.DMF.DriverHelper.DMFOdbcDriver.GetSheetNamesFromExcel(String sourceFileURL) at Microsoft.Dynamics.AX.Framework.Tools.DMF.SSISHelperService.Service.ServiceHelper.GetSheetNamesFromExcel(String sourceFile)

I used a bit of Google-Fu and found that this is probably an issue with the Access Database engine. Since all Dynamics 365 FO VMs are deployed as ready-made VMs and we are not responsible for any installation the alternative to fixing this issue is to just redeploying the VM. In this case I tried to fix it. I downloaded this install file from Microsoft and ran a repair.

This solved the issue and re-registered the DLLs needed.

Links:
https://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-mach

Changing branches for a new sprint

In the project I am working on right now we are maintaining two release branches. One for sprint release and one for hotfixes. Every time we release a sprint we are re-targeting the the build pipelines to point to the new branches for the next sprint. This article is a short description for where you need to change path (mostly for me to remember):

  1. Log into Azure DevOps
  2. Go to Pipelines – Builds
  3. Select the Pipeline you want to change and click Edit
  4. Go to Get Sources and change the two fields under Server Path

  5. Select the workflow item called Build the solution and change to the correct path in Project

  6. Save the pipeline.

    Note that when you are looking at the pipeline you will not see the correct branch until you have actually run the build successfully once

That is it for today…

Johan

 

Setting up notifications in Azure DevOps

Today one of the test guys in our project asked if it was possible to get a notification when code was pushed to a specific branch in DevOps… specifically the branch that meant that they needed to test something… this is what you do:

  1. Login into Azure Devops and go to User Setting – Notifications
  2. Click New Subscription, choose Code (TFVC) and Code is checked in
    Note: since this is a Dynamics 365 FO project we are using TFVC 
  3. Set the Path (or other criteria) you want to check for and click finish

    That is all…

Johan

Link
https://docs.microsoft.com/en-us/azure/devops/boards/queries/alerts-and-notifications?view=tfs-2017

Flow Friday – Adding flagged email to todo list

As you all know Microsoft Flow together with Outlook is able to add tasks when you flag an email. In my workflow I am unfortunately not using Microsoft ToDo… I have put all my tasks in Todoist but I think the feature is awesome… Microsoft flow to the rescue

  1. Lets start with creating the trigger which is flagged email in Outlook

  2. I want the tasks to end up in Todoists Inbox with prio 1… The reason for this is not that all email is important but it is important to triage the inbox in order to set the correct prio, labels and project.

    The expression is for getting todays date and looks like this:

    formatDateTime(utcNow(),’yyyy-MM-dd’)

Downloading Microsoft Ignite Sessions

This year I was not able to visit Microsoft Ignite 2019 but since there are more than 1900 session available for on demand viewing (and I would not have had time to watch the sessions I wanted anyway) that doesn’t really matter. I can always download them and watch them at home. If you hesitate on downloading all of them you can find your sessions/products/speakers of interest on the Ignite site 

To bulk download them you will need a script. I use this one but there are others out there that you can use. For this particular script to work you will need a tool called youtube-dl (which in turn requires Microsoft Visual C++ 2010 Redistributable Package (x86) ) and ffmpeg.exe. both tools will be downloaded by the script. In order to run scripts you download (this is done your own risk… only run scripts you trust) you will also need to set the execution policy in PowerShell

I do it for just the specific window that I use:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

To download the session I use these script lines:

.\Get-EventSession.ps1 -DownloadFolder 'D:\Microsoft Ignite 2019\' -Product "*Finance*" -Event Ignite -NoSlidedecks
.\Get-EventSession.ps1 -DownloadFolder 'D:\Microsoft Ignite 2019\' -Product "Power Platform" -Event Ignite -NoSlidedecks
.\Get-EventSession.ps1 -DownloadFolder 'D:\Microsoft Ignite 2019\' -Speaker "Jeffrey Snover" -Event Ignite -NoSlidedecks
.\Get-EventSession.ps1 -DownloadFolder 'D:\Microsoft Ignite 2019\' -Speaker "Mark Russinovich" -Event Ignite -NoSlidedecks
.\Get-EventSession.ps1 -DownloadFolder 'D:\Microsoft Ignite 2019\' -Product "Not Product Specific" -Event Ignite -NoSlidedecks

There are a lot of other filter possibilities in the script that you can explore… now, get downloading

Johan

Links:
https://gallery.technet.microsoft.com/Ignite-2016-Slidedeck-and-296df316#content

Flow Friday – Feeding news to MS Teams – Part 2

So… Apparently Flow is not Flow anymore 🙂 Flow is now called Power Automate but since the actual flows still are called flows I will keep the name Flow Friday…

Last week we startad posting news to Microsoft Teams… today we are expanding that concept… Same basic flow with a nice look and more news sources

Since we are not able to add multiple trigger to a Flow (yet?? *hoping*) and I am too lazy to build multiple flows… that would be cheating.

The multiple news sources requires a workaround using an external service called RSSUnify (there are other services that you can use). Go to RSSUnify and add all your feeds.

Then you copy the resulting RSS URL from RSSUnify and add it to Microsoft Flow

In order to refine the flow even more I want to make the Teams posting a little nicer. To do that I use the action “Post your own adaptive card as the flow bot to a channel (Preview)”. To design the look of the card you can either write your own JSON design or you can use this tool. I created a minimal card and the post information.

The card posting action has issues handling HTML which means that I will have to convert the summary into Plain Text. In order to fix this I add an action called Html to Text and then add the result to the adaptive card.

{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "[@{triggerBody()?['title']}](@{triggerBody()?['primaryLink']})",
            "weight": "Bolder",
            "size": "Medium"
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "spacing": "None",
                            "text": "@{body('Html_to_text')}",
                            "isSubtle": true,
                            "wrap": true
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "text": "",
            "wrap": true
        }
    ]
}

The post looks like this:

That is it for this week

Links:
https://adaptivecards.io/
https://rssunify.com/

Themes in Chromium Edge

I have started using Microsoft Edge (the Chromium version) and I really like it… Since I am coming from Google Chrome it is not that different except for two main things. The first one is that Microsoft has their own extension store which has much less extensions (the most important ones are there) and you can also use the Google Chrome Store although you will manually click on a link to use it. The second difference is that Microsoft has blocked Apps and Themes from the Google Store which would not have been a big deal for me if it wasn’t for the fact that I use themes to differentiate between multiple browser windows using different user profiles. This is the best way I have found to use multiple Azure accounts at the same time without having to sign out and in all the time.

There is how ever a work around.

  1. Install the extension Get CRX which gives you the option to download the file for the extension.
  2. Find the theme you want in the Google Chrome Store
  3. Right-click the extension page and select Get CRX of this extension
  4. When the file is done downloading open the page edge://extensions in Microsoft Edge
  5. Drag and drop the file you downloaded into the Edge tab you opened in 4
  6. In order to install the them you will have to approve the install security warning

    Note: this is absolutely not the recommended way of installing an extension/theme, this is an ugly hack (a means to an end). If you are not sure please do not do this.

  7. Click add theme to add the theme

 

That is it…

Links:
https://chrome.google.com/webstore/detail/get-crx/dijpllakibenlejkbajahncialkbdkjc

How to create a sprint

This is mostly a checklist for me to remember how to add new Sprints (Iteration Paths) in Azure DevOps… I tend to forget since it is not done very often

  1. Go to Project Settings in Azure DevOps
  2. In Project Confiruration choose the parent Iteration Path and click New Child
  3. Add Name, Start date and End Date and click Save and Close
  4. To mage the Sprint visible you need to add is to a team (otherwise noone will see it). To do this go to Team Configuration, choose Iterations and click Select Iterations.
  5. Choose the new sprint and click Save and Close

That is it for today… have a nice Monday

Johan

Links:
https://docs.microsoft.com/en-us/azure/devops/organizations/settings/set-iteration-paths-sprints?view=azure-devops&tabs=browser
https://docs.microsoft.com/en-us/azure/devops/organizations/settings/set-area-paths?view=azure-devops&tabs=browser#guidance

Flow Friday – Feeding news to MS Teams

The other day I asked my colleagues to provide me with good real world problems that I could help them solve in Power Platform. The first challenge was “Could you add news feeds in Microsoft Teams”. No problems 🙂

Create a new Flow and start with the RSS component and add the adress to the RSS feed.

Add the Microsoft Teams component called Post a Message V3 (Preview), select your Teams Tenant and the channel where you want to post the news posts.

Create the message and add Feed Title, Primary Feed Link and Feed Summary. In my case I want the title to be clickable and go to the original post in a new window. This required a small trick. Add a link from the UI using dummy text and link and the go to the code view ( </> ). Here you can replace both text and link with Feed Title and Primary Feed Link

Now we wait… for a post

That is it for today…

Keep Flowing

Flow Friday: Notifying your a bit extra

Today’s Flow Friday is a fairly simple one. Since I some times is a bit preoccupied and not able to keep up with my email and I also try to minimize notifications on my phone it would be very nice to have an extra notification when I receive an email where someone specifically mentions my name.  With flow this is simple…

In this flow I might be going a bit overboard 🙂

  1. When an email where I am mentioned arrives I the flow is triggered.
  2. The email is flagged
  3. A task is created in Todoist saying that I need to handle flagged emails
  4. … end a notification is sent to my phone.

This means that I will only get notified when I am mentioned 🙂

Happy Weekend