Search This Blog

Saturday, December 18, 2021

Microsoft Dynamics CRM Interview Questions and Answers

 Microsoft Dynamics CRM Interview Questions

The increased demand for CRM tools has created a lot of opportunities in the industry. Microsoft Dynamics CRM is one of the leading CRM platforms in the present age. Organizations are adopting it because of its wide range of benefits which include high customer loyalty, better marketing strategies, enhanced analytics, etc. 

Here, we have gathered a set of frequently asked Microsoft dynamics CRM interview questions for freshers as well as for the experience. Master these and you will definitely clear your interview with flying colours.

1Q) What is the difference between Dialogs and workflow?

Ans: Dialogs refer to synchronous processes that require user input, a wizard-like interface. Whereas Workflow refers to an Asynchronous process that requires no user input and it is a background process

2Q) What is Plug-in?

Ans: A plug-in is a custom business logic that functions for integrating Microsoft Dynamics CRM 2011 with Microsoft Dynamics CRM Online. This integrating is to augment or modify the standard behaviour of the platform.

3Q) What is workflow?

Ans: Workflow involves the automation of business processes from one party to another whose actions are in accordance with a set of rules.

4Q) What is the difference between plug-in and workflow with regard to security restrictions?

Ans: The user requires a system admin or system customizer security role and membership in the development administrator group, in order to register a plug-in with the platform. Whereas, the user can use the web application for workflow.

5Q) When will you use workflow?

Ans: The answer would be, it depends on the characteristics of the task that is under consideration. And the same thing applies to plug-in.

6Q) What is an E-mail router in Microsoft Dynamics CRM

Ans: E-mail router in MS CRM forms the software component which creates an interface between the Organization’s messaging system and the Microsoft Dynamics CRM deployment.

7Q) Should my Active Directory Domain have Microsoft Exchange Server installed in it?

Ans: No, it is not necessary. One can use in-house or external SMTP and POP3 services.

8Q) How can you enable or disable the form assistant? And how to be sure that the form assistant is expanded or not?

Ans: One can use the following pathway to ensure this– Navigate to Customization >> Open the Entity >> Open Forms and Views >> Open Form >> Select Form Properties >> Open Display Tab >> Check/Uncheck the “Enable the Form Assistant” and “Expanded by Default”.

Do you want to Master Microsoft Dynamics? Then enrol in "Microsoft Dynamics Training" This course will help you to master Microsoft Dynamics

9Q) What is meant by the Metadata services of MSCRM?

Ans: The metadata of MSCRM holds information about the attribute and the entity. For instance, platform name, the data type of attribute, size of the attribute, display name, etc

10Q) What is Discovery Services?

Ans: The discovery services function for determining the correct organization and URL. MSCRM has many servers, each of which it, might be dedicated to multiple organizations.

11Q) What is ‘Append’ and ‘Append To’ privilege in MSCRM? Give one example of it?

Ans: ‘Append’ and ‘Append To’ privileges works together. ‘Append To’ privilege will allow other entities to get attached to the entity. ‘Append’ privilege will allow the entity to attach the records to the entity with ‘Append To’ privilege.

Let us understand this with a simple example:

Let us say that you want to attach a note to a case then note entity should have ‘Append’ access right and the case entity should have ‘Append To’ access right.

Let us take one more example to understand this. Suppose you have two custom entities called ‘TestCustomEntity1’ and ‘TestCustomEntity2’. You want to attach the ‘TestCustomeEntity2’ records to ‘TestCustomEntity1’records. For this, you need to have ‘Append’ access right on ‘TestCustomEntity1’ entity and ‘Append To’ access right on ‘TestCustomEntity2’.

Now guess will I be able to attach the records? The answer is “NO” because we need to create a 1: N relationship between ‘TestCustomEntity1’ and ‘TestCustomEntity2’.

Now the user who has the above-mentioned access right in his security role will only be able to add ‘TestCustomEntity2’ records to ‘TestCustomEntity1’.

12Q) How to create a Custom Entity record using SDK?

Ans: Using a Dynamic Entity.

