Dynamics 365 9.0 Server (On-Premises) je konečně veřejně dostupný!

Přesně před týdnem byl vypuštěn veřejný build verze 9.0.2.3034 ke stažení.

Pro On-Premises prostředí je to velká a zásadní aktualizace, která přináší rozdělení aplikací a platformy a funkcionality, které již dlouho známe z cloudové verze Customer Engagement.

Velkou a nejviditelnější novinkou je příchod Refreshed a Unified Interface. Klasické rozhraní je vylepšené a uživatelé již neuvidí moře bílé plochy. Získájí přívětivější rozhraní, vylepšené ovládací prvky, ohraničení elementů. Pokud vytvoříte v řešení Application Module, můžete se těšit na nové, krásné a responzivní formuláře (UUI), které jsou konzistentní napříč klienty:

Continue reading “Dynamics 365 9.0 Server (On-Premises) je konečně veřejně dostupný!”

Logic Apps foreach and variables

Sometimes we need to work with a variable inside a loop section. Whether it’s a precomputation or just a helper variable. Logic Apps allows us to do so. Yet the variable must be initialized on a global level (above all loops).

Here comes the problem:

By default, foreach runs in parallel, in 20 threads (instances). Now, because there is no such thing as mutex in Logic Apps, there is no way how to create a critical section. Critical section is a section only one thread at a time can enter. That results in dirty reads.

We can solve this problem by running the loop synchronously. You can do that by editing settings of the foreach block.

Now only one thread at a time will execute the foreach loop and no other thread will modify our variable while we work with it.

Notes: Adding custom fields to entity maps between Quotes, Orders and Invoices (solution aware)

Finally, it’s the weekend and I have some time to focus on an issue which bothered our team for a few months. As always we wanted to do it the right way so it will be fast, reusable, continuous integration compatible and without spawning unnecessary workflows and plugin instances.

Continue reading “Notes: Adding custom fields to entity maps between Quotes, Orders and Invoices (solution aware)”

Azure AD Connect, group-based licensing and proxy addresses

We have had the group-based licensing option available in preview for over a year. While this service is in preview, it makes provisioning hundreds of users from Active Directory really simple.

You simply create users in your on-premise Active Directory, assign them a valid User Principal Name, add them to the correct group and then sync them with Azure AD Connect, right? Not that fast cowboy!

Continue reading “Azure AD Connect, group-based licensing and proxy addresses”

Assembly Caching Issue in Dynamics 365 V9 – Update Assembly Version of Custom Workflow Steps With PowerShell

As Alex blogged we are currently facing a caching bug of plugin assemblies in Dynamics 365 cloud instances (V9). You can do an in-place upgrade with Plugin Registration Tool without an exception now (see Unable to in-place update plugin in Dynamics 365 (with build or revision number changed)) but for some assemblies it just won’t propagate to your workflow definitions.

In the past we could fix it by clicking a save button in Properties tab of the assembly in Plugin Registration Tool but this does not work anymore in V9.

I have put together another workaround which is usable in release automation scenarios.

Continue reading “Assembly Caching Issue in Dynamics 365 V9 – Update Assembly Version of Custom Workflow Steps With PowerShell”

Best practices for managing students in Active Directory

For quite a long time, we have been running a local service called SkolniLogin.cz which primarily focused on providing SSO experience for various systems at schools (primary and high schools) along with automatic synchronization with the school’s information system. Throughout the time we have hit a lot of edge scenarios, and compiled a best practices guideline.

Continue reading “Best practices for managing students in Active Directory”

Co pro nás znamená nový způsob doručení aktualizací Dynamics 365 CE a jak se připravit

Microsoft chce dostat všechny zákazníky v cloudu na poslední (a tu nejlepší) verzi, a tak mění kompletně styl vývoje, podpory a nasazovaní aktualizací na kontinuální model s největší možnou kadencí.

Od V9 již není možné plánovat, kdy bude instance aktualizována.

Od února 2019 nejspíše všichni v online prostředí poběží na stejné verzi. Již nebude možné zůstávat pozadu. Krátce na to přijde nová verze V10 (duben 2019).

Nové funkcionality a případné breaking changes budou vydávány dvakrát ročně v dubnu a listopadu. Microsoft se pokusí zajistit zpětnou kompatibilitu pro rozšíření a úpravy.

Continue reading “Co pro nás znamená nový způsob doručení aktualizací Dynamics 365 CE a jak se připravit”

Unable to in-place update plugin in Dynamics 365 (with build or revision number changed)

UPDATE 19/9/18: It has been fixed in 9.0.2.5 version of Plugin Registration Tool https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool/9.0.2.5

If you use 9.0 version of Plugin Registration Tool to update your assemblies in Dynamics 365 you may encounter the following exception:

Continue reading “Unable to in-place update plugin in Dynamics 365 (with build or revision number changed)”

Novinka Common Data Service 2.0 v souvislostech

Pokud to trochu sledujete, ale začínáte se ztrácet v posledních novinkách v oblasti informačních systému Microsoftu, tak určitě nejste sami. Microsoft totiž chodí s kladivem, rozbíjí je na menší části a se snaží poskládat moderní platformu, která obstojí v dnešním cloudovém světě, kde se vše mění dříve než se to pořádně dostane k uživatelům.

Níže si můžete přečíst o situaci v kontextu CRM a platformy Common Data Service, kterou považuji za zásadní pokrok. Přinese totiž robustní informační systémy i do menších organizací a prováže technologie, které si dodnes spolu povídaly jen draze a složitě.

Continue reading “Novinka Common Data Service 2.0 v souvislostech”

Remove missing dependencies from solution XML with PowerShell

The import of the solution XYZ failed. The following components are missing in your system and are not included in the solution. Import the managed solutions that contain these components (Active) and then try importing this solution again.

If you ever run into this exception and there are all the components already present in the environment you just need to get rid of few lines in a solution definition in the ZIP file you are trying to import.

Do this only if you are absolutely sure that you know what you are doing.

Continue reading “Remove missing dependencies from solution XML with PowerShell”