
Hello everyone,
I am attempting to create a filtered N:N subgrid with the code from here: paulnieuwelaar.wordpress.com/.../filter-nn-add-existing-lookup-dynamics-crm-2016-turbo-forms
This is a Dynamics 365 Online instance if that helps. The problem I am facing though is strange in that the lookup window comes up, filters perfectly, and allows me to choose items. But when I click "add" I get a general error message. As far as I can tell everything in the code is fine but I am unclear as to how I should proceed to debug this. My initial thought is that I could start debugging in the "crmWindow.Mscrm.Utilities.createCallbackFunctionObject" function but I am unclear as to where that even is.
Any idea?
//filters an add existing lookup view (N:N)
function addExistingFromSubGridCustom(gridTypeCode, gridControl, crmWindow, fetch, layout, viewName) {
var viewId = "{DB2C6D94-48F2-E711-A2B6-00155D045E00}"; // a dummy view ID
var relName = gridControl.GetParameter("relName");
var roleOrd = gridControl.GetParameter("roleOrd");
//creates the custom view object
var customView = {
fetchXml: fetch,
id: viewId,
layoutXml: layout,
name: viewName,
recordType: gridTypeCode,
Type: 0
};
var parentObj = crmWindow.GetParentObject(null, 0);
var parameters = [gridTypeCode, "", relName, roleOrd, parentObj];
var callbackRef = crmWindow.Mscrm.Utilities.createCallbackFunctionObject("locAssocObjAction", crmWindow, parameters, false);
crmWindow.LookupObjectsWithCallback(callbackRef, null, "multi", gridTypeCode, 0, null, "", null, null, null, null, null, null, viewId, [customView]);
}
function filterAddExistingContact(gridTypeCode, gridControl, primaryEntity) {
debugger;
var crmWindow = Xrm.Internal.isTurboForm() ? parent.window : window;
var lookup = new Array();
lookup = Xrm.Page.getAttribute("new_channel").getValue();
if (lookup != null) {
var name = lookup[0].name;
var id = lookup[0].id;
var entityType = lookup[0].entityType;
}
else
{
crmWindow.Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode, gridControl); //default button click function
return;
}
if (primaryEntity != "nxt_callreport") {
crmWindow.Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode, gridControl); //default button click function
return;
//Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode, gridControl); //default button click function
//return;
}
//fetch to retrieve filtered data
var fetch = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
" <entity name='new_market'>" +
" <attribute name='new_marketid' />" +
" <attribute name='new_name' />" +
" <attribute name='createdon' />" +
" <order attribute='new_name' descending='false' />" +
" <filter type='and'>" +
" <condition attribute='new_channel' operator='eq' uiname='" + name + "' uitype='" + entityType + "' value='" + id + "' />" +
" </filter>" +
" </entity>" +
"</fetch>";
//columns to display in the custom view (make sure to include these in the fetch query)
var layout = "<grid name='resultset' object='1' jump='new_name' select='1' icon='1' preview='1'>" +
" <row name='result' id='new_name'>" +
" <cell name='new_name' width='300' />" +
" </row>" +
"</grid>";
addExistingFromSubGridCustom(gridTypeCode, gridControl, crmWindow, fetch, layout, "Filtered Markets");
}
*This post is locked for comments
I have the same question (0)Were you able to get any resolution for this? It doesnt throw any error for me but navigates to somewhere else?