13Q) How to join two tables using Query Expression?

Ans: Using Linked entity. You should always try to minimize the number of SWS calls that we make in the database. Often during code review, it is explored that the number of Microsoft CRM web-service could have been reduced by making use of the Linked-entity concept. So we should always look for the opportunity to minimize the effort.

14Q) Can we modify the name of the Root Business Unit?

Ans: No; We will have to re-install MSCRM.

15Q) Suppose if I have 20 user licenses and I have created 20users. What will happen if I create a 21st User?

Ans: The 21st User will get created in MSCRM but that user will be in a disabled state.

16Q) What is the maximum number of tabs allowed on a Microsoft Dynamics CRM 4.0 form? 

Ans: 8

17Q) How to enable/disable the form assistant? How to make sure the form assistant is expanded/collapsed on a form?

Ans: Navigate to Customization >> Open the Entity >> Open Forms and Views >> Open Form >> Select Form Properties >> Open Display Tab >> Check/Uncheck the “Enable the Form Assistant” and “Expanded by Default”.

18Q) What is your CRM experience?

Ans: A summary of CRM experience, your CRM career journey.

Mention – Roles and experience, concentrate on the most relevant experience for the role

19Q) Tell me about your last CRM project?

Ans:

  • Size
  • Complexity
  • Customisations
  • Integration

Mention- Mention different customizations, difficulties experienced, and how you overcame them.  Show what skills you used and will bring to the role.

20Q) What development tools do you use for CRM development?

Ans: Mention – CRM Developer toolkit, XrmToolkit, Ribbon Workbench, Plugin Registration.  Tools used in CRM development which you use.

21Q) When do you use managed and unmanaged solutions?

Ans:  Mention – Discuss your experiences with Solutions, how you used them.  How would you use solutions?

22Q) What are the disadvantages of managed and unmanaged solutions?

Ans: Explain when to use managed solutions and when to use unmanaged solutions.  Solutions are a key part of releasing the customization to the customer if done badly can cause problems and waste time.

MS CRM Interview Questions

23Q) How do you set up your CRM solutions?

Ans:  Mention – Your experiences or ideas of how you think solutions should be created.  There is no right or wrong way

24Q) What are the potential problems with multiple developers working on a project?

Ans: Mention – How you have developed solutions with a team of developers and what problems can arise.

25Q) How do you debug a plugin?

Ans: Mention – How you debug, e.g. Unit Test, console app, Remote Debugging or plugin registration tool

26Q) How do you debug Javascript?

Ans: Mention – Pressing the F12 key and getting your breakpoints setup and hit.  If you haven’t done this, try it out, it’s awesome.

27Q) Have you integrated CRM with other systems, what was it, and did you have any problems?

Ans:  Mention – Any experience you have, the problems you experienced, and how you overcame them.

28Q) How do you estimate CRM customizations?

Ans: Mention – explain how you estimate customizations.  e.g. breaking up the work into smaller chunks, taking into account risks and experience.

29Q) Tell me about a project which went wrong, what were the reasons for the problems, how did you cope?

Ans: Mention – The lessons learned and how you avoid potential problems.

30Q) How do you test your code?

Ans: Mention – Unit testing knowledge and experience if you have it.  Your process of testing code.

31Q) Explain how pre-validate, pre and post are different plugins?

Ans: Mention – Plugin stages, images, and when you use each.

32Q) How are Asynchronous and synchronous plugins different?

Ans: Mention – Time.  Synchronous plugins must run straight away, async plugins can be delayed.

33Q) What is a common cause of plugin bugs?

Ans: Mention – The most common error is an infinite loop caused by updating fields, which triggers the plugin to run again and again

34Q) What is early binding, what are the benefits and the drawbacks?

Ans: Mention – Early binding creates strongly typed code which is easier to read and moves the errors to compile-time and not runtime.  Early binding stops syntax errors which can occur with late-bound code.

35Q) Should you keep up with the latest release of Microsoft Dynamics CRM?

Ans: Mention – Whenever you upgrade your CRM your customizations might stop working but you get the new features and fixes.  If you delay you have more versions to catch up to.

