Historical Data Migration – Created On and Modified On in Dynamics 365


Very insightful article by Debajit !

Just to summarize –

If we are using SDK method from external application to set values for created on, modified on – we can use overriddencreatedon for created on. Modified on will be ignored.

Setting values in Pre-Create Plugin – values specified for both created on and modified on will be set in the record.

Azure Data Lake Storage Component in KingswaySoft – SSIS


Download and install the SSIS Productivity Pack

https://www.kingswaysoft.com/products/ssis-productivity-pack/download/

Drag the Azure Data Lake Storage Source component in the data flow

Double click and click on New to specify the connection

Provide the connection details and test the connection

  • It supports both Gen 1 and Gen 2

  • Supports the below Authentication modes

Inside the Azure Data Lake Storage Source component, we have specified our CSV file.

  • All Contact.csv file

Item Selection Mode:

  • Selected Item: Retrieves only the item specified by Source Item Path.
  • Selected Level: Retrieves the selected item and all immediate files and folders under the path specified by the Source Item Path option.
  • Selected Level (Files only): Retrieves the selected item and all immediate files under the folder as specified by the Source Item Path option.
  • Recursive: Retrieves the selected item (specified by the Source Item Path option) and all sub items recursively.
  • Recursive (Files only): Retrieves items the same as the Recursive mode but only returns files.

The page size refers to how many records to retrieve per service call

The columns page shows all the available attributes from the object specified in the General page

We have used the script component as the destination to read the values of all the above columns

The value for each of the columns –

datalakecsv

Get all the details here

https://www.kingswaysoft.com/products/ssis-productivity-pack/help-manual/cloud-storage

Posts on Azure Data Lake

Hope it helps..

IP ranges for Dynamics 365


biplab singha's avatarBiplab Singha's blog

IP whitelisting (Range) for Dynamics 365.

In one of our recent project we need to call a web service from Workflow and Action from Dynamics 365 online (9.x) . The web service publisher will allow only request from specific IP ranges due to security principal of the organisation.

To Achieve this IP range there could be multiple approach but I will explain the below two

  1. Add Dynamics IP range to the allowed IP range for the Web Service Publisher.
  2. Use Azure API manager or some other static IP provider in between Dynamics 365 and the Web service.

In the current blog I will explain the Dynamics 365 IP ranges. I will explain the Azure API manager in future blog.

Add Dynamics IP range to the allowed IP range for the webservice

The IP range for dynamics CRM can be found on https://support.microsoft.com/en-us/help/2728473/microsoft-dynamics-crm-online-ip-address-ranges . this link has the exhaustive list for…

View original post 255 more words

How to – Setup a free trial of Dynamics 365 Marketing


If we already have a Microsoft 365 / Dynamics 365 tenant, we can directly request the trial for Dynamics 365 Marketing from Microsoft 365 Admin Center https://admin.microsoft.com through Purchase services > Dynamics 365 Marketing option.

And within Power Platform Admin Center https://admin.powerplatform.microsoft.com/, we can navigate to Dynamics 365 Apps >> Dynamics 365 Marketing Application solution and select Manage.

Here Dynamics 365 Marketing Application is the full application with both the solution and the services and Dynamics 365 Marketing Solution Only provides the entities without services.

Select the appropriate Dynamics 365 Organization.

Provide the address and click on Setup

After a few minutes, the setup would complete.

Take me to the app will open the Dynamics 365 Marketing App.

We can also set up Microsoft 365 Tenant or Dynamics 365 trial https://trials.dynamics.com/

(in case if we do not have one).

Microsoft recommends to sign up for Microsoft 365 E3 Trial

After the tenant is set up, go to Get started with Dynamics 365 Marketing page to set up the free trial.

https://dynamics.microsoft.com/en-us/get-started/free-trial/?appname=marketing

Here we provided the existing tenant’s account used.


Once the setup is done, the same sign up now options takes you to the instance picker page

Clicking on Open asks for an address.

Clicking on Begin opens the Dynamics 365 Marketing App.

We can log in to the Power Platform admin center and can see the environment created for the marketing app.

https://admin.powerplatform.microsoft.com/environments

Get all the details here –

https://docs.microsoft.com/en-us/dynamics365/marketing/trial-signup

https://docs.microsoft.com/en-gb/dynamics365/marketing/purchase-setup#add-a-marketing-app-to-your-microsoft-365-tenant

Hope it helps..

Advertisements

Wrestling With Email Address Limitations


leontribe's avatarThat CRM Blog

Dynamics CRM has been around for a while (about 13 years) and, as is the way with any software, there are a few design features from the old days which linger today. One of those is how email addresses are treated for Accounts, Contacts, and Leads.

How Emails Work in CRM

Basically, for an Account, Contact, or Lead you have three email addresses: emailaddress1, emailaddress2, and emailaddress3. All three are used for linking Activities to records but you can only email out using emailaddress1.

When the smartest developers in the room built Microsoft CRM 1.0, they decided that the product would email a record and not an email address, and the email address used by that record would always be emailaddress1. If you type in an arbitrary email address in the CRM form, it will error, as it expects a record.

image

Naturally, some customers want to go beyond these limits…

View original post 446 more words

How to – Consume Dynamics 365 Web API using MSAL.NET


Sharing a sample code to consume Dynamics 365 Web API using MSAL.NET

Create a console application and add the following NuGet Package

  • Microsoft.Identity.Client

More on Microsoft identity platform

https://docs.microsoft.com/en-us/azure/active-directory/develop/

We are using ConfidentialClientApplicationBuilder create method.

https://docs.microsoft.com/en-gb/azure/active-directory/develop/msal-net-initializing-client-applications

The sample code –

using Microsoft.Identity.Client;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace CrmAppMSAL
{
class Program
{
static async Task Main(string[] args)
{

string clientId = "fc34502a-74db-4977-8c83-***********";
string secret = "5~mByJeQ8dDO2LZP_H_J2**********";
string[] scope = new string[] { "https://orgname.crm15.dynamics.com/.default" };
string webAPI = "https://[org].crm15.dynamics.com//api/data/v9.0/leads";
string authority = "https://login.microsoftonline.com/7bc93881-0733-48ab-baa1-ee3ed7717633";

var clientApp = ConfidentialClientApplicationBuilder.Create(clientId: clientId)
.WithClientSecret(clientSecret: secret)
.WithAuthority(new Uri(authority))
.Build();

try
{
AuthenticationResult authResult = await clientApp.AcquireTokenForClient(scope).ExecuteAsync();

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
httpClient.DefaultRequestHeaders.Add("OData-Version", "4.0");
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);

httpClient.BaseAddress = new Uri(webAPI);

var response = httpClient.GetAsync("WhoAmI").Result;

if (response.IsSuccessStatusCode)
{
var userDetails = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(userDetails);
Console.WriteLine(authResult.AccessToken);
Console.WriteLine(authResult.ExpiresOn);
Console.ReadLine();
}

}
catch (Exception ex)
{
string errorMessage = ex.Message;
}
}
}
}

Result –

Reference –

https://medium.com/capgemini-microsoft-team/access-tokens-for-dynamics-365-using-microsoft-authentication-library-2b16c9f794b

Sample Code – Dynamics 365 Web API / Organization Service

Hope it helps..

Advertisements