Microsoft Dynamics 365 bulk update/import via Microsoft Flow - dynamics-crm

Is there a way to perform a bulk update from an CSV file into Dynamics 365 via Microsoft Flow?
I have been looking at the following capability that was supposed to be released (September 2019), but could find the "Batch" action anywhere under common data service:
Automated flows support batch operations in Common Data Service
Release notes:
What's new and planned for Microsoft Flow
However, I was hoping there is an alternative that could even possibly leverage some bulk update task in the mean time.
The requirement is that I would like to perform a bulk update of records once a day, updating/inserting as needed.

ETL job for Dynamics 365 is huge deal, we have third party providers like Kingswaysoft for SSIS, Scribe, Cozyroc, etc to furnish the necessary connector versions along with rapidly changing CRM endpoints. They support batch operations, multi threading using RESTful web api as well.
Pro developers will do console app & do task schedulers for the same ETL job. Now we want to do the same in MS Flow (Power Automate), surprisingly the links you shared were removed for the trace of those terminologies. Impossible?
We can do read the CSV file & iterate the rows, then transform the values for the datatypes like currency, picklist (optionset), lookup, and finally update/create in Dynamics 365 as per our need.
Microsoft Flow: CSV Integration with Dynamics 365 (Example)
Yes, this is not batch operation, but CRM REST web api endpoint supports batch operation, I know to use it only using C# and JavaScript :)

Related

How to synchronize the Business Hours and Holidays in Dynamics 365 using Data Export Service

I wanted to synchronize the business hours and holidays to Azure SQL using the data export service in Dynamics 365. I can't find the entities that I needed to synchronized, is it possible to do and if it is which entities should I synchronized?
You are looking for special entities that too very complex internal type entities, which is not available for enabling change tracking & thus Data Export service (DES) cannot replicate in Azure SQL. Read more
Probably you can use the REST Web API endpoint [organization URI]/api/data/v9.0/calendars to pull these & store explicitly. I have not tried it, but did a simple browser test successfully. Reference
Worst case, create them manually in SQL directly for usage. Instead of all the above complicated route.

How to expose OData feeds using Power BI?

I currently have internal users using the inbuilt OData feed exposed by Dynamics 365 Online. I would like expose a portion of the feed to anonymous users, based on the results of a predefined query, e.g. all contracts created more than one year ago, and only particular columns.
I was hoping Power BI Online could be configured to act as an intermediary and expose OData feeds based off queries.
Is this possible? Or does Power BI Online only consume data?
No it’s not possible. Dynamics CRM feed need authentication to show entitled data. PowerBI cannot generate feeds just consumption for reporting & data visualizations.
Either you can develop your own open API in which some service account can be used to impersonate for accessing filtered Dynamics CRM dataset, PowerBI can consume that API.
Or some SQL/Exported excel file in onedrive can be used as data source.

Integrating SharePoint online with external application using Microsoft Flow scheduler

I need to integrate an external application with SharePoint Online where i need to retrieve data on a daily basis.
Was thinking of implementing it as a Microsoft Flow scheduler and using HTTP REST API action . Is this the right way or is there any other way ?
Thanks in advance
Apart from it sounds rather like general question about some business process architecture, let's go through it:
i need to retrieve data on a daily basis.
That's ok and what MS Flow is widely used for. You can list items/folders, create new ones or delete them and get file content.
Was thinking of implementing it as a Microsoft Flow scheduler
This sounds like Reccurence trigger which runs an event at regular, customized time intervals.
using HTTP REST API action
Indeed, HTTP action allows you to invoke REST API. On the other hand When a HTTP request is received trigger allows you to start the flow from other flow/app.

Is it possible to replace all XRM calls with Dynamics 365 Customer Engagement Web API?

I have a project that is referencing an XRM Entity file and I was wondering if calling the API methods can completely replace my interaction with this file. E.g. there is a data contract between this XRM layer and CRM such that when an update happens in code through the XRM layer it will trigger the proper workflows in CRM. Will this interaction still be the case while interacting with the API?
Currently there are two active endpoints in CRM, the 2011 endpoints, and the WebApi endpoints (8.0, 8.1, 8.2, 9 etc). Previously, the SDK for CRM (Microsoft.Xrm.Sdk) has entirely been utilizing the 2011 endpoint via the IOrganizationService. There is a commitment to MS to replace the calls under the covers from the 2011 endpoint to the WebApi.
So if the desire is to use the WebApi and you're doing .net development, I'd just stick with it. If the idea is to remove all dependencies to the SDK, there is nothing stopping you as well. I would argue that you're going to have to spend more time ensuring you're handling all of the WebApi nuances correctly than any potential benefit you'd receive from removing dependencies on the SDK framework.
CRUD operations happening through CRM SDK Org Service or WEB API will trigger the configured WFs seamlessly as per Dynamics platform design.
The file you generated using crmsvcutil is helpful for Early bound coding which will help type check in compile time. Another way (without this file) is Late bound which is runtime check. Web api is going to be Late bound, so file can be retired and calls can be replaced.
If you are blocked with any particular web api call, you can reach out to community for help.

