0
我創建了一個fetchxml來過濾CRM中的合同查找字段。我希望能夠查看合同查找字段中有多少條記錄。如果只有一條記錄,我希望能夠自動填充該查找字段。動態crm中查找字段的計數長度
嘗試使用API函數能夠遍歷fetchxml記錄,但沒有任何運氣返回計數。還有另外一種方法可以獲得我需要的結果嗎?
function buildCustomView() {
// Some GUID but only needs to be unique among the other available views for the lookup
var viewId = "{00000000-0000-0000-0000-000000000001}";
var viewDisplayName = "Contracts for This Account";
//Only need Contracts for the selected Worksite and buisness unit if filled in
var worksite = getFieldValue("hc_worksite");
if (!worksite) { return; }
if (!worksite[0]) { return; }
if (!worksite[0].id) { return; }
//check if buisness unit is availble and if it is can filter lookup further
var buisnessUnit = getFieldValue("hc_businessunit");
var condition;
if (buisnessUnit != null) {
condition = "<filter type='and'>" +
"<condition attribute='hc_businessunit' operator='eq' value='" + buisnessUnit[0].id + "' />" +
"</filter>";
///if take out the account name, contract lookup will still be filteredl
} else {
condition = "";
}
//Get all Contracts that pertain to the selected worksite
var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true' >" +
"<entity name='contract'>" +
"<attribute name='title' />" +
"<attribute name='customerid' />" +
"<attribute name='contractid' />" +
"<attribute name='hc_contracttype' />" +
"<attribute name='hc_contractsubtype' />" +
"<attribute name='activeon' />" +
"<attribute name='hc_contractlevel' />" +
"<attribute name='expireson' />" +
"<attribute name='hc_contractaccount' />" +
"<attribute name='hc_contract' />" +
"<order attribute='title' descending='false' />" + condition +
"<link-entity name='hc_account_contract' from='contractid' to='contractid' visible='false' intersect='true'>" +
"<link-entity name='account' from='accountid' to='accountid' alias='ab'>" +
"<filter type='and'>" +
"<condition attribute='accountid' operator='eq' value='" + worksite[0].id + "' />" +
"</filter>" +
"</link-entity>" +
"</link-entity>" +
"</entity>" +
"</fetch>";
//Set up the whole view's UI
var layoutXml = "<grid name='resultset' object='1' jump='hc_contract' select='1' icon='1' preview='2'>" +
"<row name='result' id='contractid'>" +
"<cell name='title' width='300' />" +
"<cell name='hc_contractaccount' width='200' />" +
"<cell name='hc_contracttype' width='100' />" +
"<cell name='hc_contractsubtype' width='100' />" +
"<cell name='hc_contractlevel' width='100' />" +
"<cell name='activeon' width='100' />" +
"<cell name='expireson' width='100' />" +
"<cell name='customerid' width='150' />" +
"<cell name='hc_contract' width='100' />" +
"</row>" +
"</grid>";
try {
//Set the view
Xrm.Page.getControl("hc_contract").addCustomView(viewId, "contract", viewDisplayName, fetchXml, layoutXml, true);
} catch (e) {
Xrm.Utility.alertDialog("Error: " + e.message);
}
var count = 0;
//count results of fetch xml
SDK.WEBAPI.executeFetchSync("contract", fetchXml,
function (results) {
for (i=0;i<results.length; i++){
count++;
}
Xrm.Utility.alertDialog(count);
},
function (error) {
//Show error
alertDialog("Error: " + error.message);
});
}
您可以嘗試使用fetchxml支持的聚合方法 - https:// msdn .microsoft.com/EN-US /庫/ gg309565.aspx –