Tuesday, 25 December 2018

Single Record Retrieving Using WebAPI in MSCRM

Single Record Retrieving Using WebAPI in MSCRM
==============================================================
function RetrievingRecords() {

    var lookup = Xrm.Page.data.entity.getId();
    var lookupID = lookup.replace('{', '').replace('}', '');
    var req = new XMLHttpRequest();
    req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_testcrms(" + lookupID + ")?$select=_new_accounts_value,new_countries,new_dob,new_gender,new_moneytype,new_moneytype_base,new_name,new_numbers,new_rates", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 200) {
           
                var result = JSON.parse(this.response);
                // Lookup field guid value
                var _new_accounts_value = result["_new_accounts_value"];
                //Lookupfield text value
                var _new_accounts_value_formatted = result["_new_accounts_value@OData.Community.Display.V1.FormattedValue"];
                //  lookup field  entityname
                var _new_accounts_value_lookuplogicalname = result["_new_accounts_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
                // optionset value
                var new_countries = result["new_countries"];

                // optionset field text value
                var new_countries_formatted = result["new_countries@OData.Community.Display.V1.FormattedValue"];
                var new_dob = result["new_dob"];
                // two optionset true
                var new_gender = result["new_gender"];
                // two optionset text value  Yes
                var new_gender_formatted = result["new_gender@OData.Community.Display.V1.FormattedValue"];
                // money field values
                var new_moneytype = result["new_moneytype"];
                // money field values with symbols
                var new_moneytype_formatted = result["new_moneytype@OData.Community.Display.V1.FormattedValue"];
                var new_moneytype_base = result["new_moneytype_base"];
                var new_moneytype_base_formatted = result["new_moneytype_base@OData.Community.Display.V1.FormattedValue"];
                var new_name = result["new_name"];
                var new_numbers = result["new_numbers"];
                var new_numbers_formatted = result["new_numbers@OData.Community.Display.V1.FormattedValue"];
                var new_rates = result["new_rates"];
                var new_rates_formatted = result["new_rates@OData.Community.Display.V1.FormattedValue"];
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send();

}

Detele Records Using WEBAPI


Detele Records Using WEBAPI
=================================================================

function DeteleRecord() {

    var lookup = Xrm.Page.data.entity.getId();
    var lookupID = lookup.replace('{', '').replace('}', '');
    var req = new XMLHttpRequest();
    req.open("DELETE", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_testcrms(" + lookupID + ")", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 204 || this.status === 1223) {
                alert("deleted record successfully..");

            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send();

}

Update Records in CRM Using WEBAPI


/// Update Records in CRM Using WEBAPI
=====================================================================

function CreateRecords() {

    var entity = {};

    entity["new_Accounts@odata.bind"] = "/accounts(9083FB80-8844-E211-979C-00155D2EE30B)";
    entity.new_dob = new Date("12/20/2018").toISOString();
  //Whole number fields
    entity.new_numbers = 3333;
   //optionset field
    entity.new_countries = 3;
    //Currency field
    entity.new_moneytype = Number(parseFloat(444).toFixed(4));
    //two optionset field
    entity.new_gender = true
    //string field
    entity.new_name = "Test";
    //floating point numbers
    entity.new_rates = 44.55;
    var req = new XMLHttpRequest();
    req.open("POST", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_testcrms", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 204) {
                var uri = this.getResponseHeader("OData-EntityId");
                var regExp = /\(([^)]+)\)/;
                var matches = regExp.exec(uri);
                var newEntityId = matches[1];
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send(JSON.stringify(entity));

}

Sunday, 23 December 2018

Create A records in MSCRM Using WebAPI

Create A records in MSCRM Using WebAPI

var entity = {};
    entity["new_Accounts@odata.bind"] = "/accounts(A6B6F731-8244-E211-979C-00155D2EE30B)"; // Look Up field
    entity.new_dob = new Date("12/20/2018").toISOString();
    entity.new_numbers = 3333;
    entity.new_countries = 3; // OptionSet field
    entity.new_moneytype = Number(parseFloat(444).toFixed(4));// Money field
    entity.new_gender = true;
    entity.new_name = "Test";
    entity.new_rates = 44.55;
    var req = new XMLHttpRequest();
    req.open("POST", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_testcrms", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 204) {

                debugger;
                var uri = this.getResponseHeader("OData-EntityId");
                var regExp = /\(([^)]+)\)/;
                var matches = regExp.exec(uri);
                var newEntityId = matches[1];
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send(JSON.stringify(entity));

}

Saturday, 22 December 2018

Retrieving Many to Many records in CRM Using WebApi

function ManytomanyRecords() {
            debugger;
            var UserID = Xrm.Page.context.getUserId();
            var req = new XMLHttpRequest();
            req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/systemusers?$select=firstname,fullname&$expand=systemuserroles_association($select=name)&$filter=systemuserid eq " + UserID + "", true);
            req.setRequestHeader("OData-MaxVersion", "4.0");
            req.setRequestHeader("OData-Version", "4.0");
            req.setRequestHeader("Accept", "application/json");
            req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
            req.onreadystatechange = function () {
                if (this.readyState === 4) {
                    req.onreadystatechange = null;
                    if (this.status === 200) {
                        debugger;
                        var results = JSON.parse(this.response);
                        for (var i = 0; i < results.value.length; i++) {
                            var firstname = results.value[i]["firstname"];
                            var fullname = results.value[i]["fullname"];
                            //Use @odata.nextLink to query resulting related records
                            for (var j = 0; j<results.value[i]["systemuserroles_association"].length; j++);
                            {

                                var names = results.value[i]["systemuserroles_association"][j].name;
                            }
                        }
                    } else {
                        Xrm.Utility.alertDialog(this.statusText);
                    }
                }
            };
            req.send();
        }

Retrieving multiple records UsingWebAPI using fetchxml




function GetAccountdetails() {

        var lookup = Xrm.Page.getAttribute("new_accounts").getValue();
        var id = lookup[0].id;
        var Fetch = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>"+
                      "<entity name='new_testcrm'>"+
                        "<attribute name='new_testcrmid' />"+
                        "<attribute name='new_name' />"+
                        "<attribute name='createdon' />"+
                        "<order attribute='new_name' descending='false' />"+
                        "<link-entity name='account' from='accountid' to='new_accounts' link-type='inner' alias='ab'>"+
                          "<filter type='and'>"+
                            "<condition attribute='accountid' operator='eq' uitype='account' value='" + id + "' />" +
                          "</filter>"+
                        "</link-entity>"+
                      "</entity>"+
                    "</fetch>";
        var req = new XMLHttpRequest();
        req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_testcrms?fetchXml=" + encodeURI(Fetch), true);
        req.setRequestHeader("OData-MaxVersion", "4.0");
        req.setRequestHeader("OData-Version", "4.0");
        req.setRequestHeader("Accept", "application/json");
        req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
        req.onreadystatechange = function () {
            if (this.readyState === 4) {
                req.onreadystatechange = null;
                if (this.status === 200) {
                    debugger;
                    var results = JSON.parse(this.response);
                    var new_dob1 = results.value[0]["new_name"];
                    var new_dob2 = results.value[0]["createdon"];
                 
                    alert(new_dob)
                } else {
                    Xrm.Utility.alertDialog(this.statusText);
                }
            }
        };
        req.send();

    }

GetLinkentitiesdetails Using WEBAPI

function GetLinkentitiesdetails() {

    var lookup = Xrm.Page.getAttribute("new_accounts").getValue();
    var id = lookup[0].id;
    id = id.replace('{', '').replace('}', '');
    var req = new XMLHttpRequest();
    req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_testcrms?$select=_new_accounts_value,new_countries,new_dob&$expand=new_Accounts($select=createdon,name)&$filter=_new_accounts_value eq " + id + "", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 200) {
                var results = JSON.parse(this.response);
                for (var i = 0; i < results.value.length; i++) {
                    var _new_accounts_value = results.value[i]["_new_accounts_value"];
                    var _new_accounts_value_formatted = results.value[i]["_new_accounts_value@OData.Community.Display.V1.FormattedValue"];
                    var _new_accounts_value_lookuplogicalname = results.value[i]["_new_accounts_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
                    var new_countries = results.value[i]["new_countries"];
                    var new_countries_formatted = results.value[i]["new_countries@OData.Community.Display.V1.FormattedValue"];
                    var new_dob = results.value[i]["new_dob"];
                    //Use @odata.nextLink to query resulting related records
                    var new_Accounts_NextLink = results.value[i]["new_Accounts@odata.nextLink"];
                    var name2 = results.value[0].new_Accounts.name;
                    var account1 = results.value[0].new_Accounts.createdon;
                }
            } else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send();


}