繁体   English   中英

Dynamics CRM查询表达

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM