Directions EMEA 2020 – Day 1

Directions EMEA and Asia has just started today. This is the first-time virtual Directions ever and I can just imagine how challenged it was to prepare everything in very short time. But based on what I saw today, everything is well organized. OK, this is not the same as live event and I would like to have an opportunity to meet all of you in person, but it is still the great option with not only sessions but with a lot of networking opportunities. And just to mention, this is the biggest Directions ever with 2775+ attendees. Great achievement!

Today we had the first day Keynote and after that I had my first session. Now I want to share my experience from these two parts of today’s event.

Christian Sega started with good news about numbers (2775+ attendees, 60+ countries, 147 sessions, 101 speaker…) and future of this event and finally we had an opportunity to see Mike Morton as a new GM on the Directions stage… unfortunately not in live, but again this is the first time on Directions stage.

Mike presented roughly the most important directions from this BC release and they are:

  • Deliver seamless service and performance
  • Design for compliance and security
  • Develop ISVs and globalization
  • Delight customers by exceeding expectations
  • Drive better together Microsoft experiences

Let’s talk about these directions in the next days. Now I want to talk more about numbers. First time we had an opportunity to see official numbers about BC SaaS customers – there are 10.000 BC online customers and by my opinion this is an amazing result. And only this, there are other impressive results…

I don’t want to forget great rest of the keynote with Claus, Jannik and other PM’s where they showed some new and really good features.

And finally, Mike announced roadmap and some new features ready for the next release. First let’s make a look at new roadmap:

Now make a look at some of the next release’s features:

  • Finally, we will get Report Extensibility as this is one of the highest voted idea from users and partners… this is something we are really missing.
  • We will get enhancement printing features in BC, improving complex hybrid setup, taking care about user access to printers, eliminating admin of print servers or printer drivers, printing from anywhere…
  • Easily onboard of new clients to BC using step-by-step guide how to configure and prepare your solution, and it will be possible to use for partner’s addons as well.
  • Better integration of BC with Teams as using BC directly from Teams.

What I wanted to emphasize… completely experience with the Directions4Partners platform was/is great (if I forget some minor technical issues… who knows, maybe only at my place😊 because of my connection). You could have a feeling you are really on a site. This is briefly my experience from my first session. After 30 minutes prerecorded session, we had additional 15 minutes for live Q&A. I have a lot of questions and I had an opportunity to have a live answering session and it was good experience. As we probably had more question, we needed to continue our chat somewhere. For this purpose, we could go out to the Q&A session room and continue with discussions about all specific topics. Really great experience. I had an opportunity to meet some of friends and big thanks to Arend JK who attended my session and who continue chat with me and few other attendees in the Q&A session room. He also helped me answering on some questions. Big thanks for you Arend as well as to Christian Sega who joined us in after session time.

I’m looking forward to see more sessions today and next two days and I really hope it will be great experience.

How to Build Power Portal connected with Business Central

Introduction

When I think about new Dynamics 365 Business Central (in the future, I’ll use only ‘Business Central’ or just ‘BC’) features, the first things in my mind are openness and integrations. Then one of the most common limits in Business Central (and in Dynamics NAV before) was lack of portal connected with the database. Of course, you could develop portal from the scratch or use one of existing solutions and develop integration… But what is common in both of these cases? You need to pay in the first case for development (not so cheap) and in the other case for IP or license (again not so cheap).

But with Power Platform we got something more. Now we have Power Portal and as you have Power Platform included in your user’s subscriptions, you don’t need to pay something more (minimum, not such a big amount of money). Only what you need to pay is using portal, but this is really not so costly (100USD per month for 100,000 page views for unauthenticated users or 200USD per month for 100 daily login sessions for authenticated users. More details here: https://powerapps.microsoft.com/en-us/pricing/). And yes… we have an issue here… Power Portal is based on Dataflex Pro (formerly known as Common Data Service). But this is an opportunity, not a limitation. And this is the topic of this whitepaper.

Start with building entities in Power Platform

First as I already mentioned, this is necessary to build solution in Dataflex Pro and that means you need to create entity(ies) you want to connect with Business Central. That means you need to run Power Apps: https://powerapps.microsoft.com/. After that, I’ll continue with task. In this example, I’ll use Employee entity as we already have Employee table in BC.

To do this, you need to start from Entities (Data > Entities in the left navigation pane) or you can start with Solutions and create new entity from there. In the new entity, enter Display name and enter primary name.

Click Done when you enter that. After that, you need to add new fields using Add fields command. When you finish with all fields, click Save Entity to save all changes.

When you finish with all details in creation of entity you can start with building connection with Business Central. But keep in the mind that you need to make something more here and we will come back later. Right now, only one thing you can add is Key just to avoid having duplicates and my recommendation is to copy keys from BC table.

Connecting Business Central with portal

OK, connection with the Business Central can be done on a few different ways and I’ll try to explain all of them here.

Business Central customizing an integration with Common Data Service

From the Wave 1 2020, Business Central supports an integration by default with a set of entities in the Dataflex Pro default database, but you can make customization through extension and add more. For developing extensions that integrate Business Central with Dataflex Pro, system uses extensibility capabilities where proxies to Dataflex Pro tables can be created in Business Central, and these will be made extensible. This allows for custom attributes to be synchronized and for additional tables to be added to the default synchronization process.

When you create this extension, only what you need to do is mapping tables with entities as well as mapping fields in Business Central and Dataflex Pro.

I don’t want to write in details how you can do it as Microsoft already published completely documentation how to build this kind of extension and how to configure it. For more details, open this page: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/administration-custom-cds-integration.

When you finish with developing an extension, you can find here how to map tables and fields: https://docs.microsoft.com/en-us/dynamics365/business-central/admin-how-to-modify-table-mappings-for-synchronization.

When you connect entities in Dataflex Pro and Business Central, you can continue with building Power Portal.

Integration using webservices and Power Automate

Previous way of integration is native, but it requires some development knowledge. But what if you are not developer and still want to build portal based on Business Central? Do you think it is possible? Yes… this is an answer.

From the Entity page in Power Apps, just click Get Data and in the Power Query window choose OData tile. Go next and then you need to stop yourself there. You should move to the Business Central. Open Web services page and add page you want to use in synchronization. In our case, this is page 5200… just click New, as Object type choose Page and add this page number; enter Service name you want to use and click on Publish field. Copy OData V4 URL value.

Move back to the Power Apps and in the Connection setting paste this value to the URL field. Choose Organizational account as an Authentication kind. Confirm your credentials and go to the next page. Click Next until you open the following page.

Now you need to choose Load to existing entity option and in the Destination entity choose entity you created (in my example BCEmployees).

In the Field mapping part of window (right side), you need to map fields from web service in Business Central as a Source column with Destination fields (fields in our entity). When you finish it, just click Next and you will find a page where you can configure refresh settings. That means you need to choose how often system will synchronize data from Business Central web service to the entity. Click Create and you have been finished with integration.

But something will miss here. As you are using just refresh model, that means you will get records from Business Central, but you cannot insert there. Actually, you can insert to entity, but system will not insert them to BC. To solve this, you can create very simply flow in Power Automate. Actually… you will need as many flows as you want actions.

You can see on previous picture that I chose When a record is created and it will be OK if you want to have only Insert from portal. But if you want more action, you need to use the following triggers:

  • For ModifyWhen a record is updated,
  • For DeleteWhen a record is deleted.

In this example you will see flow for inserting, but I think you can easily understand how to create two additional flows based on well-known parameters.

Keep in the mind that you need to use the following parameters in the trigger:

  • Environment – choose an environment you used for building solution in Power Apps
  • Entity name – entity you created
  • ScopeOrganization

Now when you save it, your solution is finished. I would just like o mention that instead of web service integration you could choose API integration as well:

Configuration in both of cases is very similar and there is not a reason to repeat completely process.

Building a portal

Power Portal

Now when we made an integration using one of the models, we can continue with building our portal.

To finish with this process, we need to open Power Apps again and to start with creation new Power App. You can start from Home or from Create and you need to choose Portal from blank option.

Enter the name of your portal and carefully choose Address for your portal. This is place where you can also choose a language.

When you select Create, you need to be ready to wait some time until system create portal. It usually takes a few minutes, sometimes more, sometimes less… but be a patient. When an app is created, open it in the edit mode. You will see we have prebuilt portal, but we want to add new page with our data. To do this, select New page and choose Blank.

System will create new blank page and we need to add necessary components. Select Components icon in the left-side menu and locate List. This is logical if you want to start with a list view.

Now you need to configure some details. As we will create new component, choose Create new display and as Entity choose your entity (BC Employee in my example). The next important step is to choose a view as each entity has more views. I think that Active {items} are logical choice here.

OK, this is how we can create a list. But if you want to have possibilities to create new entry or to edit or delete it from here, you have an opportunity to do it immediately here. In the right-sided pane you will see a few options appear.

You can choose if you want to add the following features here: creating, viewing, editing and deleting. If you switch-on any of these options, you will get an opportunity to choose which form will be run to make this action. This is very easy for configuration, but what is important is that you need to have these forms already built.

OK, now you need to select Sync Configuration command to see result. But you can see that you have only two columns here in your list and this is not what you want. This is because, when system creates entity, views are created automatically but only with the main field plus Created On. But this is not problem as you just need to customize your view.

View customization

To customize view, you should go back to Power Apps and entity you previously created. There you need to select View tab and from the list of all view to select one you want to customize. In our case it is Active BC Employees.

When you open this view in edit mode, you need to add fields you want to see on your view. I’ll add Name, Surname, Address and City and resize it as I would like to see on the screen.

When you finish with adding and/or moving fields, you need to click first Save and after that Publish commands. Keep in mind that if you didn’t publish it you cannot use it.

Test

Now we can say we finished with everything. Go back to the Power Apps and choose Apps on the left-side pane. You will see completely list of your apps. Just choose app (portal) you just created. When you run it, choose the page we created and that’s it. You can see the window in portal with our data from Business Central.

Business Central API’s and Available Methods

If you use API’s in Business Central, probably you found some limitations in methods, depending on API to API. Sometimes you can do more, sometime less. For example, with Accounts you can use only GET method (I still don’t understand why?), and so on…

You can find details about all of them here, but I prefer to have everything on one place as it will be easier to decide if I would use standard API or eventually I need to create the custom one. Because of that, I’ve made this matrix with all standard API’s and methods you can use with them:

Except these limitations, it would be nice to know that you have some other limits as well and they are important if you want to use API’s in some solutions. Even if those limits are high, they are still limits. For example, you can have maximum 600 requests per minute in production environment and 300 in sandbox. Complete list of limits is here.

And what is also important? If you are using those API’s through Power Platform (or Logic Apps) connectors, you should understand their actions and parameters. All details can be found here, but there is a table for better understanding:

It is important to mention that all that information are subject of change.

Business Central Virtual Event – 2020 Wave 1

A couple days ago, we had an opportunity to participate first Business Central Virtual Event. This was good opportunity to see what is new in Business Central and the team during these times when we don’t have in person events (Directions Asia and Directions US are postponed to the end of this year).

With all existing and new features Business Central confirms that this solution is an important member of Dynamics 365 and Microsoft family, available for easy using and integration and collaboration with other systems through Azure cloud.

It is presented to us a new Business Central GM – Mike Morton, an experienced Microsoft leader, who introduce himself to the community as well as his first plans for Business Central. As important results he mentioned that now Business Central on cloud has 6000+ customers with 250+% YoY growth.

During this event we had a great opportunity to see some new features as well as to hear what is planned for the future releases. One of these great features planned in the next release is SmartList Designer – a great reporting tool inspired with GP tool and created in PowerApps. Further we could hear about new integration with teams as one of the most important integrations with other Microsoft products.

I don’t want to write about all features in this new release (2020 Wave 1), as you can find all details here. I just want to emphasize a few of these features. Finally, we have all languages available for using… and not only Microsoft official localizations, but also partner translations for much more countries. And one of my favorite features – integration with CDS; really great improvement which will have a huge impact on future implementation; I want to write independent blog post about this feature and this is a reason I don’t write here more. There is a lot of UI improvements (Collection of pages with already configured filters per pages, now you can bookmark reports as well, pages with two parallel lines, you can collapse or expand your lines on the page e.g. in CoA, personalization is really improved…). Finally, we can purchase resources… something partners developed in the past, but now available by default. Many great development improvements as well as on the server/database side (e.g. database read-only replica for reports, API pages, and query objects).

You still can find active session for this virtual event with 15 recorded presentations.

Why Attend BCUG/NAVUG Summit 2019 in Orlando

In a month, BCUG/NAVUG Summit in Orlando will start. There will be dozens of amazing lectures and if you are NAV or Business Central user, this event is probably something you must attend, especially if you want to continue with improving your knowledge.

I like to come back to this event every year as this is probably only one opportunity where you can get directly feedback from thousands of Dynamics users.

This time, I would try to explain why you should attend this amazing event using video message and I hope you will like it 🙂

My Sessions during Fall 2019 Conference Season

This fall I’ll be active and attend to four conferences as lecturer. If you want to see some of my lectures or to meet me, register for some of these events:

BCEE People, Prague – Business Central Roadmap in CEE countries

Directions EMEA, Vienna – Demystifying Posting Groups in Business Central (for partners)

BCUG Summit NA, Orlando – Demystifying Posting Groups in Business Central (for users)

NAV TechDays, Antwerp – Business Central with Power Platform (together with Renato Fajdiga, MVP)

Business Central – Spring & Fall ’19 Release

In my previous post, I’ve introduced you with the news from Directions ASIA and Business Central spring release. As I said in this previous post, there are a lot of improvements. Some of them are on this slide, and as very important improvements in performance, reliability and scalability, we can find that now we have

  • 50% faster Role Center load time
  • 40% faster in Lead to Cash scenarios
  • 2x improvement in RapidStart

Of course, there are a lot of other improvements. I’ve recently had a session about this topic in eXtreme 365, but this time I’ll not write about them, because you can find all of them in the following:

In total, there are more than 100 enhancements and some of them are extremely usable.

But what is also interesting? We got some hints what will be in Fall ’19 release. And as I mentioned yesterday, the first things – there will not be Windows Client and C/SIDE anymore; only Modern Client (web) and AL with VS Code. But in on-prem, you will get full BC code as an app and you can change this code as you used to work with that in old Development Environment. Not exactly the same, but you can do it. But even if you can do it, this is not recommendation as we heard that in one moment in the future we will continue with extensions only even on on-prem. Nobody can say when exactly, but this is a future. Because of that, start with extensions immediately.

Of course, team will continue to improve proficiency, to reduce ISV friction, enhance migration tools, to improve service fundamentals… and now we can see plans for CDS in 2020 and further.

What is not so good information (especially for countries without MS official localization) is that team announce that we can expect expanding localizations after October release, not before that ☹. But on the other side, team will invest in really cool things in this period.


And on the end, Directions NA will come in May and we will see if we have stil something new regarding all these topics.

eXtreme 365 in Amsterdam

eXtreme 365 conference is one of very important partner oriented conferences. After eXtreme 365 in Austin Texas in December last year, now it is a time for European eXtreme 365, this time in Amsterdam. If you still didn’t register, and if you are available in period March 25-27, you can do it here.

For sure, you can find a lot of interesting sessions there. But I want to announce my sessions. If you are newbie in Dynamics 365 Business Central, it will be helpful to attend the whole-day workshop: What is Business Central? A hand on Experience. It will be held the second day on conference. But first day will be reserved for my session What can you Expect in the April ’19 Business Central Release.

See you in a few days in Amsterdam.

All sessions from NAV TechDays 2018

NAV TechDays 2018 has just finished a few days ago and I can say this was the best NAV TechDays ever. I don’t know what name will be the next year NAV or BC TechDays (or something different), but I’ll be there for sure and I’m promising I’ll prepare session for next year. Now, all sessions are already published and I want to have all of them on the one place. There are all of them:

Opening Keynote

What’s new in Developing for Business Central

Practical approaches for upgrading your NAV database and moving to extensions

Performance: Business Central reloaded for the Cloud

Crazy mix of integrations: Dynamics 365 Business Central and Azure services

Add some magic to Business Central with Machine Learning

Business Central: The new face of the client

Evolution of a titan: a look at the development of NAV from an MVP angle

Designing for extensibility: Learn straight from the Application Architects

Under the hood of Business Central service

The future for developers and consultants

Real life scenarios and best practices for using NAV on Docker

CI/CD for Business Central