0

I have this query that populates a joborder with the notes (2 different types) that comes from the account on the job order. 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.

  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

<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>
2
  • so notes are not coming in resultset for some records, though its available in system? both fetchxml & QE? Commented Aug 17, 2017 at 15:37
  • 1
    seems to be working .the problem was old records were migrated and our plugins were off hence the not populating. Commented Aug 17, 2017 at 16:00

1 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.