36Q) How do you keep up with Microsoft Dynamics CRM news?

Ans: Mention – Blogs, certifications, Microsoft Dynamics training Hyderabad community page

37Q) What is the effect of making a plugin sandboxed?

Ans: Mention – CRM online can only deploy Sandboxed plugins and  Limitations such as

  • Access to the file system (C Drive)
  • system event log
  • certain network protocols
  • registry
  • You cannot access any other DLL’s
  • IP addresses cannot be used
  • Only the HTTP and HTTPS protocols are allowed.
  • In isolated mode, you cannot call any external DLL’sDLL’s in the GAC

38Q) When do you use OData?

Ans: Mention – OData is the primary method to retrieve information from related records

39Q) What Access teams and why would you use them?

Ans: Mention – The purpose of access teams are to easily share records with a team of people where the members of the team are not static.

40Q) What is Metadata and how is it used in CRM?

Ans: Mention – Metadata is the data about data.  CRM has lots of Metadata, types of field, options value, auditing, etc.

To retrieve Metadata you need use web services, RetrieveEntityRequest for entity Metadata and RetrieveAttributeRequest

41Q) What things should you consider when choosing between CRM online or on Premise?

Ans: Mention – The big difference is you can’t see or modify the CRM server and SQL server.  CRM Online limitations, such as Sandbox plugins, workflow limit of 200, custom entities 300, storage is a monthly fee.

MS Dynamics CRM Interview Questions

42Q) Why is code readability important?

Ans: Mention – reading and understanding code is important because code spends most of its time in a maintenance state.  Developers will need to read and understand code to extend the code, debug the code.

43Q) Why Code Readability is important If a user complained a particular CRM form is loading slowly, how to investigate, what to look for?

Ans: CRM 2011/2013 Investigating CRM Form Performance issues

44Q) If CRM stopped working, what would you check?

Ans: Mention – CRM Async services stopped, APP Pool service account password, SQL Server services, Disk space, Active Directory

45Q) What is the POA table and how can it affect performance?

Ans: Mention – security, sharing problems.

On Creation Of Entity How Many Tables Will Be Created At Back End?

Entityname+Base, EntityName+ExtensionBase example: if you created an entity bank then the following tables will be created at CRM database                         

new_bankbase, new_bankentensionbase

Can We Hide Tab In Ms. Dynamic Crm Form Using Javascript? How?

Yes we can hide particular section using following line of code. Xrm.Page.ui.tabs.get("tab_name").sections.get("section_name").setVisible(false);  

 46Q) What is an Unmanaged Solution? 

Ans: There are two types of solutions in Microsoft Dynamics: Managed and Unmanaged. An Unmanaged solution is one that is under development or not yet ready for distribution. A completed unmanaged solution needs to be exported and packaged as a managed solution for its distribution. 

47Q) What is Microsoft XRM? 

Ans: We can interpret XRM as “eXtreme” Relationship Management, or “Any” (the X can be any value) Relationship Management. For example, an organization might be managing contacts, policies, parking violations, property taxes, etc. Hence, with the term XRM, you can manage the relationship of anything within the organization.

48Q) What is the ribbon workbench in Microsoft Dynamics? 

Ans: The Ribbon Workbench is a Microsoft Dynamics managed solution. After downloading it, you have to import it in the Dynamics instance by going to Settings > Solutions > Import. 

After a successful import of the solution, refresh the page, and you can see the Ribbon Workbench button in the solutions area of Dynamics 365. 

49Q) What is the Microsoft CRM SDK? 

Ans:  The CRM SDK contains all the functions which are essential to work with CRM. It describes all the documentation of all the features in CRM. 

50Q) What are the minimum privileges required to develop a solution? 

Ans: The minimum privileges required to develop a solution are: 

  • Read-write of solutions, web resources, customizations, and publishers 

  • Publish customizations 

  • Import and export customizations 

51Q) List some of the components of a solution. 

Ans: Following are some of the components that can be added to a solution: 

  • Site map 

  • Security role 

  • Report 

  • Plug-in assembly 

  • Message 

  • Form 

  • Field 

  • Entity 

  • Dashboard 

  • Connection role 

  • Business role 

