Javascript 将自定义视图添加到子网格时出错;添加现有按钮";

Javascript 将自定义视图添加到子网格时出错;添加现有按钮";,javascript,dynamics-crm-2011,Javascript,Dynamics Crm 2011,当用户在多对多关系的子网格中添加现有记录时,我想在弹出窗口中添加一个自定义视图 我按照下面的说明做了 但是,当我添加现有记录时,它会抛出一个一般性错误,不允许我下载日志文件。有人能给我指出正确的方向来找出为什么这不起作用吗 我将在下面发布代码 函数过滤器SubGridLookup(gridTypeCode、gridControl、primaryEntity){ if(主要实体!=“项目管理办公室活动请求”){ Mscrm.GridRibbonActions.addExistingFromSubG

当用户在多对多关系的子网格中添加现有记录时,我想在弹出窗口中添加一个自定义视图

我按照下面的说明做了

但是,当我添加现有记录时,它会抛出一个一般性错误,不允许我下载日志文件。有人能给我指出正确的方向来找出为什么这不起作用吗

我将在下面发布代码

函数过滤器SubGridLookup(gridTypeCode、gridControl、primaryEntity){
if(主要实体!=“项目管理办公室活动请求”){
Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode,gridControl);
}
否则{
var fetchXml='-';
var layoutXml=“”;
addExistingFromSubGridCustom(gridTypeCode、gridControl、fetchXml、layoutXml、“筛选的限定区域”);
}    
}
函数addExistingFromSubGridCustom(gridTypeCode、gridControl、fetch、layout、viewName){
var viewId=“{1DFB2B35-B07C-44D1-868D-258DEEAB88E2}”//虚拟视图ID
变量relName,roleOrd;
if(typeof(gridControl.GetParameter)==“函数”){//post rollup 12
relName=gridControl.GetParameter(“relName”);
roleOrd=gridControl.GetParameter(“roleOrd”);
}
else{//预汇总12
relName=gridControl.getParameter(“relName”);
roleOrd=gridControl.getParameter(“roleOrd”);
}
//创建自定义视图对象
var customView={
fetchXml:fetch,
id:viewId,
layoutXml:layout,
名称:viewName,
recordType:gridTypeCode,
类型:0
};
//弹出带有视图的查找窗口
var lookupItems=LookupObjects(null,“multi”,gridTypeCode,0,null,“,null,null,null,null,null,null,null,viewId,[customView]);
//关闭查找窗口后,我们需要在关联所选记录之前提供父记录ID等
if(lookupItems&&lookupItems.items.length>0){
var-parentId;
var-parentTypeCode;
如果(typeof(GetParentObject)=“function”){//post rollup 12有自己的函数来获取此
var parent=GetParentObject();
parentId=parent.id;
parentTypeCode=parent.objectTypeCode;
}
否则{//预汇总12仍需要使用旧方法
var parent=typeof(crmFormSubmit)==“undefined”?$get(“crmFormSubmit”):crmFormSubmit;//根据daniels博客,crmFormSubmit应该已经定义了,但它不是。。。
如果(家长){
parentId=parent.crmFormSubmitId.value;
parentTypeCode=parent.crmFormSubmitObject.value;
}
否则{
parentId=window.parent.crmFormSubmit.crmFormSubmitId.value;
parentTypeCode=window.parent.crmFormSubmit.CrmFormSubmitObject.value;
}
}
//关联所选记录
关联对象(parentTypeCode、parentId、gridTypeCode、lookupItems、IsNull(roleOrd)| | roleOrd==2,“,relName);
}   
}

在获取xml中,您有破折号。查看删除它们是否可以解决您的问题:

之前:

<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0"> 
-<entity name="ts_qualification_area">
    <attribute name="ts_qualification_areaid"/>
    <attribute name="ts_descriptor"/>
    <attribute name="createdon"/>
    <order descending="false" attribute="ts_descriptor"/> 
    -<filter type="and">
        <condition attribute="ts_solution_qualification_id" value="' + solutionQualificationId + '" uitype="ts_solution_qualification" operator="eq"/>
    </filter>
</entity>

-
-

之后:

<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0"> 
    <entity name="ts_qualification_area">
        <attribute name="ts_qualification_areaid"/>
        <attribute name="ts_descriptor"/>
        <attribute name="createdon"/>
        <order descending="false" attribute="ts_descriptor"/> 
        <filter type="and">
            <condition attribute="ts_solution_qualification_id" value="' + solutionQualificationId + '" uitype="ts_solution_qualification" operator="eq"/>
        </filter>
    </entity>
</fetch>


已进行更改,但仍会引发错误。它加载窗口来选择项目,看起来好像可以工作,但随后会弹出错误。如果我关闭错误窗口,虽然它已更改为我的自定义视图,但记录将在哪里,它只显示加载消息。在try-catch块中封装失败的位(设置查找项的位置)不会拾取错误either@jimminybob您可以尝试打开跟踪日志记录。使用CRM诊断工具打开跟踪日志记录:(这仅适用于内部部署)。我发现错误,结果是我传递给fetchXml的值无效,因此它找不到我试图匹配的记录。谢谢你的帮助