18.07.2017, 14:56 | #1 |
Даёшь прямые руки!
|
Синхронное сохранение формы
Всем привет!
Кто-то сталкивался с вопросом реализации синхронного сохранения формы средствами js? Постараюсь описать суть задачи. Есть некая база данных; есть Web-сервис, расположенный на другом домене, который осуществляет запись данных в эту БД (данных достаточно много) и тут же небольшой html который служит в качестве iframe для формы CRM. При нажатии на кнопку сохранить/сохранить и закрыть из формы CRM по средствам postMessage уходят данные в iframe на сервис. Сервис осуществляет все необходимые операции и возвращает в родителя используя всё тот же postMessage результат. Проблема в том, что при нажатии на сохранить и закрыть результат выполнения из iframe не успевает сформироваться и окно закрывается до получения результата. Что можете подсказать для реализации функции, которая будет стопить закрытие формы до получения ответа? В начале хотел использовать Xrm.Page.context.getEventArgs().preventDefault() для отмены сохранения, а после получения результата уже сохранять форму и закрывать её. Но при таком подходе не сохраняются данные формы CRM – после использования Xrm.Page.data.entity.save('saveandclose') появляется сообщение о том, что данные не сохранены . |
|
18.07.2017, 15:11 | #2 |
Участник
|
Если использовать postMessage и выполнять его на сейве то никак.
Я могу предложить такой вариант:
Но у меня возникает вопрос почему это не сделать плагином ? |
|
18.07.2017, 15:18 | #3 |
Даёшь прямые руки!
|
Вариант с переопределением кнопки на риббоне я рассматривал, но к сожалению уже написано много кода, который использует именно штатную кнопку. Боюсь много поломается при таком подходе, перепись с отладкой придётся вести очень долго но за оперативный совет спасибо.
Я бы может и сделал плагином, но к сожалению кроме скромных познаний в JS ничего другого не умею. А сейчас начинать изучать вопрос тоже не очень то и хочется, так как в ближайшем будущем переезжаем на другую платформу |
|
19.07.2017, 11:39 | #4 |
Даёшь прямые руки!
|
Придумал как можно решить задачу. После того как я делаю postMessage дополнительно делаю синхронный httprequest который собственно и обеспечивает задержку. Метод очень не красивый и его можно привадить в качестве примера из раздела бэдпрактикс но рабочий. Всем спасибо за внимание!
|
|
Теги |
crm 2011, js, saveform |
|
|