Dynamics crm 过滤子网格-createCallbackFunctionObject引发indescript错误

Dynamics crm 过滤子网格-createCallbackFunctionObject引发indescript错误,dynamics-crm,filtering,subgrid,dynamics-crm-365,Dynamics Crm,Filtering,Subgrid,Dynamics Crm 365,我正在尝试使用以下代码创建已过滤的N:N子网格: 这是一个Dynamics 365联机实例,如果有帮助的话。不过,我面临的问题很奇怪,因为会出现查找窗口,进行完美过滤,并允许我选择项目。但当我单击“添加”时,我会收到一条一般性错误消息 据我所知,代码中的一切都很好,但我不清楚应该如何继续调试。我最初的想法是可以在crmWindow.Mscrm.Utilities.createCallbackFunctionObject函数中开始调试,但我不清楚如何在联机环境中调试global.ashx文件中的该

我正在尝试使用以下代码创建已过滤的N:N子网格:

这是一个Dynamics 365联机实例,如果有帮助的话。不过,我面临的问题很奇怪,因为会出现查找窗口,进行完美过滤,并允许我选择项目。但当我单击“添加”时,我会收到一条一般性错误消息

据我所知,代码中的一切都很好,但我不清楚应该如何继续调试。我最初的想法是可以在
crmWindow.Mscrm.Utilities.createCallbackFunctionObject
函数中开始调试,但我不清楚如何在联机环境中调试
global.ashx
文件中的该函数。我的想法是,在那里,我可能会得到一个错误,我可以使用

有什么想法吗

//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);
}
//筛选添加现有查找视图(N:N)
函数addExistingFromSubGridCustom(gridTypeCode、gridControl、crmWindow、fetch、layout、viewName){
var viewId={DB2C6D94-48F2-E711-A2B6-00155d04e00};//虚拟视图ID
var relName=gridControl.GetParameter(relName);
var roleOrd=gridControl.GetParameter(roleOrd);
//创建自定义视图对象
var customView={
fetchXml:fetch,
id:viewId,
layoutXml:layout,
名称:viewName,
recordType:gridTypeCode,
类型:0
};
var parentObj=crmWindow.GetParentObject(null,0);
变量参数=[gridTypeCode,relName,roleOrd,parentObj];
var callbackRef=crmWindow.Mscrm.Utilities.createCallbackFunctionObject(locassocObjection,crmWindow,parameters,false);
crmWindow.LookupObjectsWithCallback(callbackRef,null,multi,gridTypeCode,0,null,null,null,null,null,viewId,[customView]);
}
函数过滤器AddExistingContact(gridTypeCode、gridControl、primaryEntity){
调试器;
var crmWindow=Xrm.Internal.isTurboForm()?parent.window:window;
var lookup=新数组();
lookup=Xrm.Page.getAttribute(新的_通道).getValue();
if(查找!=null){
var name=查找[0]。名称;
var id=lookup[0].id;
var entityType=lookup[0]。entityType;
}
其他的
{
crmWindow.Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode,gridControl);//默认按钮单击函数
返回;
}
if(primaryEntity!=nxt_callreport){
crmWindow.Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode,gridControl);//默认按钮单击函数
返回;
//Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode,gridControl);//默认按钮单击函数
//返回;
}
//获取以检索筛选的数据
var fetch=+
+
+
+
+
+
+
+
+
+
;
//要在自定义视图中显示的列(请确保在获取查询中包含这些列)
变量布局=+
+
+
+
;
addExistingFromSubGridCustom(gridTypeCode、gridControl、crmWindow、fetch、layout、Filtered Markets);
}
更新此行:

var crmWindow = Xrm.Internal.isTurboForm() ? parent.window : window;

和更新:

crmWindow.Mscrm.Utilities.createCallbackFunctionObject(
crmWindow.Mscrm.Utilities.createCallbackFunctionObject(