javascript - 将自定义 View 添加到子网格时出错 "Add existing button"

标签 javascript dynamics-crm-2011

当用户在子网格中添加现有记录以实现多对多关系时,我想向弹出窗口添加自定义 View 。

我按照以下 link 上的说明进行操作

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

我将发布下面的代码。

function FilterSubGridLookup(gridTypeCode, gridControl, primaryEntity) {

if (primaryEntity != "ts_pmo_activity_request") {

    Mscrm.GridRibbonActions.addExistingFromSubGridAssociated(gridTypeCode, gridControl);
}
else {

    var fetchXml = '<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>';
    var layoutXml = "<grid name='resultset' object='1' jump='ts_qualification_areaid' select='1' icon='1' preview='1'><row name='result' id='ts_qualification_areaid'><cell name='ts_descriptor' width='150' /></row></grid>";

    addExistingFromSubGridCustom(gridTypeCode, gridControl, fetchXml, layoutXml, "Filtered Qualification Areas");
}    
}
function addExistingFromSubGridCustom(gridTypeCode, gridControl, fetch, layout, viewName) {

var viewId = "{1DFB2B35-B07C-44D1-868D-258DEEAB88E2}"; // a dummy view ID 

var relName, roleOrd;

if (typeof (gridControl.GetParameter) === "function") { //post rollup 12 
    relName = gridControl.GetParameter("relName");
    roleOrd = gridControl.GetParameter("roleOrd");
}
else { //pre rollup 12 
    relName = gridControl.getParameter("relName");
    roleOrd = gridControl.getParameter("roleOrd");
}

//creates the custom view object 
var customView = {
    fetchXml: fetch,
    id: viewId,
    layoutXml: layout,
    name: viewName,
    recordType: gridTypeCode,
    Type: 0
};

//pops the lookup window with our view injected 
var lookupItems = LookupObjects(null, "multi", gridTypeCode, 0, null, "", null, null, null, null, null, null, viewId, [customView]);

//once the lookup window is closed, we need the parent record ID and ETC before associating selected records 
if (lookupItems && lookupItems.items.length > 0) {
    var parentId;
    var parentTypeCode;
    if (typeof (GetParentObject) == "function") { //post rollup 12 has its own function to get this 
        var parent = GetParentObject();
        parentId = parent.id;
        parentTypeCode = parent.objectTypeCode;
    }
    else { //pre rollup 12 still needs to use the old way 
        var parent = typeof (crmFormSubmit) == "undefined" ? $get("crmFormSubmit") : crmFormSubmit; //according to daniels blog crmFormSubmit should already be defined, but it's not... 
        if (parent) {
            parentId = parent.crmFormSubmitId.value;
            parentTypeCode = parent.crmFormSubmitObjectType.value;
        }
        else {
            parentId = window.parent.crmFormSubmit.crmFormSubmitId.value;
            parentTypeCode = window.parent.crmFormSubmit.crmFormSubmitObjectType.value;
        }
    }

    //associates the selected records 
    AssociateObjects(parentTypeCode, parentId, gridTypeCode, lookupItems, IsNull(roleOrd) || roleOrd == 2, "", relName);
}   
}

最佳答案

在你的 fetch 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>

关于javascript - 将自定义 View 添加到子网格时出错 "Add existing button",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364009/

相关文章:

javascript - Uncaught ReferenceError : Invalid left-hand side in assignment 'Cart' total calculation

javascript - 找不到通过 Webpack 文件加载器加载的某些图像

javascript - 使用 Highcharts 以编程方式更改 dataLabel 的边框

javascript - 从 CRM Online 2013 中的全局选择列表获取文本值?

dynamics-crm-2011 - 导入时注册 CRM 2011 插件

javascript - slider 图像需要一些时间来加载。

javascript - jquery 添加 div 两次

javascript - 表格中的 CRM 2011 进度指示器

dynamics-crm-2011 - 为什么 CRM 2011 在数据库中为 Money 数据类型创建两个字段?

c# - 插件和工作流的抽象类