52Q) What is the use of Managed Properties? 

Ans: Managed properties help in identifying the component of customizable managed solutions. If you want to apply managed properties, then an entity needs to be included using a managed solution and downloading it to another environment. 

53Q) What is a Publisher?

Ans: Each MS CRM solution has a publisher. The publisher works with data sources to track modification over a timeframe. The default publisher of microdynamics is called “Default Publisher for”. You can also create a customized publisher for a solution. 

54Q) What are web resources? 

Ans: Web resources are the components of CRM for developing HTML, JS, Images, Silverlight, and style sheet files. The different web resources in CRM are: 

  • Webpage (HTML) 

  • Script (JScript) 

  • Image (PNG, GIF, JPG, and ICO) 

  • StyleSheet (XSL, CSS) 

  • Data (XML) 

  • Silverlight (XAP) 

55Q) What are the data types in CRM? 

Ans: The different types of data in CRM are: 

  • Single and multiple lines of texts 

  • Date and time 

  • Decimal number 

  • Floating point number 

  • Option set 

  • Lookup 

  • Currency 

  • Whole number 

  • Two options 

  • Image 

56Q) What are the products provided by Microsoft Dynamics? 

Ans: Microsoft Dynamics provides two products. 

CRM Online 

It is Microsoft’s cloud-based service. It includes application servers, licensing, databases, setups, etc. CRM is a subscription-based service that businesses use when they cannot manage the technicalities of CRM implementation. 

CRM On-Premise 

In CRM On-Premise, applications and databases are deployed on client-server instead of Microsoft servers. It gives full control for customizations, database, backups, deployments, licensing, etc. Businesses use CRM on-premise when they need customized CRM solutions and better integration. 

Dynamics CRM Interview Questions

57Q) Define entity?

Ans: An entity model manages business data. It is a database table that stores the information in an organized format. Some of the different types of entities are: 

  • Cases 

  • Contacts 

  • Accounts 

  • Opportunities 

  • Leads 

  • Activities 

58Q) What are the steps to export a solution as a managed solution? 

Ans: The steps to export a solution as a managed solution are: 

  1. Go to Settings. And then, Solutions. 

  2. Click on the solution that you want to export. 

  3. Select Export. 

  4. On the“Package Type” page, select the “Managed” solution type. 

  5. Complete the remaining steps in the wizard. 

  6. Click on Save Changes. 

59Q) What is the function of a System Administrator? 

Ans: A system administrator gives full access to the files that are protected in MS CRM. 

60Q) Define the ‘Insufficient Permission’ error. 

Ans: When a user makes an object using security fields, an insufficient permission error is a message received on creating a record. 

61Q) List the types of Relationship behaviour? 

Ans: Given below are the different types of relationship behaviour. 

  • Parental 

  • Configurable Cascading 

  • Referential 

  • Referential, Restrict Delete 

62Q) How does CRM help in sales? 

Ans: The various ways in which CRM can help in sales are: 

  • It helps the sales team with customer management. 

  • It helps in lead generation. 

  • It centralizes customer data, which can be useful for the sales department of a company. 

63Q) What are the differences between Find and Advanced Find? 

Ans: The main differences between Find and Advanced Find are: 

 

Find 

Advanced Find 

It performs a search on an attribute. 

It performs a search on the conditions and attributes for which the user customizes or runs. 

It is faster as it searches for one attribute and returns the result. 

It is slower as it searches for all the attributes and conditions while parsing through records. 

It is applicable on only active records. 

It is applied to all the records. 

It filters only one condition. 

It filters multiple conditions. 

 

64Q) What are the changes in CRM? 

Ans: Few of the changes that are taking places in CRM are: 

  • The customer records are at the centre of the data universe. 

  • New and improved visibility is evolving for intelligent decision making. 

  • Companies are scaling to more customers. 

  • Better tools. 

  • Custom dashboards. 

65Q) What are the different web services available in MS CRM? 

Ans:

The web services available are: 

Deployment web service 

