Reputation: 120
I'm trying to retrieve appointments whose "requiredattendees" contains on one of entities from account list. requiredattendees have a type of PartyList. My query looks like:
var query = new QueryExpression("appointment")
{
ColumnSet = columnSet,
Criteria = new FilterExpression(LogicalOperator.Or)
};
And adding conditions :
GetAccounts()
.Select(a => new ConditionExpression("requiredattendees", ConditionOperator.Contains, a.Id))
.ForEach(c => query.Criteria.AddCondition(c));
a.Id is the account guid.
I'm getting following error:
Cannot add attribute requiredattendees of type partylist in a condition
System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral]]
Upvotes: 2
Views: 2164
Reputation: 1
QueryExpression query = new QueryExpression(LetterEntityAttributeNames.EntityName)
{
ColumnSet = new ColumnSet(new string[]
{
LetterEntityAttributeNames.SubjectFieldName,
LetterEntityAttributeNames.RegardingObjectId,
LetterEntityAttributeNames.ToFieldName
}),
Criteria = new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression
{
AttributeName = LetterEntityAttributeNames.DirectChannelTypeFieldName,
Operator = ConditionOperator.Equal,
Values =
{
DirectChannelType
}
},
new ConditionExpression
{
AttributeName = LetterEntityAttributeNames.RegardingObjectId,
Operator = ConditionOperator.Equal,
Values =
{
RegardingId
}
}
}
},
LinkEntities =
{
new LinkEntity
{
LinkFromEntityName = ActivityPointerEntityAttributeNames.EntityName,
LinkFromAttributeName = ActivityPartyAttributeNames.ActivityId,
LinkToEntityName = ActivityPartyAttributeNames.EntityName,
LinkToAttributeName = CampaignActivityAttributeNames.Id,
LinkCriteria = new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression
{
AttributeName = ActivityPointerAttributeNames.PartyIdField,
Operator = ConditionOperator.Equal,
Values =
{
ToEntityGuid
}
}
}
}
}
}
};
Upvotes: 0
Reputation: 392
This code is for serviceappointment, but if i remember right, it's just the same for appointment. Hope this helps
QueryExpression qe = new QueryExpression
{
EntityName = "serviceappointment",
Criteria = new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression
{
AttributeName = "scheduledstart",
Operator = ConditionOperator.LessThan,
Values =
{
endTime
}
},
new ConditionExpression
{
AttributeName = "scheduledend",
Operator = ConditionOperator.GreaterThan,
Values =
{
startTime
}
}
}
},
LinkEntities =
{
new LinkEntity
{
LinkFromEntityName = "activitypointer",
LinkFromAttributeName = "activityid",
LinkToEntityName = "activityparty",
LinkToAttributeName = "activityid",
LinkCriteria = new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression
{
AttributeName = "partyid",
Operator = ConditionOperator.Equal,
Values =
{
someEntity.id
}
}
}
}
}
}
};
Upvotes: 6