Thursday, March 17, 2011

Create Query for Retrieve CRM data from Entity and UPDATE another Entity


Following example shows how to get data from CRM DB and update another Entity with current data:


QueryExpression query = Session.CreateQuery("ld_entity1");

query.Criteria.AddCondition("column_for_condition1",ConditionOperator.Equal,value_for_conditon);

query.Criteria.AddCondition("column_for_condition2"ConditionOperator.Null);

query.Criteria.AddCondition("column_for_condition3",ConditionOperator.NotEqual,0);

query.ColumnSet = new ColumnSetnew string[] "column_to_get1", "column_to_get2" });

EntityCollection entities = Session.RetrieveEntityCollection(query);

foreach (Entity entityToUpdate in workOrderEntities.Entities)
{                    
   EntityToUpdate enToUpdate= new EntityToUpdate();

   enToUpdate.ld_workorderId = (Guid)entityToUpdate["column_with_value"];

   enToUpdate.ld_garageentryid = new EntityReference("column_with_value"
                                                     (Guid)garageEntry.ld_garageentryId);
   enToUpdate.ld_garage=garageEntryEntity.GetAttributeValue<EntityReference>("column_with_value");

   Session.Update(enToUpdate);
}

public EntityCollection RetrieveEntityCollection(QueryExpression query)
{
    return Service.RetrieveMultiple(query);
}

public QueryExpression CreateQuery(string entityName, bool allColumn = true)
{
    if (entityName == null || entityName == string.Empty)
        return null;
 
    QueryExpression query = new QueryExpression(entityName);
    query.ColumnSet = new ColumnSet(allColumn);
    return query;
}

No comments:

Post a Comment