The uses of this service are: 

  • To create and import organizations. 

  • To enable and disable organizations. 

  • To add deployment administrators. 

  • To configure IFD and claims-based authentication. 

Discovery web service 

The uses of this service are; 

  • To identify the available organization information in a deployment. 

Organization web service. 

The uses of this service are: 

  • To access data and metadata. 

66Q) How to add/remove columns in an entity lookup window? 

Ans: The steps to add/remove columns in an entity lookup window are: 

  1. Go to Settings. 

  2. Under Customization, select the entity. 

  3. Click ‘Forms and View’ on the left navigation page. 

  4. Double click the ‘Entity Lookup View.’ 

  5. A dialog box will appear that contains the Add/Remove and Sorting options for a lookup view. 

67Q) What are the differences between GAC, Database, and Disk deployments? 

Ans: The key differences are: 

GAC Deployment 

Database Deployment 

Disk Deployment

It does not support CRM 2011 online deployments. 

It supports CRM 2011 online deployments. 

It does not support CRM 2011 online deployments. 

You can refer to external DLL assemblies used in Plugin only if the registration is in GAC. 

You can refer to external DLL assemblies used in Plugin only if the registration is in GAC. 

You can refer to external DLL assemblies from the disk and from GAC. 

68Q) What are the differences between early binding and late binding? 

Ans: 

Early binding 

Late binding 

In early binding, the compiler binds the objects to methods at the compile time. 

In late binding, the compiler binds the objects to methods at the runtime. 

It is also called static binding. 

It is also called dynamic binding. 

Example: Function overloading. 

Example: Function overriding. 


Friday, July 16, 2021

A Beginner’s Guide to Microsoft PowerApps

The Power Platform is comprised of the Power BI, PowerApps, and Flow. Microsoft has been increasingly promoting this as a whole. These three services provide tools to manage our digital world where data is king and the basis of any enterprise process. Their applications are as follows:

  1. You can display and analyze data with Power BI.
  2. You can act and modify data with PowerApps.
  3. You can automate data with Flow.

For more details on Power Platform positioning, you can refer to this official blog post.

How to Build an App with Microsoft PowerApps

The simplest way to build a PowerApps app is to start from the data source. This is part one in a three-part process:

1. For this example, we’ll start from a SharePoint list that stores consulting interventions:

2. Next, we’ll select the “Create an app” option in the PowerApps menu:

3. This takes us to the PowerApps Studio where we’ll find a fully functional canvas app generated by the system:

Keep in mind that these are just the default choices. They hide a much wider set of available options, configurations, and architectural choices that PowerApps provides. Without further ado, let’s take a more in-depth look!

Step 1: Select Your PowerApps Environment

There are four tools or environments that you can work within PowerApps, and they each have their own capabilities and roles.

PowerApps Website

The website is where you’ll begin your PowerApps service journey. This is where you will be able to create a new app and to manage existing ones.

Here’s a small snapshot of some of the templates that might give you some usage ideas for the app:

PowerApps Studio

Here you’ll be able to design and adapt apps that you create to your specific business needs!

PowerApps Studio contains three panes and a ribbon that help make app creation feel similar to creating a slide deck in PowerPoint. Source: Quick review of PowerApps Studio

PowerApps Mobile App

This handy mobile app is available on both phones (iOSAndroid) and tablets (Windows 10). No matter the platform, the app provides a runtime environment where you’ll be able to execute all of your PowerApps apps. This includes the ones that were shared with you as well as the ones you designed and coded yourself.

PowerApps Admin Center

Admin.powerapps.com gives you the power to create and manage environments, DLP (Data Loss Prevention) strategies and user roles. You can get a list of user licenses in the tenant.

Step 2: Select Your PowerApps Application Type

There are two main types of apps you can create with PowerApps:

  • Canvas apps
  • Model-driven apps

Canvas apps enable you to organize freely and easily interface by positioning controls and fields in a “pixel-perfect” user experience. The main focus here is bringing your business knowledge and creativity to the app’s design. Canvas apps target lightweight apps or even disposable apps that can be designed and used in minutes.

