[英]Dynamics CRM QueryExpression
我有一个查询,该查询使用来自工作订单上帐户的注释(2种不同类型)填充工作订单。 我遇到的问题是,它适用于大多数工单,但是我注意到有些笔记没有出现。 在我看来,帐户实体和内部便笺是一对多的关系,但是我一定会犯错。 在下面的FetchXML中,我也可以从中建模查询。
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>
来自评论:
似乎正在工作。 问题在于在我们的插件关闭期间迁移的旧记录,因此它们没有填充。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.