31.03.2015, 13:49 | #1 |
Участник
|
Поведение системы при Retrieve
Коллеги, поясните пожалуйста поведение системы...
Есть плагин на Retrieve. Запрашиваю данные сужности по ID, которого нет в системе. Плагин на стадии Pre во входных параметрах заменяет несуществующий ID на существующий в системе. Это позволяет запросу выполняться и не падать с ошибкой, что запись не найдена. Дальее, на стадии Post, когда я получаю из CRM сущность, заменяю у нее ID обратно на несуществующий. При этом получаю ошибку что запись не найдена. Если на стадии Post не заменять ID, то все проходит нормально. Я вот как то не очень понимаю, по идее на стадиии Post Retrieve можно подложить системе любые данные (ну по крайней мере в рамках существующих у сущности полей). Но почему подмена ID ведет к ошибке, есди никаких запросов в систему больше не происходит. |
|
31.03.2015, 14:05 | #2 |
Чайный пьяница
|
Добрый день,
А можете объяснить зачем вам это, пардон, извращение понадобилось?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
31.03.2015, 16:17 | #3 |
Участник
|
Я ждал этого вопроса...
Делаем хитрую интеграцию CRM с внешней мастер-системой, при которой часть данных в CRM храниться, а часть нет, но отображается через преднастроенные сущности и стандартный интерфейс. |
|
31.03.2015, 17:04 | #4 |
Чайный пьяница
|
Примерно такого ответа и ждал. Ни разу так не извращался, но что бы я мог вам посоветовать исходя из вашего диагноза - говорит, что записи нет - сделайте так, чтобы запись была. Создайте запись с предзаданным гуидом и используйте этот гуид в плагине.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
31.03.2015, 17:16 | #5 |
Участник
|
Да это понятно - это возможное решение, оно очевидно.
Вопрос - почему происходит ошибка. Где и в какой момент CRM сравнивает гуиды записей, почему это происходит уже после того, как запись была успешно получена из базы и теперь просто должна быть передана интерфейсной части. Думал может как то сравнивает гуиды во входных и выходных параметрах запроса, но там то на входе как раз несуществующий гуид и на выходе я подставляю его же... Врятли система делает запрос напрямую в SQL после того как отрабатывает Retrieve. |
|
31.03.2015, 17:28 | #6 |
Чайный пьяница
|
Хотите сделать функционал - реализовывайте по очевидному сценарию. Хотите разобраться в чём причина ошибки... рефлектор вам в руки и удачи ведро. Я копал исходники, я знаю какой это гемор
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
Теги |
plugin, retrieve, crm2013, crm2011 |
|
|