Model-driven apps are built on top of the Common Data Services used to help rapidly build forms, processes, and business rules. They focus on targeting heavier apps that are intended to be used intensively (multiple hours at a time).

powerapps

When working with model-driven apps, a good amount of the layout is determined for you and mostly designated by the components you add to the app. By contrast, the designer has complete control over the app layout in canvas app development.

There’s also technically a “third” type of app that’s a specific version of Canvas: SharePoint list customized forms. From a SharePoint list, you can leverage PowerApps to customize the standard SharePoint form. After pulling up the “customize forms” menu, you would then get access to one specific component in your PowerApps called “SharePointIntegration.”

Need a quick primer on PowerApps? This post is pretty thorough:CLICK TO TWEET

This control is responsible for communicating user actions between PowerApps and SharePoint. It adds several properties like “OnNew,” “OnSave,” and “OnEdit” which provide ways for the app to respond when a user clicks or taps the “New” button, taps an item, or taps the “Edit All” button.

Step 3: Select Your Storage Type

Power Platform and specifically PowerApps target a world where data is king and the foundation of any business process. Thus, choosing the correct data sources is very impactful when it comes to designing an app.

Data are stored in a data source and you import them in your app by creating a connection.

SharePoint lists and Excel spreadsheets are typically some of the most usual data sources, but there are also more than 200 data connectors available. PowerApps share connectors with Flow and Logic apps (the Azure service on top of which Flow is built). One of the great strengths of the platform is to provide connectors towards Microsoft worldOffice 365, SQL Server, Azure, etc., as well as towards external data sources like Salesforce, Dropbox, and Google Drive.

In PowerApps, a connector can provide data tables, actions, or both. Here’s for example of how a data source to a “Lessons” table can be used in PowerApps:

An action will have to be manually connected to a control to be executed:

For more, here’s an Overview of canvas-app connectors for PowerApps.

Be aware that the choice of data sources will have an impact on licenses needed to create and execute your app. If you choose or need a Premium source (like Salesforce or Common Data Service) you’ll need a PowerApps P1 or P2 license.

Step 4: Connect Your App to an Online or On-Premises Data Source

PowerApps is born in the cloud and can natively connect to cloud data sources. That said, it can connect to on-premises data sources as well. For that to happen you should configure an on-premises data gateway. This gateway is shared between several cloud apps like all the Power Platform (Power BI, Flow, PowerApps), Azure Analysis Services, and Azure Logic Apps.

powerapps

At the time of writing, supported data sources by the gateway are:

  • SharePoint
  • Oracle
  • SQL Server
  • Filesystem
  • DB2
  • Informix

Detailed instructions on how to configure and manage the gateway are available here.

Be aware that using on-premises data sources will have an impact on licenses needed to create and execute your app. If you choose or need a local data source, you will need PowerApps P1 or P2 license.

For all licensing information, you should have a look at:


Tuesday, July 6, 2021

Top 5 reasons to choose PowerApps

 With so many other mobile development tools on the market, why choose PowerApps? Here are 5 compelling features.

  1. PowerApps requires no programming experience. It provides a graphical designer that we can use to visually build our apps. PowerApps is based on Excel and the designer includes a formula bar, just like Excel. The language that PowerApps uses shares many of the same function names with Excel. Therefore if you know how to use Excel, you'll feel familiar with PowerApps.
  2. We can easily access company data sources from within PowerApps. Businesses frequently store data in SharePoint or SQL servers inside internal company networks. We can access this data by installing a gateway program on a computer inside the internal network. This provides a simple, non-programmatic way to make internal company data accessible from the mobile apps that we create.
  3. Simple deployment. We can make our apps available to end users through the sharing and publishing features in PowerApps. Compared to other methods of mobile development, there's no need to register for iOS developer accounts, obtain security certificates, or work out how to deploy Android APKs to devices.
  4. PowerApps provides access to hardware features on mobile devices, such as location services and cameras. We can retrieve the GPS location of a device, as well as compass and acceleration values. PowerApps also provides a pen control to capture signatures, and also provides barcode recognition capabilities.
  5. Finally, PowerApps provides lots of rich features, such as the ability to display charts, maps, and videos. We can also access a wide range of cloud services which includes services from Google, Adobe, Salesforce, and many other third party companies.

