Dynamics 365筛选查找字段无记录时设置提示并解决0x80041103错误
Dynamics 365 筛选查找字段无匹配记录时的错误处理问题
在Dynamics 365项目中,需求是让筛选后的查找字段在无匹配记录时显示“无记录找到”提示。当前已完成查找字段创建,JavaScript筛选功能正常,但无匹配记录时会弹出0x80041103 Query Builder Error错误。用Fetch Xml Tester验证对应Fetch XML时返回0条记录,但查找字段仍触发报错。
错误截图:
查找字段视图截图:
解决方法
- 校验Fetch XML语法:排查筛选用的Fetch XML是否存在语法问题,比如标签未闭合、运算符使用错误等。即便Fetch Xml Tester返回0条记录,语法缺陷仍可能引发系统报错。
- 在JavaScript中添加异常处理与结果判断:修改筛选逻辑的JS代码,捕获异常并主动处理无记录场景,阻止默认错误弹窗,显示自定义提示:
function filterLookup(executionContext) { try { const formContext = executionContext.getFormContext(); const lookupControl = formContext.getControl("your_lookup_field_name"); const fetchXml = "<your_filtered_fetch_xml_content>"; lookupControl.addCustomFilter(fetchXml); // 提前查询验证结果 Xrm.WebApi.retrieveMultipleRecords("target_entity_name", `?fetchXml=${encodeURIComponent(fetchXml)}`) .then(result => { if (result.entities.length === 0) { Xrm.Navigation.openAlertDialog({ text: "无记录找到" }); lookupControl.clearCustomFilter(); // 清除筛选避免报错 } }) .catch(error => console.error("查询异常:", error.message)); } catch (e) { console.error("筛选处理异常:", e.message); } }
- 检查查找字段默认视图配置:确认查找字段的默认视图没有设置冲突的筛选条件,防止自定义筛选与默认视图筛选叠加导致查询逻辑错误。
- 核对系统设置:检查Dynamics 365系统设置中是否有控制查找字段无记录提示的选项,部分环境需开启对应配置以启用原生无记录提示。
内容的提问来源于stack exchange,提问作者Kalp Shah
相关产品推荐
相关产品推荐

