В моем экземпляре CRM есть основной объект «Case». Внутри этого есть поиск клиентов по умолчанию (customerid), который указывает на основные элементы «Account» & «Контакт». Существует также другой поиск, указывающий на «Контакт», который отфильтрован на основе значения «Учетная запись» в customerid (важно, чтобы customerid использовался для выбора только значений учетной записи). Существует также другой поиск, указывающий на пользовательский объект, который использует функцию автоматического номера. Я также пытаюсь также фильтровать это поле (new_projectref), чтобы показывать только записи, связанные с выбранным значением учетной записи. Однако возникает ошибка, указывающая, что объект «Contact» не содержит атрибута с именем = «customerid». ».Невозможно найти решение, чтобы устранить второй тип записи в Lookup
/* Filter Lookup */
function preFilterLookup() {
try {
Xrm.Page.getControl("new_projectref").addPreSearch(function() {
addLookupFilter();
});
} catch (error) {
//window.console.log("Prefilter lookup error " + error.message);
}
}
function preFilterLookupGeneric(sourceField, destinationField) {
try {
Xrm.Page.getControl(destinationField).addPreSearch(function() {
addLookupFilterGeneric(sourceField, destinationField);
});
} catch (error) {
// window.console.log("Prefilter lookup error " + error.message);
}
}
function addLookupFilterGeneric(sourceField, destinationField) {
try {
var companyId = Xrm.Page.getAttribute(sourceField).getValue()[0].id;
var entityType = Xrm.Page.getAttribute("customerid").getValue()[0].entityType;
alert(entityType);
if (entityType == "account") {
console.log("Company = " + companyId);
if (companyId != null) {
fetchXml = "<filter type='and'><condition attribute='customerid' operator='eq' value='"
+ companyId + "' /></filter>";
Xrm.Page.getControl(destinationField).addCustomFilter(fetchXml);
}
} else if (entityType == "contact") {
return;
}
} catch (error) {
window.console.log("Error lookup filter " + error.message);
}
}
function addLookupFilter() {
try {
var companyId = Xrm.Page.getAttribute("parentaccountid").getValue()[0].id;
// window.console.log("Company = " + companyId);
if (companyId != null) {
fetchXml = "<filter type='and'><condition attribute='customerid' operator='eq' value='"
+ companyId + "' /></filter>";
Xrm.Page.getControl("new_projectref").addCustomFilter(fetchXml);
}
} catch (error) {
// window.console.log("Error lookup filter " + error.message);
}
}
Заранее спасибо
измените ваше название, чтобы быть более описательный характер, потому что, глядя на название никто не будет пытаться помочь вам – DarkMukke
А вы когда-нибудь слышали разрывы строк? – DarkMukke
Я отступил код для вас, пожалуйста, найдите время, чтобы сделать это в следующий раз. Вы должны облегчить людям, чтобы помочь вам! –