CRM 2013 refresh subgrid with fetchxml

894 views Asked by At

In my scenario, i have a new entity called "new_relations" with 2 fields (account1 and account2) that are both lookups to accounts. In my accounts form i want to display a grid containing any record with the current account, in any of the 2 lookups, that exists in "new_relations" entity. I´ve created account A and account B; created 1 record in new_relations with new_relations.account1 = account A and new_relations.account2 = account B. So, when i open account A or Account B i want to see the record created in new_relations.

I have the following code, unfortunately its only showing the record in Account´s A form in my subgrid... Can anyone help?

function FilterRelacao(){

 var relacoes = document.getElementById("Relacoes");
 var account = Xrm.Page.data.entity.getId();
 var accountname = Xrm.Page.data.entity.attributes.get("name").getValue();

 if(relacoes==null){ 
    setTimeout(function () { FilterRelacao(); }, 2000);  
    return;
 }

 var fetchXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical'        distinct='false'>" +
 "<entity name='new_relations'>" +
 "<attribute name='new_type' />" +
 "<attribute name='new_accountid1' />" +
 "<attribute name='new_accountid2' />" +
 "<attribute name='new_relationsid' />" +
 "<order attribute='new_accountid1' descending='true' />" +
 "<filter type='and'>" +
 "<condition attribute='statecode' operator='eq' value='0' />" +
 "<filter type='or'>" +
 "<condition attribute='new_accountid1' operator='eq' uitype='account' uiname='" + accountname+ "' value='" + account + "' />" +
 "<condition attribute='new_accountid2' operator='eq' uitype='account' uiname='" + accountname + "' value='" + account + "' />" +
 "</filter></filter>" +
 "</entity>" +
 "</fetch>";

 relacoes.control.SetParameter("fetchXml", fetchXml); //set the fetch xml to the sub grid  
 relacoes.control.SetParameter("effectiveFetchXml", fetchXml); //set the fetch xml to the sub grid  
 relacoes.control.Refresh(); //refresh the sub grid using the new fetch xml 

 }
1

There are 1 answers

2
Zach Mast On BEST ANSWER

Your fetch XML looks correct to me. When you set up the subgrid did you set "Records" = "All Record Types" in the Data Source section? If you did not then the subgrid will append a condition to your fetchxml so that it returns only records related to the specific relationship that you specified.