Quantcast
Channel: CRM Development forum
Viewing all articles
Browse latest Browse all 9244

crm2013 entityimage issue

$
0
0

 Hi,

I found an error when i change entity image on status change event I got this.status ==400 or this.statustext=="bad request" How can i resolve this error. Here is my script

//Hook this method to the "OnChange" event of "new_status" field
function OnAttributeChange_Status() {
 
    var dealerId = Xrm.Page.data.entity.getId();
    var statusValue = Xrm.Page.getAttribute("new_propertystatusdetail").getValue();
 alert(statusValue);
    if (statusValue == 1)
    {
         //retrieve image new_image1.jpg and update dealer record "EntityImage" attribute
        this.UpdateDealerRecordWithNewImage(dealerId, "new_image1.jpg");
 
    }
    else if (statusValue == 2)
    {
         //retrieve image new_image2.jpg and update dealer record "EntityImage" attribute
        this.UpdateDealerRecordWithNewImage(dealerId, "new_image2.jpg");
 
    }
}

function UpdateDealerRecordWithNewImage(dealerId, webResourceName){
 
    this.GetImageWebResource(
        dealerId,
        webResourceName,
        this.UpdateDealerRecord
    );
 
}

function GetImageWebResource(dealerId, imageName, successCallback) {
 
    //OData URI to get address information from parent account record
    var oDataURI = Xrm.Page.context.getClientUrl()
        + "/XRMServices/2011/OrganizationData.svc/"
        + "WebResourceSet"
        + "?$filter="
        + "Name eq '" + imageName + "'"
        + "&$select=Name,Content";
 
    //Synchronous XMLHttpRequest to retrieve account record
    var req = new XMLHttpRequest();
    req.open("GET", encodeURI(oDataURI), false);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
        //debugger;
        if (this.readyState == 4 /* complete */) {
            req.onreadystatechange = null; //avoids memory leaks
            if (this.status == 200) {
                //parse the response string as a JSON object into the successCallback method.
                successCallback(dealerId, JSON.parse(this.responseText).d);
            }
            else {
                var errorMsg1 = "GetImageWebResource Error: cannot retrieve image with name = " + imageName + ".";
                //display a non-blocking alert dialog
                Xrm.Utility.alertDialog(errorMsg1, function () { });
            }
        }
    };
    req.send();
}

function UpdateDealerRecord(recordId, webResource) {
 
    var new_dealer = {};
    new_dealer.EntityImage = webResource.results[0].Content; //byte[] content of the web resource
 
    var jsonDealer = JSON.stringify(new_dealer);
 
    //OData URI
    var oDataURI = Xrm.Page.context.getClientUrl()
        + "/XRMServices/2011/OrganizationData.svc/"
        + "new_dealerSet(guid'" + recordId + "')";
 
    //Synchronous post
    var req = new XMLHttpRequest();
    req.open("POST", encodeURI(oDataURI), false);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("X-HTTP-Method", "MERGE");
    req.onreadystatechange = function () {
        //debugger;
        if (this.readyState == 4 /* complete */) {
            req.onreadystatechange = null;
            if (this.status == 204 || this.status == 1223) {
                //reloads the dealer record
                window.location.reload(false);
            }
            else {
                var errorMsg2 = "UpdateDealerRecord Error: Cannot update dealer record with dealerId = " + recordId + ".";
                //display a non-blocking alert dialog
                Xrm.Utility.alertDialog(errorMsg2, function () { });
            }
        }
    };
    req.send(jsonDealer);
}


Viewing all articles
Browse latest Browse all 9244

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>