简体   繁体   English

Dynamics CRM查询表达

[英]Dynamics CRM QueryExpression

I have this query that populates a joborder with the notes (2 different types) that comes from the account on the job order. 我有一个查询,该查询使用来自工作订单上帐户的注释(2种不同类型)填充工作订单。 The problem that I'm having is that it works on most of the job orders but there are some that I'm noticing that the notes are not populating to. 我遇到的问题是,它适用于大多数工单,但是我注意到有些笔记没有出现。 It seems to me that the account entity and internal notes are a one to many relationship, however I must be going about this all wrong. 在我看来,帐户实体和内部便笺是一对多的关系,但是我一定会犯错。 I also have below the FetchXML that I modeled my query from. 在下面的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 below 下面的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>

From comments: 来自评论:

Seems to be working. 似乎正在工作。 The problem was with old records which were migrated during our plugins were off, hence they are not populating. 问题在于在我们的插件关闭期间迁移的旧记录,因此它们没有填充。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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