Posts

Showing posts from 2017

How to import CSV files into DataTable in C#

Below is code the which you can use for converting a csv file into Data Table in C#. This method also handles comma values inside a double quoted value.1. Provide the file path of your csv file:string sCsvFilePath = @"C:\Downloads\Sample.csv";2. Call Custom Method:DataTable dtTable = ConvertCSVtoDataTable(sFilePath); 3. Copy and Paste below:publicstaticDataTable ConvertCSVtoDataTable(string sCsvFilePath) {     DataTable dtTable = newDataTable();     Regex CSVParser = newRegex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");     using (StreamReader sr = newStreamReader(sCsvFilePath))     {         string[] headers = sr.ReadLine().Split(',');         foreach (string header in headers)         {             dtTable.Columns.Add(header);         }         while (!sr.EndOfStream)         {             string[] rows = CSVParser.Split(sr.ReadLine());             DataRow dr = dtTable.NewRow();             for (int i = 0; i < headers.Leng…

How to bind Dynamics CRM data to dropdown using JavaScript/ HTML?

Image
In this blog, I 'll show how we can create a dropdown and bind it with value from Entity record values e.g we need to show all On-Demand process inside an entity as a dropdown list. So for this I have used 2 methods: ODATA and WebAPI call.. For Users using older version of CRM can use ODATA method.

In this below example I am binding all system view in the dropdown inside an HTML web resource.

Copy and paste code as below:

1. ODATA Method:

<head>
    <script type="text/javascript" src="/_common/ClientGlobalContext.js.aspx"></script>
</head>
<body style="overflow-wrap: break-word; height: 24px; word-wrap: break-word;">
    <select id="viewdropdown" onchange="GetSelectedviewValue(this)" style="height:24px; width:495px; margin-left:16px">
        <option selected="" value="Loading...">Loading...</option>
    </select>
    <script>


        functio…

How to Write a Plugin when a Case is resolved with use Email Template in C#

In this blog, I am going to explain how we can fire a plugin on Resolved Case. Additionally I have added methods which shows how we can use Email Template too.

Follwing points is important when working on resolved case plugin:
1. To fire a plugin when an incident is resolved we need to register the plugin in "Close" message for the incident entity.

2. In Input parameters of the context we need to check for IncidentResolution (this entity holds information of case being closed).

Put below codes inside your Plugin, In my sample code I am creating an email activity after case gets resolved.


        public class IncidentPostCloseHandler : IPlugin
        {
            public void Execute(IServiceProvider serviceProvider)
            {
                try
                {
                    IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
                    IOrganizationServiceFactory serviceFactory = (IOr…

Validate Input Phone Number in Microsoft Dynamics CRM using JavaScript

Sometime we get requirement to validate a phone number like to check only numeric value allowed with all round bracket and '+' sign etc in the number. So below is a basic JavaScript fucntion which validates a phone number like: (022)6655-7878 or +91-7878787878 or +44-6756-6767-4234 and so on

function CheckPhoneNoFormat(context) {
    var oField = context.getEventSource().getValue();
    if (typeof (oField) != "undefined" && oField != null) {
        try {
            var telnum = oField;

            // Convert into a string and check that we were provided with something
            var telnum = telnum + " ";
            if (telnum.length == 1) {
                telNumberErrorNo = 1;
                return false
            }
            telnum.length = telnum.length - 1;

            // Remove spaces from the telephone number to help validation
            while (telnum.indexOf(" ") != -1) {
                telnum = telnum.slice(0, telnum.…

How to get the entity schema name list registered in your Dynamics CRM Organization using C#.

Use the following code for fetching entity list names in your console application:


  public static EntityMetadata[] GetEntities(IOrganizationService organizationService)
        {
            Dictionary attributesData = new Dictionary();
            RetrieveAllEntitiesRequest metaDataRequest = new RetrieveAllEntitiesRequest();
            RetrieveAllEntitiesResponse metaDataResponse = new RetrieveAllEntitiesResponse();
            metaDataRequest.EntityFilters = EntityFilters.Entity;

            // Execute the request.

            metaDataResponse = (RetrieveAllEntitiesResponse)organizationService.Execute(metaDataRequest);

            var entities = metaDataResponse.EntityMetadata;

            return entities;
        }

        public static void PrintEntitySchemaNames()
        {
            OrganizationServiceProxy _orgservice = CreateCrmServiceObjectOnline();
            Console.WriteLine("===================================");

            #region GivesTHeListOfAllEntiti…

How to update related entity records in Dynamics CRM using javascript

In this blog, I am going to show how we can update a related entity record through JScript in DYnamics CRM either REST or OData way.

First of all I'll show update data using REST Query in Method 1 and then using OData query in method 2.

function btnUpdateOnClick() {
    try {
        var selectedRows = Xrm.Page.getControl("SubGridName").getGrid().getSelectedRows();

        selectedRows.forEach(function (selectedRow, i) {
            var s = selectedRow.getData().getEntity().getEntityReference();
            var selectedRowGuid = s.id;
            var selectedRowName = s.name;
            var selectedRowEntityName = s.entityType;

            UpdateAccount(selectedRowGuid, selectedRowName, selectedRowEntityName);
        });


    }
    catch (e) {
        ShowCatchMessage("new_accountservice_ribbonscript.js", "btnUpdateInventoryOnClick", "A1", e.message);
    }
}

Method 1:

function UpdateAccount(selectedRowGuid, selectedRowName, selectedRowEnt…
go to top image