You are here

Application Development

Simple Cookie Management in ASP.NET

Cookies are one of the many options available for state management in ASP.NET. A cookie is a small file on a client file-system that can be stored or retrieved from a browser session. These can be used for many things, but frequently are used to maintain a user session after the browser has closed – this comes into play with those “Remember Me?” checkboxes on log-in screens. When a user checks the box, they are usually consenting to have a cookie placed on their system.

Managing PowerBI Groups

Publishing reports under the workspace of a username works great when only one person is in charge of managing it. Unfortunately, PowerBI doesn’t allow us to give other users edit privileges on those reports, which limits effective collaboration with the rest of the team. 

Fortunately, PowerBI gives us the option to create groups which come with the ability to fine-tune permissions for other users. This feature requires a Power BI Pro license and is not available in the free version. 

Microsoft Dynamics CRM Custom Entity Record Ownership

In Microsoft Dynamics CRM, when creating custom entities with a master-detail relationship, take care that the ownership of the detail record matches that of the master record.

For out of the box CRM master-detail entities, such as Invoice-Invoice Product and Quote-Quote Product, detail records automatically inherit the security of their master record. There are no ownership fields exposed on the detail record itself.

Sync Data Changes with TSQL Merge

The TSQL Merge statement has been around since SQL 2008, but I haven’t had a real need for it until recently. Typically, if you wanted to modify or synchronize data in a table based on some source, you would have to perform separate operations for insert, update and delete. This is where Merge comes in as it allows you to perform those insert, update and delete operations on a target table in one statement by joining to a source table.

Viewing Executed SQL or FetchXml in Microsoft CRM Reports

One important thing about any CRM system is being able to get data out of the system; in other words: reports. Reports aren't sexy for developers, but they're important for end users.

Sometimes as you're debugging a report, you want to see exactly what was executed by the reporting engine to retrieve the data because something isn't exactly what you expect. You're not sure what parameters are being sent, or maybe you just want to get the full query with real parameters.

Embedding PowerBI Report into CRM Form

With the last spring wave update, Microsoft gave us the ability to embed PowerBI visualizations into CRM dashboards. If we want to display a report on a CRM form, we don’t have a native support to do that just yet.

However there are multiple approaches that allows us to embed a PowerBI report via an iFrame. In this blog post, I’m going to elaborate on the easiest approach and discuss its pros and cons.

Subtleties of the Microsoft Dynamics CRM 2016 Upgrade

Here are 2 observations from our Microsoft Dynamics CRM 2016 upgrade experience (from Online 2015 to Online 2016) that might be helpful to you:

Duplicate detection rules got published – In our initial CRM installation, we had unpublished all existing duplicate detection rules, being not yet ready to employ them.  The upgrade process published the duplicate detection rules, so we needed a post-deployment step to unpublish them again.

Sending an Email Created in a Workflow

I had a situation where I was creating an email in a workflow using the standard step of "Create Email." After the email was created, some custom processing was done on it (specifically, creating a PDF and attaching it to the email). Since this was my first foray into the territory of creating emails in a workflow with custom processing, I thought it would be as easy as setting the status of the email to "Send" and it would automatically get sent. Nope, it's not that easy – but it isn't that hard to get done, either. It does take a little bit of code in a custom workflow step.

Pages