0

Мы использовали нижеследующий код, который отлично работает в онлайн-режиме MSCRM онлайн 2011, чтобы отобразить пользовательский вид в многоуровневой диалоговой странице поиска по щелчку кнопки «Добавить существующие ленты» в подзаголовке связанных организация.Пользовательский вид в многопользовательском поиске - CRM Online upgrade

function addExistingFromSubGridQuoteProducts(gridTypeCode, gridControl, shipmentID) { 

    var entity = Xrm.Page.data.entity.getEntityName(); 

    var QuoteAttribute = Xrm.Page.getAttribute("new_quoteid"); 

    if (QuoteAttribute == null) { 

     QuoteAttribute = Xrm.Page.getAttribute("new_quote"); 

    } 

    var Quote = QuoteAttribute.getValue(); 

    var Quoteid = "Unknown"; 

    if (Quote != null) { 

     Quoteid = Quote[0].id; 

    } 

    var filter = "<filter type='and'>" 

       + "<condition attribute='new_quoteshipmentid' operator='null' />" 

       + "</filter>" 

    var fxml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" 

    + "<entity name='quotedetail'>" 

     + "<attribute name='productid' />" 

     + "<attribute name='productdescription' />" 

     + "<attribute name='priceperunit' />" 

     + "<attribute name='quantity' />" 

     + "<attribute name='extendedamount' />" 

     + "<attribute name='quotedetailid' />" 

     + "<order attribute='productid' descending='false' />" 

     + filter 

     + "<link-entity name='quote' from='quoteid' to='quoteid' alias='aa'>" 

     + "<filter type='and'>" 

      + "<condition attribute='quoteid' operator='eq' value='" + Quoteid + "' />" 

     + "</filter>" 

     + "</link-entity>" 

    + "</entity>" 

    + "</fetch>"; 

    addExistingFromSubGridCustom({ 

     entityName: entity, 

     gridTypeCode: gridTypeCode, 

     gridControl: gridControl, 

     fetchXml: fxml, 

     layoutXml: "<grid name='resultset' " + 

         "object='1' " + 

         "jump='productid' " + 

         "select='1' " + 

         "icon='1' " + 

         "preview='1'>" + 

        "<row name='result' " + "id='quotedetailid'>" + 

         "<cell name='productid' width='300' />" + 

         "<cell name='productdescription' width='300' />" + 

        "</row>" + 

        "</grid>" 

    }); 

} 

function addExistingFromSubGridCustom(params) { 

viewId = "{00000000-0000-0000-0000-000000000001}"; 

var customView = { 

    fetchXml: params.fetchXml, 

    id: viewId, 

    layoutXml: params.layoutXml, 

    name: "Filtered Lookup View", 

    recordType: params.gridTypeCode, 

    Type: 0 

}; 

var lookupItems = LookupObjects(null, "multi", params.gridTypeCode, 0, null, "", null, null, null, null, null, null, viewId, [customView]); 

if (lookupItems && lookupItems.items.length > 0) { 

    for (var i = 0; i< lookupItems.items.length; i++){ 

     var lhsEntityId; 

     var lhsSet; 

     var relatedEntityId; 

     var relatedEntitySet = ""; 

     var relationName = ""; 

     lhsEntityId = Xrm.Page.data.entity.getId(); 

     lhsSet = "new_quoteshipmentSet"; 

     relatedEntityId = lookupItems.items[i].id; 

     relatedEntitySet = "QuoteDetailSet"; 

     relationName = "new_quoteshipment_quotedetail"; 

     var done = XrmServiceToolkit.Rest.Associate(

       lhsEntityId, 

       lhsSet, 

       relatedEntityId, 

       relatedEntitySet, 

       relationName, 

       function() { 

        var i = 0; 

       }, 

       function (error) { 

        var i = 0; 

       }, 

       false 

     ); 

    } 

    params.gridControl.refresh(); 

    } 

} 

Но после обновления до MSCRM 2013 Этот код показывает мульти выбранный поиск с пользовательской точки зрения выбранного в viewpicker но бросает следующее сообщение об ошибке:

“The requested record was not found or you do not have permissions to view.”

По щелчку журналов показывают ошибки в окне сообщения об ошибке, следующее детали ошибки было показано:

“savedquery With Id = 00000000-0000-0000-0000-000000000000 Does Not Exist.”

на отладки выше яваскрипта кода, я обнаружил, что ошибка возникает на следующую строку кода:

var lookupItems = LookupObjects(null, "multi", params.gridTypeCode, 0, null, "", null, null, null, null, null, null, viewId, [customView]); 

Может кто-то помочь мне в исправлении этой ошибки из-за метода JavaScript LookupObjects в MSCRM 2013 в Интернете.

ответ

0

Я думаю, вы должны использовать LookupObjectsWithCallback поскольку LookupObjects не возвращает значение,

LookupObjectsWithCallback(callbackReference,null, "multi", params.gridTypeCode, 0, null, "", null, null, null, null, null, null, viewId, [customView]);); 

где

callbackReference={callback:function (lookupItems){ 
     //Do Something 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^