0
나는 자신의 역할이 특정 값의 목록과 일치하는 사용자 지정 엔터티에서 '팀 구성원'목록을 반환하려고합니다. 일치하려는 속성은 선택 목록이며 이것이 내 오류의 원인인지 궁금해합니다. 내 코드는 다음과 같습니다.'예상치 못한 오류가 발생했습니다. 플랫폼'- 이것은 선택 목록을 잘못 쿼리했을 수 있습니다.
public static BusinessEntityCollection GetTeamMembers(string BU, string[] roles)
{
BusinessEntityCollection TeamMembers = new BusinessEntityCollection();
ColumnSet cols = new ColumnSet();
cols.Attributes = new string[] { "new_teamid", "new_id", "new_name", "ownerid", "new_rolepicklist" };
QueryExpression query = new QueryExpression();
query.ColumnSet = cols;
query.EntityName = EntityName.new_team.ToString();
List<ConditionExpression> ceList = new List<ConditionExpression>();
foreach (string role in roles)
{
//I suspect it this block is where the problem occurs as 'new_rolepicklist' is a picklist, and 'role' will be something like 'Manager' (a picklist value).
ConditionExpression ce2 = new ConditionExpression();
ce2.AttributeName = "new_rolepicklist";
ce2.Operator = ConditionOperator.Like;
ce2.Values = new string[]{role};
ceList.Add(ce2);
}
FilterExpression filter = new FilterExpression();
filter.Conditions = ceList.ToArray();
filter.FilterOperator = LogicalOperator.Or;
query.Criteria = filter;
try
{
using (crmService)
{
TeamMembers = crmService.RetrieveMultiple(query); //ERROR
}
}
catch (SoapException se)
{
throw new Exception("Error occurred retrieving Team Members for " + BU + ". " + se.Detail.InnerXml);
}
catch (Exception ex)
{
throw new Exception("Error occurred retrieving Team Members for " + BU + ". " + ex.Message);
}
return TeamMembers;
}
먼저이 오류의 원인이 될 수있는 눈부신 부분이 있습니까? 둘째, 픽리스트 부분이라면 어떻게 수정해야합니까? 선택 목록 값이있는 선택 목록 인 특성을 쿼리하려면 어떻게해야합니까? 내가 INT []의 역할뿐만 아니라 foreach는 (역할 INT 역할)과 ce2.Values = 새로운 객체를 데리고 내 방법을 편집 완료 알렉스의 정답에 따라
UPDATE
, [] {role} (여기서 int []는 허용되지 않습니다).
확실하게 비교에 질식합니다 (문자열을 입력하면 picklist 값은 int입니다). – Alex
@Alex - 제안 해 주셔서 감사합니다. 나는 int equivalents로 그것을 줄 것이다. – sr28
@Alex - 그 트릭을 마쳤습니다. 훌륭해, 고마워! 이 질문에 답을하고 싶다면 올바른 것으로 표시해 드리겠습니다. – sr28