Skip to main content

CRUD operations in D365 CRM using C# Plugin

 Introduction:

CRUD- Create, Reterive, Update, Delete are the operations we mainly perform and in this blog we will limit ourselves to just simple C# code to perform these actions.

The highlighted part of code is where you need to enter your data/ field/ table name.

CREATE:

Entity Recordtobecreated= new Entity("schema_name_of_entity");

Recordtobecreated["schema_name_of_field"] = "field_ value";

service.Create(Recordtobecreated);


RETRIEVE SINGLE RECORD

var cols = new ColumnSet(new String[] { "Lookup_field","Status_optionset_field" });

Entity Ouput= service.Retrieve("Target_entity_schema_name", Target_entity.Id, cols);

Once retrieved, you can get the attributes values- for lookup and option set example refer below code.

Guid LookupValue= ((EntityReference)Ouput.Attributes["Lookup_field"]).Id;

string StatusData= Ouput.FormattedValues["Status_optionset_field"];

 int Optionsetvalue= ((OptionSetValue)Ouput["Status_optionset_field"]).Value;


RETRIEVE MULTIPLE RECORD

Download fetchxml using advance find, replace double quotes with single quotes.

string fetchXML = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>

<entity name='ENTITY NAME'>

 <attribute name='id' />

 <attribute name='name' />

  <attribute name='createdon' />

   <order attribute='name' descending='false' />

<filter type='and'>

 <condition attribute='lookup' operator='eq'  uitype='lookup_type' value='"+ id + @"' />

<condition attribute='statecode' operator='eq' value='0' />

</filter>

 </entity>

</fetch>";

 EntityCollection returnedResult = service.RetrieveMultiple(new FetchExpression(fetchXML));

Once retrieved, you can get the attributes values and count details from the returned result entity collection.


UPDATE

Entity Recordtoupdate = new Entity("schema_name_of_entity");

Recordtoupdate .Id = ID of record to be updated;

Recordtoupdate [schema_name_of_field] = field_ value";

service.Update(Recordtoupdate );


DELETE

service.Delete(schema_name_of_entity,ID of record to be deleted);


Note: Always, check for the schema name and ID provided, Use tracing service to check outputs.

Hope this helps!

Comments

Popular posts from this blog

Get Business Process Flow Stage Id using API Query

Developers may need to get the stage ids of BPF stages in order to use in power automate or JS. Here is a blog that will help. API Query-   https:// CRMURL.dynamics.com/ api/data/v9.0/processstages?$select=stagename&$filter=processid/workflowid eq BPFGuid   Eg: 1) Get the GUID of  Business Process Flow whose stage details you need. Replace below Query with Your CRM URL and BPF GUID. https://Test130.crm.dynamics.com/ api/data/v9.0/processstages?$select=stagename&$filter=processid/workflowid eq 9128E4D1-1234-4852-ABD0-A63A6ECA5C5D   Output:    The output will provide the stage name and ID.

Power Automate to Access SharePoint Recycle Bin

Introduction : A ccess Recycle Bin of SharePoint using Power Automate. Steps: Actions: select "Send an HTTP request to SharePoint" Enter the below details: Site Address: Select your site address from the list. Method: GET Uri, Headers: Refer the screenshot below. Pls. Note: Trigger used was When a File is Deleted- SharePoint Connector. Select Action "Parse JSON" In parse JSON, the content is the body of HTTP Response Enter the below Schema: { "type" : "object" , "properties" : { "odata.metadata" : { "type" : "string" }, "value" : { "type" : "array" , "items" : { "type" : "object" , "properties" : { "odata.type" : { "type" : "string" }, "odata.id" : { "type" : "string" }, "odata.editLink" : { "t

Dynamic, Multiple Recipients of D365 Email in Power Automate

When t he activity parties (TO, From, CC) ae static, we can easily send emails. However here is how we can set the activity party dynamically on the Email.    In above screenshot we can see the Activity party attribute is populated for single value and is static to only a single entity record GUID.   Solution: The create a record of Email message is as below, here we are entering the attributes of activity party, by clicking on "Switch to Input entire array" You will get the Array format, the participationtypemask is TO, FROM,CC while the partyid@data.bind is the email address. Now all you need to do is create a dynamic array, You can use append to array variable action to create an array with participationtypemask as per your requirement. Example: get all users whom you need to send email, append the user id to array. pass this array as input to the Activity Parties field in create an email record.