Data exchange between two Organization in MS CRM - dynamics-crm

Is there any way through which I can exchange data between two organization.
I want to do my coding in Plugin only. Can we write a code in plugin by which it accesses/manipulates the data of a different org through web services only and not directly hitting its database.
In know the orgs are different worker groups. Just wanted to know if its possible or if there is any other technique.
Thanks in advance.

The data for each CRM organisation is exposed via web services which differ slightly for CRM 2011 and CRM 4. The best thing to do is download the latest version of the SDK for the target platform as there are several examples in there for plugins and service based operations.
From your plugin you will be able to access the other organisation via this service and a connection to the service for the "local organisation in which the plugin is running will be available from the IExecutionContext parameter passed to your plugin. Any operations you carry out across both orgs will not be transactional though.
Also be sure to take a look at the sync and async options available for the plugins. If their use is appropriate for your scenario consider using an async plugin for the updates to the target org to minimise their effect on the source org.

Plug-ins will work. Hitting the database directly is actually not a supported model anyways. You can also think of using BizTalk as the middleware.

Related

SalesForce Commerce Cloud. Intercept data of users and orders

I'm not so familiar with Commerce Cloud product but I need to know one point and I hope community can help me.
I need to implement a feature for customer who use SF Commerce Cloud and I would like to know it is possible or not. Customer wants to send some of data such as orders and users to an additional storage. This is requirement of local law and they have to implement it to do business.
Is it possible to intercept some actions like order placing, modifying, deleting and e-store customers creation, modifying, deleting? It would be great if you help me with direction where I can find additional information because after several attempts I can't get access to trial version of Commerce Cloud.
Thank you!
Yes, it is possible to do this in various ways. One way might be to implement a Javascript tracking integration that runs in the customer's browser and is referenced by the Storefront application that is running on SFCC. Another way would be to implement what is known as an Integration Cartridge which would implement several export jobs and/or service connections to your third party storage solution.
There is no trial version of the platform. In order to access an instance for development purposes, you will need to work through your customer's sandbox instances or become a Salesforce Partner.
Please review the Getting Started documentation. See also: Demandware/SFCC prerequisites

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.

Connecting JIRA and MS Dynamics

I am .NET developer and new to both JIRA and MS Dynamics API development. Recently I got a task to integrate JIRA and MS Dynamics. Basically I need to update JIRA Issue time tracking Information to Dynamics. And also need to share some Dynamics Information on JIRA.
Possible approaches to solve this problem.
Write JIRA plugin to Connect with Dynamics via WEB API. (This approach need Java development Experience)
Write Dynamics extension to communicate with JIRA through JIRA web service
Write Scheduled task to synchronize JIRA and Dynamics using JIRA and Dynamics web services
Develop ASP.NET web site and use JIRA and Dynamics Webhooks to synchronize
I am thinking of write a scheduled task or use Webhooks to achieve this task. Is there any other way to achieve this task? What is the best possible approach to sync JIRA and MS Dynamics.
If you are updating issues only one way (JIRA to CRM) then you can't do this with CRM plugin. Also I don't see how you could do this with ASP.NET website (I mean without any user action on this site). If you need most current data in CRM then best option would be JIRA plugin if not then sheduled task.
I've more or less always seen people go with #3 when having to sync CRM (usually with ERPs like NAV or SAP). We too code custom programs to be scheduled in order to do the syncing.
Or you could buy Scribe, which allegedly syncs anything with anything... No hands-on experience on that, but I know it's used by big companies so it should work.

Integrating with Dynamics CRM - REST vs. XML vs. SDK

I put together some code for accessing CRM using the DLL's provided in the SDK download and tried out both the early binding approach and late binding approach.
What I'd like to do is in addition to having some custom entities that my users will access in Dynamics (through the Dynamics UI in the cloud), I also want to build some Android apps that talk to Dynamics.
My understanding is that I can talk to Dynamics from Android via REST (assuming I properly handle the authentication and getting tokens using ADAL libraries since my Dynamics instances run on the Microsoft cloud) or I can use the SDK with .NET as a middle-tier.
What's the recommended approach? Is there a best practice? When would I use the DLL's provided in the SDK and maybe wrap them in my own Web API vs. connecting to Dynamics directly via REST?
Please help this noob.
Kind of hard to say, depends on your talents and needs. Here is a great website link to get started though:
http://blogs.msdn.com/b/crminthefield/archive/2015/01/12/build-your-own-crm-mobile-app-s.aspx
Just a note on the Rest calls, you can only perform CRUD operations by default, and will need to jump through some hoops to perform the other calls.

Visualise the Dynamics CRM database

I an new to both Dynamics CRM (Hosted) and LINQ, so please forgive my ignorance with this question...
I need to access some data stored in the CRM, but have no idea how to get at it. Normally I would open my SQL Management software and look around for the data, but I cant do that with the Hosted CRM data.
So.... My question is, is there anyway to visualise the 'database' to find the data I need to recal ???
Thanks in advance.
If you want manipulate the data of a CRM 2011 instance is necessary to follow some rules.
For CRUD and business operations you need use the CRM 2011 web services (also in combination with LINQ)
Is also possible (if you can connect to the DB) to read the data from Filtered Views, a Filtered View is a view mapped on a standard CRM entity (for example to read the data from the entity Account you can use the view FilteredAccount)
Read or modify the data directly from the tables is not supported.
If you want to know the structure of the entities you can use the Customization area inside CRM, or install the Metadata Browser (a solution available inside the CRM 2011 SDK) to see the attributes and the relationships.
A good starting point is always the CRM 2011 SDK, you can download here:
http://www.microsoft.com/en-us/download/details.aspx?id=24004
Inside you will find many examples (if you want to use LINQ check the early-bound ones) and the assemblies and tools for development.
Download the SDK and import the Metadata Browser managed solution (\sdk\tools\metadatabrowser\metadatabrowser_2_0_0_0_managed.zip) into your CRM Live instance.
You could also try downloading the database schema for the out-of-the-box database setup. Not really optimal but it might work for you.
You could also install a local version of Dynamics CRM (say in a virtual machine) for testing (either via MSDN or the free trial download.) This will give you SQL access to the database.
I recommend going with the Metadata Browser, which will probably get you the information that you need. Since the Metadata Browser is a managed solution you can install and remove it without impacting the Default Solution or any other solution in the organization.
Actually it turns out it is possible to work with the Dynamics CRM Online 'database' in much the same way as you can with any number of SQL Manager tools.
Linqpad4 - allows you to work with a number of environments and write your queries in VB, C# and even SQL.
It looks like a great tool, and has already helped me greatly, it certainly makes the Dynamics / LINQ scenario much easier to explore and learn about.
LinqPad4 can be downloaded here: [http://www.linqpad.net/]
and the driver(s) for Dynamics CRM can be downloaded here: [http://archive.msdn.microsoft.com/crmlinqpad]
I strongly recommend it.

Resources