Добрый день!
У контакта имеются поля Phone, MobilePhone, HomePhone.
У лида MobilePhone, BusinesPhone.
У контрагента Phone, AdditionalPhone.
Раньше я делал поиск через через
$filter=substringof('6665544', MobilePhone)
Но в разделе "Средства связи" пользователи могут добавлять много номеров, поэтому поиск не работает по всем этим полям.
Я увидел тип ContactCommunication в котором и хранятся остальные номера.
Один из вариантов поиска это сначала сделать запрос
/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('07562135947', SearchNumber)&$select=ContactId
для получения Id контакта, а затем получить контакт из ContactCollection по Id.
Для этого нужно делать два запроса.
Подскажите, как сделать поиск всего лишь одним запросом ,чтобы искать сразу и по полям и в коллекции ContactCommunication ?
Нравится
Здравствуйте!
Ознакомтесь со статьями:
"Терещук Павел" написал:Здравствуйте!
Ознакомтесь со статьями:
Спасибо! Получилось осуществить поиск конктакта через один запрос к ContactCommunicationCollection и $extend Contact.
Все хорошо, но мне надо получить лишь некоторые поля Contact, а именно Id, Name, OwnerId, AccountId.
Для этого я добавляю в запрос $select=Contact/Id, Contact/Name и это работает без ошибок.
Но если я добавляю Contact/OwnerId или Contact/AccountId, то получаю ошибку:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
1
Элемент коллекции с именем AccountId не найден
Элемент коллекции с именем AccountId не найден
Terrasoft.Common.ItemNotFoundException
at Terrasoft.Core.MetaItemCollection`1.GetByName(String name)
at Terrasoft.Core.Entities.EntitySchema.GetInheritedPath(String columnPath)
at Terrasoft.Core.Entities.EntitySchemaQuery.CreateColumn(String columnPath)
at Terrasoft.Core.Entities.EntitySchemaQuery.AddColumn(String columnPath)
at Terrasoft.Core.Entities.EntityQueryProvider.Build(Expression expression)
at Terrasoft.Core.Entities.EntityQueryProvider.LoadEntityCollection(Expression expression)
at Terrasoft.Core.Entities.EntityQueryProvider.ExecuteEnumerable[TResult](Expression expression)
at Terrasoft.Core.Entities.EntityQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Data.Services.Providers.BasicExpandProvider.ExpandedQueryable`1.GetEnumerator()
at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)
at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService, IODataResponseMessage responseMessage)
at System.Data.Services.DataService`1.HandleRequest()
Хотя если не задавать $select, то эти поля присутствуют.
Вот запрос:
https://004057-sales-enterprise.bpmonline.com/0/ServiceModel/EntityDataService.svc/ContactCommunicationCollection?$filter=substringof('224433305083', SearchNumber)&$expand=Contact&$select=Contact/Id,Contact/Name,Contact/AccountId,Contact/OwnerId
Подскажите что не так делаю?