0
我有這樣的查詢,它使用來自作業訂單上的帳戶的筆記(2種不同類型)填充工作訂單。我遇到的問題是它在大多數工作訂單上都有效,但有一些我注意到這些記錄沒有填充到。在我看來,賬戶實體和內部票據是一對多的關係,但是我必須解決這個問題。我也在我模擬我的查詢的FetchXML下面。Dynamics CRM QueryExpression
private void PopulateInternalNotes()
{
EntityReference accountId = _Entity.GetAttributeValue<EntityReference>("hc_account");
EntityReference buisnessId = _Entity.GetAttributeValue<EntityReference>("hc_businessunit");
if(accountId == null || buisnessId ==null)
{
return;
}
_tracer.Trace("buisness unit: " + buisnessId);
//to get internal description
QueryExpression exp = new QueryExpression("hc_internalnote");
exp.Criteria.AddCondition("hc_internalnotetype", ConditionOperator.Equal, 948050000); // internal description option
exp.Criteria.AddCondition("hc_account", ConditionOperator.Equal, accountId.Id);// matches account on joborder
exp.Criteria.AddCondition("hc_businessunit", ConditionOperator.Equal, buisnessId.Id);//matches buisnessunit on joborder
exp.ColumnSet = new ColumnSet("hc_note");
EntityCollection results = _service.RetrieveMultiple(exp);
if (results.Entities.Count == 1)
{
foreach (Entity r in results.Entities)
{
_tracer.Trace("one internal desc found");
_Entity["hc_internaldescription"] = r.GetAttributeValue<string>("hc_note");
}
}
else
{
_tracer.Trace("no internal desc found");
}
//to get submission process note
QueryExpression sub = new QueryExpression("hc_internalnote");
sub.Criteria.AddCondition("hc_internalnotetype", ConditionOperator.Equal, 948050002); // submission process option
sub.Criteria.AddCondition("hc_account", ConditionOperator.Equal, accountId.Id);// matches account on joborder
sub.Criteria.AddCondition("hc_businessunit", ConditionOperator.Equal, buisnessId.Id);//matches buisnessunit on joborder
sub.ColumnSet = new ColumnSet("hc_note");
EntityCollection Subresults = _service.RetrieveMultiple(sub);
if (Subresults.Entities.Count == 1)
{
foreach (Entity s in Subresults.Entities)
{
_tracer.Trace("one submission desc found");
_Entity["hc_submissionprocessnotes"] = s.GetAttributeValue<string>("hc_note");
}
}
else
{
_tracer.Trace("more than one submission note found");
}
}
FetchXML下面
<fetch distinct="false" mapping="logical" output-format="xml-platform" version="1.0">
<entity name="hc_internalnote">
<attribute name="createdon"/>
<attribute name="statecode"/>
<attribute name="ownerid"/>
<attribute name="hc_note"/>
<attribute name="modifiedon"/>
<attribute name="modifiedby"/>
<attribute name="hc_internalnotetype"/>
<attribute name="createdby"/>
<attribute name="hc_contract"/>
<attribute name="hc_businessunit"/>
<attribute name="hc_account"/>
<attribute name="hc_internalnoteid"/>
<order descending="false" attribute="createdon"/>
<filter type="and">
<condition attribute="hc_account" value="{B1F13E37-2D34-E411-9518-005056010301}" uitype="account" uiname="Community Memorial Hospital (050394)" operator="eq"/>
</filter>
</entity>
</fetch>
所以筆記不會在某些記錄的結果集中出現,儘管它在系統中可用? fetchxml和QE? –
似乎工作。問題是舊的記錄被遷移,我們的插件關閉,因此不填充。 – amberl