PowerApps Common Data Service (CDS) 2.0 connector doesn't work for a Dynamics 365 CE instance

Hopefully, someone can straight up my PowerApps connectors understanding. Apparently, I have 3 connection options.
Common data service - this connection type only allows me to connect to CDS 1.0 databases, but I want to connect to an existing D365 v9 instance.
Common data service (experimental) - this connection type asked me for a D365 v9 instance ID, but everything is grey out after the step, i.e. it didn't show me any entity after connecting successfully.
D365 data source - this one works but I was told MS has stopped working on this connector. Also, I will have to update the connection after deployment to a different environment manually.
What is the best practice if I want to use a CDS connector? Or I will be stuck with the old D365 connector for now?
Thanks.
==11/1/2018 update==
I have a better understanding of my situation now. Every Dynamics 365 CE instance should have a PowerApp environment automatically, but one of my D365CE instances doesn't. I am suspecting it is because the D365CE instance is still version 8.2.
My question above is because I created an empty PowerApp environment and tried to connect it to the D365CE instance (v8.2). I will give you guys another update after I upgrade the instance to v9.
==11/30/2018 update==
Confirmed. By upgrading a D365CE instance from v8.2 to v9.0, the Power Platform generates an environment automatically and linked it to the D365CE/CDS.
Here's a breakdown of the three connectors you're looking at :
Common Data Service - this connector actually supports both versions of CDS, but it will be dependent based on the environment that you're in. So if you're in an environment that has a CDS1.0 database, it will connect by default to that environment. If you have a CDS2.0 database, it will connect by default to that environment.
Experimental Connector - this is similar to the previous connector, but it includes experimental features in development by our team, and isn't recommended for production use. Generally you should only be using this connector if there is a specific feature we announce in the experimental connector you wish you use.
Dynamics 365 Connector - this is similar to the base CDS connector, however it can only connect to CDS2.0 environments. It also has the ability to connect across environments. So you can be in Env1, but connect to a database in Env2. The normal CDS connector will only connect to the database within the environment you are building your app in.
Which one should you use? The Common Data Service connector is going to be your best option, it's where the most improvements are being released at the moment, and is designed to work best with PowerApps and Flow.
To connect to your Dynamics 365 environment, you'll want to make sure you start from web.powerapps.com and select that environment from the drop down in the top right, if you can't find your Dynamics 365 V9 environment - make sure you have system customizer permissions - if you do and you still can't see it, it may be an issue on our end. You can send me a message with your Dynamics org URL and we can check it for you.
Once you can select it from the environment drop down, you can then create a new app and use the Common Data Service connector, and it will connect directly to your Dynamics 365 data.
Hope this helps,
Clay.
I don't have much experience with CDS 1.0 in the Power Platform. I can share some insights on my experience with Microsoft Flow / Logic Apps, CDS 2.0, and Data Integration. So I hopes this helps add another perspective to this question too.
What is your goal in using Common Data Service? Just to pull Dynamics 365 CE data into it?
This recent Product Team Blog could be useful here if so.
Some initial feedback, if the main goal is to connect to a Dynamics 365 CE instance, consider using the Dynamics 365 Connector through Microsoft Flow. You can create a small Flow at https://flow.microsoft.com/ with a 2 step process like mine below. An event takes place in Dynamics, like creating an account. The event and it's data is captured and in used in a response process, like sending an email alert. In this case the alert is sent to the signed in users email.
From a developer standpoint you can also use the Xrm SDK and Web API to collect data and do some data processing as well in C# or JavaScript respectively too. This is more involved, but provides a greater amount of control around the data you're working with. There's a great intro to
Lastly you can spin up a PowerApp to surface your data as well with some pre build templates https://create.powerapps.com/.
Start with your Data and create a Dynamics 365 app in a phone layout.
Choose your organization and table.
After the app creates, hit play to run it.
Search for an account
It turned out the problem is not with the connectors but with PowerApp environments. By upgrading a D365CE instance from v8.2 to v9.0, the Power Platform generates an environment automatically and linked it to the D365CE/CDS. So, it should just work for all v9+ instances.

Resources