Quantcast
Channel: CRM Development Forum
Viewing all articles
Browse latest Browse all 888

MSCRM 2011 SOAP update method for currency(Money) fields

$
0
0

I need to update currency field like amount using SOAP request. I am not able to find the right solution for mony(Currency) field.

Please help me .

I used the following code to update my entity.

UpdateBudgetforExpence1: function (BudgetId, Assignvalue) {

        var requestMain = ""
        requestMain += "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
        requestMain += "  <s:Body>";
        requestMain += "    <Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
        requestMain += "      <request i:type=\"a:UpdateRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\">";
        requestMain += "        <a:Parameters xmlns:b=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
        requestMain += "          <a:KeyValuePairOfstringanyType>";
        requestMain += "            <b:key>Target</b:key>";
        requestMain += "            <b:value i:type=\"a:Entity\">";
        requestMain += "              <a:Attributes>";


        requestMain += "                <a:KeyValuePairOfstringanyType>";
        requestMain += "                  <b:key>tec_actualexpenses</b:key>";
        requestMain += "                  <b:value i:type=\"c:money\" xmlns:c=\"http://www.w3.org/2001/XMLSchema\">"+ Assignvalue + "</b:value>";
        requestMain += "                </a:KeyValuePairOfstringanyType>";

        requestMain += "              </a:Attributes>";
        requestMain += "              <a:EntityState i:nil=\"true\" />";
        requestMain += "              <a:FormattedValues />";
        requestMain += "              <a:Id>" + BudgetId + "</a:Id>";
        requestMain += "              <a:LogicalName>tec_budget</a:LogicalName>";
        requestMain += "              <a:RelatedEntities />";
        requestMain += "            </b:value>";
        requestMain += "          </a:KeyValuePairOfstringanyType>";
        requestMain += "        </a:Parameters>";
        requestMain += "        <a:RequestId i:nil=\"true\" />";
        requestMain += "        <a:RequestName>Update</a:RequestName>";
        requestMain += "      </request>";
        requestMain += "    </Execute>";
        requestMain += "  </s:Body>";
        requestMain += "</s:Envelope>";
        var req = new XMLHttpRequest();
        url = TEC.ExpenseManagement._getServerUrl();
        req.open("POST", url, false)
        // Responses will return XML. It isn't possible to return JSON.
        req.setRequestHeader("Accept", "application/xml, text/xml, */*");
        req.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
        req.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
        var successCallback = null;
        var errorCallback = null;       
        req.send(requestMain);
        var resultXml = req.responseXML;
        var errorCount = resultXml.selectNodes('//error').length;
        if (errorCount != 0) {
            var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
            alert(msg);
        }
        else {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = "false";
            xmlDoc.loadXML(req.responseXML.xml);
            x = xmlDoc.getElementsByTagName("a:KeyValuePairOfstringanyType");
            for (i = 0; i < x.length; i++) {
                if (x[i].childNodes[0].text == "id") {
                    //we decode the base 64 contents and alert the HTML of the Iframe
                    var ID = x[i].childNodes[1].text;
                    return ID;
                }

            }          
          
        }

    },

I am geeting this error.

<s:Envelope xmlns:s="<faultcode">http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="a:DeserializationFailed</faultcode><faultstring">http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:DeserializationFailed</faultcode><faultstring xml:lang="en-US">The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameterhttp://schemas.microsoft.com/xrm/2011/Contracts/Services:request. The InnerException message was 'Error in line 1 position 728. Element 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:value' contains data from a type that maps to the name 'http://www.w3.org/2001/XMLSchema:money'. The deserializer has no knowledge of any type that maps to this name. Consider changing the implementation of the ResolveName method on your DataContractResolver to return a non-null value for name 'money' and namespace 'http://www.w3.org/2001/XMLSchema'.'.  Please see InnerException for more details.</faultstring></s:Fault></s:Body></s:Envelope>

Thanks.

Sunil Kumar

Delhi

 

Viewing all articles
Browse latest Browse all 888

Trending Articles



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