The implementation of applying custom FetchXML to a Subgrid appears to have changed from CRM 2011/13 to Dynamics 365. The change is with respect to GridControl.SetParameter()
.
I have followed many articles talking about this same issue but nothing is working at the moment on Dynamics 365 Online. Is there any alternative method to achieve the same functionality?
In my below code, I am trying to fetch all of the phone call and email activities related to the account and show them on the Subgrid which is on the account form.
//Shows only the PhoneCall activities related to Organisation
//var allPhoneCallsGrid = window.parent.document.getElementById("AllPhoneCalls"); //Not supported by Microsoft
//var allPhoneCallsGrid = document.getElementById("AllPhoneCalls"); //Not Supported by Microsoft
var allPhoneCallsGrid = Xrm.Page.getControl("AllPhoneCallactivities"); //Sub-grid is on the Account Form
if (allPhoneCallsGrid == null) {
setTimeout(function() {
AccountForm.AccountFormOnLoad();
}, 2000); //if the grid hasn’t loaded run this again when it has
return;
}
var accountId = Xrm.Page.data.entity.getId();
var allPhoneCallsfetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
" <entity name='activitypointer'>" +
" <attribute name='activitytypecode' />" +
" <attribute name='subject' />" +
" <attribute name='ownerid' />" +
" <attribute name='prioritycode' />" +
" <attribute name='regardingobjectid' />" +
" <attribute name='activityid' />" +
" <attribute name='scheduledstart' />" +
" <attribute name='scheduledend' />" +
" <attribute name='statecode' /> " +
" <attribute name='community' /> " +
" <order attribute='modifiedon' descending='false' />" +
" <filter type='and'>" +
" <condition attribute='activitytypecode' operator='ne' value='4206' />" +
" <condition attribute='activitytypecode' operator='eq' value='4210' />" +
" </filter>" +
" <link-entity name='incident' from='incidentid' to='regardingobjectid' alias='ad'>" +
" <filter type='and'>" +
" <condition attribute='account' operator='eq' uitype='account' value='" + accountId + "' />" +
" </filter>" +
" </link-entity>" +
" </entity>" +
"</fetch>";
allPhoneCallsGrid.control.SetParameter("fetchXml", allPhoneCallsfetchXml); //Unable to get property 'SetParameter' of undefined or null reference
//allPhoneCallsGrid.getGrid().setParameter("fetchXml", allPhoneCallsfetchXml);
allPhoneCallsGrid.control.Refresh(); //refresh the sub grid using the new fetch xml