Microsoft added with Service Pack 1 a new function called “
I will show you here how you can use it in Javascript with a http request against the WebApi.
The CalculateRollupField function inside the webrequest needs a few parameter to know which rollup field you want to to calulate:
- The EntitySetName of the target record.
I wrote here how you can get the EntitySetName from the Metadata with an webrequest too. - The GUID of the target record.
- The schema name of the target field.
function calcRollupField(strTargetEntitySetName, strTargetRecordId, strTargetFieldName)
{
strTargetRecordId = strTargetRecordId.replace("{", "").replace("}", "");
var req = new XMLHttpRequest();
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/" +
"CalculateRollupField(Target=@p1,FieldName=@p2)?" +
"@p1={'@odata.id':'" + strTargetEntitySetName + "(" + strTargetRecordId + ")'}&" +
"@p2='" + strTargetFieldName + "'", true);
req.onreadystatechange = function ()
{
if (this.readyState === 4)
{
req.onreadystatechange = null;
if (this.status === 200)
{
var results = JSON.parse(this.response);
}
else
{
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send(JSON.stringify({}));
}The answer of the webservice for the CalculateRollupField function contains the value for the target field, the date of the last calculation and its state.

