Monday, 14 August 2023

Transaction in Dataverse using console application

 public static void DataverseConnector()

        {

            try

            {

                string conn = @"AuthType=OAuth;Username=abcd@org.onmicrosoft.com;Password=password;Url=https://dorg.crm.dynamics.com;TokenCacheStorePath=c:\temp\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        // Create an ExecuteTransactionRequest object.

                        var requestToCreateRecords = new ExecuteTransactionRequest()

                        {

                            // Create an empty organization request collection.

                            Requests = new OrganizationRequestCollection(),

                            ReturnResponses = true

                        };


                        // Create several (local, in memory) entities in a collection. 

                        var listData = new List<string>();

                        listData.Add("Account 1");

                        listData.Add("Account 2");

                        listData.Add("Account 3");

                        listData.Add("Account 4");

                        listData.Add("43b1e6dc-8e3a-ee11-bdf4-000d3a0aab51");

                        // Add a CreateRequest for each entity to the request collection.

                        foreach (var list in listData)

                        {

                            OrganizationRequest organizationRequest = new OrganizationRequest();

                            Entity accEntity;

                            accEntity = new Entity("account");

                            accEntity["name"] = list;

                            if (list == "43b1e6dc-8e3a-ee11-bdf4-000d3a0aab51")

                            {

                                organizationRequest.RequestName = "Update";

                                accEntity["name"] = "Update record";

                                accEntity.Id = new Guid("43b1e6dc-8e3a-ee11-bdf4-000d3a0aab51");

                            }

                            else

                            {

                                organizationRequest.RequestName = "Create";

                            }

                            organizationRequest.Parameters.Add("Target", accEntity);

                            requestToCreateRecords.Requests.Add(organizationRequest);

                        }

                        // Execute all the requests in the request collection using a single web method call.

                        try

                        {

                            var responseForCreateRecords =(ExecuteTransactionResponse)serviceClient.Execute(requestToCreateRecords);

                            // Display the results returned in the responses.

                            foreach (var responseItem in responseForCreateRecords.Responses)

                            {

                                if (responseItem != null)

                                {

                                    if (responseItem.ResponseName == "Create")

                                    {

                                        Console.WriteLine(responseItem.ResponseName + " with account id as " + responseItem.Results["id"].ToString());

                                    }

                                    else if (responseItem.ResponseName == "Update")

                                    {

                                        Console.WriteLine(responseItem.ResponseName);

                                    }

                                }

                            }

                        }

                        catch (FaultException<OrganizationServiceFault> ex)

                        {

                            Console.WriteLine("Create request failed for the account{0} and the reason being: {1}",

                                ((ExecuteTransactionFault)(ex.Detail)).FaultedRequestIndex + 1, ex.Detail.Message);

                            throw;

                        }

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }

                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

Friday, 11 August 2023

Disassociate a record in dataverse using console application

  public static void DataverseConnector()

        {

            try

            {

               string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        // Retrieve the accounts

                        var query = new QueryByAttribute("account")

                        {

                            ColumnSet = new ColumnSet("name")

                        };

                        query.AddAttributeValue("address1_city", "Redmond");

                        EntityCollection accounts = serviceClient.RetrieveMultiple(query);

                        //Convert the EntityCollection to a EntityReferenceCollection

                        var accountReferences = new EntityReferenceCollection();


                        accounts.Entities.ToList().ForEach(x => {

                            accountReferences.Add(x.ToEntityReference());

                        });


                        // The contact to associate to the accounts

                        var contacttoAssociateWithAccount = new EntityReference("contact",new Guid("edb87117-ce7e-ed11-81ab-000d3ac9cc70"));


                        // The relationship to use

                        var relationship = new Relationship("account_primary_contact");


                        // Use the Associate method

                        serviceClient.Disassociate(contacttoAssociateWithAccount.LogicalName, contacttoAssociateWithAccount.Id, relationship, accountReferences);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }

                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

Associate a record in dataverse using console application

  public static void DataverseConnector()

        {

            try

            {

                string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        // Retrieve the accounts

                        var query = new QueryByAttribute("account")

                        {

                            ColumnSet = new ColumnSet("name")

                        };

                        query.AddAttributeValue("address1_city", "Redmond");

                        EntityCollection accounts = serviceClient.RetrieveMultiple(query);

                        //Convert the EntityCollection to a EntityReferenceCollection

                        var accountReferences = new EntityReferenceCollection();


                        accounts.Entities.ToList().ForEach(x => {

                            accountReferences.Add(x.ToEntityReference());

                        });


                        // The contact to associate to the accounts

                        var contacttoAssociateWithAccount = new EntityReference("contact",new Guid("edb87117-ce7e-ed11-81ab-000d3ac9cc70"));


                        // The relationship to use

                        var relationship = new Relationship("account_primary_contact");


                        // Use the Associate method

                        serviceClient.Associate(contacttoAssociateWithAccount.LogicalName, contacttoAssociateWithAccount.Id, relationship, accountReferences);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }

                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

Retrieve data from dataverse in paging using console application

  public static void DataverseConnector()

        {

            try

            {

               string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        RetriveRecords(serviceClient);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }

                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

        private static void RetriveRecords(ServiceClient serviceClient)

        {

            int queryCount = 3;

            int pageNumber = 1;

            int recordCount = 0;

            QueryExpression pagequery = convertFecthXMLToQueryExpression(serviceClient);

            pagequery.PageInfo = new PagingInfo();

            pagequery.PageInfo.Count = queryCount;

            pagequery.PageInfo.PageNumber = pageNumber;

            // The current paging cookie. When retrieving the first page, 

            // pagingCookie should be null.

             pagequery.PageInfo.PagingCookie = null;

            Console.WriteLine("Retrieving account records in pages...\n");

            while (true)

            {

                // Retrieve the page.

                EntityCollection results = serviceClient.RetrieveMultiple(pagequery);

                if (results.Entities != null)

                {

                    // Retrieve all records from the result set.

                    foreach (var acct in results.Entities)

                    {

                        Console.WriteLine("{0}.\t{1}", ++recordCount, acct["name"]);

                    }

                }

                // Check for more records, if it returns true.

                if (results.MoreRecords)

                {

                    Console.WriteLine("\n****************\nPage number {0}\n****************", pagequery.PageInfo.PageNumber);

                    // Increment the page number to retrieve the next page.

                    pagequery.PageInfo.PageNumber++;

                    // Set the paging cookie to the paging cookie returned from current results.

                    pagequery.PageInfo.PagingCookie = results.PagingCookie;

                }

                else

                {

                    // If no more records are in the result nodes, exit the loop.

                    break;

                }

            }

        }

        private static QueryExpression convertFecthXMLToQueryExpression(ServiceClient serviceClient)

        {

            var query = @"<fetch mapping='logical'><entity name='account'><attribute name='accountid'/><attribute name='name'/><attribute name='numberofemployees'/></entity></fetch>";

            FetchXmlToQueryExpressionRequest fetchToQueryExpRequest = new FetchXmlToQueryExpressionRequest();

            fetchToQueryExpRequest.FetchXml = query;

            FetchXmlToQueryExpressionResponse fetchXmlToQueryExpressionResponse = (FetchXmlToQueryExpressionResponse)serviceClient.Execute(fetchToQueryExpRequest);

            QueryExpression myquery = fetchXmlToQueryExpressionResponse.Query;

            return myquery;

        }


other way to fetch item using FetchXML in paging


https://learn.microsoft.com/en-us/power-apps/developer/data-platform/org-service/page-large-result-sets-with-fetchxml



Thursday, 10 August 2023

Delete a record from Dataverse table using console application

 public static void DataverseConnector()

        {

            try

            {

                string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                       serviceClient.Delete("account", new Guid("a17f700a-6d37-ee11-bdf4-000d3a0aab51"));                       

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }

                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

RetrieveMultiple records from dataverse using console application

 public static void DataverseConnector()

        {

            try

            {

               string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                      var  query = @"<fetch mapping='logical'><entity name='account'><attribute name='accountid'/><attribute name='name'/><attribute name='numberofemployees'/></entity></fetch>";

                       var recordColl= serviceClient.RetrieveMultiple(new FetchExpression(query));

                        foreach (var accountrecord in recordColl.Entities)

                        {

                              Console.WriteLine(accountrecord.Id);

                              Console.WriteLine(accountrecord["name"]);

                              Console.WriteLine(accountrecord["numberofemployees"]);

                        }

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }

                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

retrieve a record from dataverse table using console application

  public static void DataverseConnector()

        {

            try

            {

               string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                      var columnSet = new ColumnSet("name","numberofemployees");

                      var accountrecord= serviceClient.Retrieve("account", new Guid("a17f700a-6d37-ee11-bdf4-000d3a0aab51"),columnSet);

                        Console.WriteLine(accountrecord.Id);

                        Console.WriteLine(accountrecord["name"]);

                        Console.WriteLine(accountrecord["numberofemployees"]);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }


                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

update a record in dataverse using console application

  public static void DataverseConnector()

        {

            try

            {

                string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        //Use Entity class with entity logical name

                        var account = new Entity("account");

                        account.Id = new Guid("a17f700a-6d37-ee11-bdf4-000d3a0aab51");

                        // set attribute values

                        // string primary name

                        account["name"] = "Contoso2";

                        // Boolean (Two option)

                        account["creditonhold"] = false;

                        // DateTime

                        account["lastonholdtime"] = new DateTime(2017, 1, 1);

                        // Double

                        account["address1_latitude"] = 47.642311;

                        account["address1_longitude"] = -122.136841;

                        // Int

                        account["numberofemployees"] = 500;

                        // Money

                        account["revenue"] = new Money(new decimal(5000000.00));

                        // Picklist (Option set)

                        account["accountcategorycode"] = new OptionSetValue(1); //Preferred customer

                        //Create the account

                       serviceClient.Update(account);

                      //  Console.WriteLine("Record ID is {0}.", accountid);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }


                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            

        }

Create a record in Dataverse in Console Apllication c#

  public static void DataverseConnector()

        {

            try

            {

               string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";

                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        //Use Entity class with entity logical name

                        var account = new Entity("account");

                        // set attribute values

                        // string primary name

                        account["name"] = "Contoso";

                        // Boolean (Two option)

                        account["creditonhold"] = false;

                        // DateTime

                        account["lastonholdtime"] = new DateTime(2017, 1, 1);

                        // Double

                        account["address1_latitude"] = 47.642311;

                        account["address1_longitude"] = -122.136841;

                        // Int

                        account["numberofemployees"] = 500;

                        // Money

                        account["revenue"] = new Money(new decimal(5000000.00));

                        // Picklist (Option set)

                        account["accountcategorycode"] = new OptionSetValue(1); //Preferred customer

                        //Create the account

                        Guid accountid= serviceClient.Create(account);

                        Console.WriteLine("Record ID is {0}.", accountid);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }


                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            finally

            {

                Console.Write("test");

            }

        }

Connect dataverse in Console Application c#

  Install "Microsoft.PowerPlatform.Dataverse.Client"


Using Microsoft.PowerPlatform.Dataverse.Client;

 public static void DataverseConnector()

        {

            try

            {

               string conn = @"AuthType=OAuth;Username=user@org.onmicrosoft.com;Password=password;Url=https://orgapp.crm.dynamics.com;TokenCacheStorePath=c:\MyTokenCache2;LoginPrompt=Auto";


                using (ServiceClient serviceClient = new ServiceClient(conn))

                {

                    if (serviceClient.IsReady)

                    {

                        WhoAmIResponse response =(WhoAmIResponse)serviceClient.Execute(new WhoAmIRequest());

                        Console.WriteLine("User ID is {0}.", response.UserId);

                    }

                    else

                    {

                        Console.WriteLine("A web service connection was not established.");

                    }

                }


                // Pause the console so it does not close.

                Console.WriteLine("Press any key to exit.");

                Console.ReadLine();

            }

            catch (Exception ex)

            {

                Console.Write(ex.Message);

            }

            finally

            {

                Console.Write("test");

            }

        }


Tuesday, 1 August 2023

Steps to create Patch and deployment on Higher environment

 Dev- Original Solution-Create Clone Patch.

-Include Component in Patch and update the solution.

-Export patch Solution.

QA-Import in QA.

DEV-Select Origional Solution.

-Click on Clone Solution it will merge the patch in original solution.

-Export the original Solution.

QA-Import the Solution in QA and it will merge the patch in Original solution.