Excel vs SharePoint vs SQL Server vs CDS

 What data source should you use for your app? Here's a summary of the pros and cons of Excel, SharePoint, SQL Server, and the CDS.

Excel Spreadsheet

The key feature of Excel is that it's very simple to use. Users with very basic IT skills can cope with Excel. Other features include:

  • We can easily work with the data outside of PowerApps.
  • It's simple to backup data by copying the spreadsheet.
A severe limitation of Excel is that we can only access the first 2000 rows of a spreadsheet (more details here). Therefore, it is suitable only for simple apps where we don't need to store very much data.

SharePoint 365

SharePoint is a better data source, compared to Excel. For Office365 users, it works very well because a typical subscription includes access to SharePoint and PowerApps. Therefore, there's no need to pay extra for data storage. Features of SharePoint include:

  • It's simple to set up data lists in SharePoint. If you inlcude lookup or choice columns in a list, the form designer can generate combolist/dropdown controls for data entry.
  • SharePoint can validate the data that a user enters.
A limitation of SharePoint is that filtering and searching data can be difficult or impossible due to limited support for delegated queries (more details here). For example, a 'contains' search isn't delegable with SharePoint which means that SharePoint can only carry out a contains search on the first 2000 rows of a list. Backing up SharePoint data, and moving lists between Office365 tennents is also difficult.

SQL Server

In my opinion, SQL Server is the best data source. Its features include:

  • Rich database engine features - such as data validation, relationships, auto-incrementing fields
  • The best delegation support - we can query and return more accurate results, compared to SharePoint
  • We can use the built in/industry standard tools for backing up and restoring data.
  • We can bulk import data with tools like SSIS, import key values with 'identity insert', and more easily import sets of related data.
  • We can optimise data retrieval and join tables with SQL views. We can use view to return aggregate calucations (sums, counts, averages) for statistical reporting.
  • For more complex tasks, we can call stored procedures with Flow.

Using SQL Server doesn't need to be expensive. There is no license needed for an on-premise installation of SQL Server Express. The most basic setup of SQL Azure can start at around $5 month. Despite all the benefits, there are numerous issues to be aware of - not supporting tables with triggers is one of them. The best reference for SQL Server problems is Meneghino's blog.

CDS (Common Data Service)

The CDS is simple to use (compared to SQL Server) and provides great delegation support. The key features include:
  • The ability to design tables via a web based designer - no need to install/learn SQL Management Studio
  • Management of permissions through a web interface
  • Access to pre-built data structures/entities for common tasks like sales, invoicing, and helpdesk.
  • The ability to access data through an Excel add-in
  • The simplicity of having a database that's attached to an environment - no need to configure Azure firewall, or to understand 'database connection strings'
Access to pre-built entities can be a great benefit for non-developers. On the forums, non-developers often report problems  that arise from using non-normalised data sources. This can help these users avoid these types of problems. However, using the CDS can be expensive. It requires users to have a 'Plan 1' license which costs $7/month. For applications with 100's of users, the cost of using the CDS can be prohibitaive.   

Conclusion

For PowerApps, SQL Server is the data source that I recommend . It offers the most features, provides great support for delegation, and performs very quickly.

References:

http://powerappsguide.com/blog/post/excel-vs-sharepoint-vs-sql-server-vs-cds



Friday, July 2, 2021

Dataflow Vs. Dataset: What are the Differences of these two Power BI Components

 What is Dataflow?

Power BI Dataflow is the data transformation component in Power BI. It is a Power Query process that runs in the cloud, independent from Power BI report and dataset, and store the data into CDM: Common Data Model inside Azure Data Lake storage.

What is Dataset?

Power BI Dataset is the object that contains the connection to the data source, data tables, the data itself, the relationship between tables, and DAX calculations. Usually, Power BI dataset is hidden from the Power BI Desktop view, but easily can be seen in the Power BI service.