![]() |
#11 |
Участник
|
Написал для этих целей следующую функцию:
X++: public object getObjectsByCondition(string entityName, Dictionary<int, Condition> conditionList, string[] requestAttributeName) { ColumnSet cols = new ColumnSet(); cols.Attributes = requestAttributeName; ConditionExpression[] condition = new ConditionExpression[conditionList.Count]; FilterExpression filter = new FilterExpression(); filter.FilterOperator = LogicalOperator.And; for (int i = 0; i < conditionList.Count; i++) { condition[i] = new ConditionExpression(); condition[i].AttributeName = conditionList[i].name; condition[i].Operator = ConditionOperator.Like; condition[i].Values = conditionList[i].values; } filter.Conditions = condition; QueryExpression query = new QueryExpression(); query.EntityName = entityName; query.ColumnSet = cols; query.Criteria = filter; RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest(); retrieve.Query = query; RetrieveMultipleResponse retrieved; try { retrieved = (RetrieveMultipleResponse)service.Execute(retrieve); } catch (SoapException ex) { throw new Exception(ex.Detail.InnerText.ToString()); } return retrieved.BusinessEntityCollection; } X++: conditionList.Clear(); conditionList.Add(0, new Condition("itb_itn", new string[] { node.SelectSingleNode("INN").InnerText })); conditionList.Add(1, new Condition("new_lead_type", new string[] { "2" })); conditionList.Add(2, new Condition("new_address1_country", new string[] { node.SelectSingleNode("Country").InnerText })); BusinessEntityCollection companyCollection = (BusinessEntityCollection)getObjectsByCondition(EntityName.lead.ToString(), conditionList, new string[] { "leadid" }); X++: public Condition(string _name, string[] _values)
{
name = _name;
values = _values;
} |
|
|
За это сообщение автора поблагодарили: Dissident (1), IgorF (1). |