Добрый день.
при разработке веб сервиса возникает следующая ошибка
The server encountered an error processing the request. The exception message is 'Дублирующиеся данные в объекте UsrAdressInCase'. See server logs for more details. The exception stack trace is: at Terrasoft.Core.Entities.Entity.Load(Select select, IDictionary`2 columnMap) at Terrasoft.Core.Entities.Entity.InternalFetchFromDB(IEnumerable`1 columnsToFetch, IDictionary`2 conditions, Boolean useDisplayValues, Boolean performValuesCleanup) at Terrasoft.Core.Entities.Entity.FetchFromDB(EntitySchemaColumn conditionColumn, Object conditionValue, Boolean useDisplayValues) at Terrasoft.Configuration.UsrCustomConfigurationServiceNamespace.UsrCustomConfigurationService.checkglobal(String phone) at SyncInvokecheckglobal(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Terrasoft.Web.Common.ServiceModel.ThreadContextInitializer.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
что это значит в контексте платформы креатио?
я использую следующий код
var usrAddressSchema = UserConnection.EntitySchemaManager.FindInstanceByName("UsrAdressInCase"); var usrAdressInContact = usrAddressSchema.CreateEntity(UserConnection); exists = usrAdressInContact.FetchFromDB("UsrdDislocation", usrLookup1);
usrLookup1 - Guid ключ.
UsrdDislocation - внешний обьект. Идея найти объект в UsrAdressInCase по внешнему ключу. Я пробовал выполнить SQL запрос, но он не вернул никаких записей по этому ключу в таблице UsrAdressInCase.
Нравится
Добрый день.
Метод FetchFromDB выполняет выборку только одной записи, и если записей по фильтру будет несколько, то будет такая ошибка.
Т.е. в вашем случае в таблице UsrAdressInCase есть более одной записи где UsrdDislocationId = usrLookup1.
Добрый день,
Есть несколько предположений:
1) Сообщение об ошибке идет напрямую от метода checkglobal и какой-то проверки в нём.
2) Есть настроенные правила поиска дублей по объекту UsrAdressInCase и при создании Entity система возвращает сообщение, что по какому-то правилу в системе идентифицирован дубль.
3) Есть какая-то дополнительная логика, которая паралелльно с Вашим действием CreateEntity тригерится и что-то выполняет (Entity event listener или бизнес логика на самом объекте).
Добрый день.
Метод FetchFromDB выполняет выборку только одной записи, и если записей по фильтру будет несколько, то будет такая ошибка.
Т.е. в вашем случае в таблице UsrAdressInCase есть более одной записи где UsrdDislocationId = usrLookup1.