12.05.2012, 08:37 | #1 |
Участник
|
Из плагина вернуть предупреждение?? 2011
Можно ли как то это сделать?
Я делаю throw new Exception И юзеру конечно же вылазит форма с красным крестом И данные не сохраняются А мне надо из плагина вернуть юзеру предупреждение, и при этом надо чтобы изменения сохранились. |
|
12.05.2012, 10:03 | #2 |
Чайный пьяница
|
Никак, используйте для этого JavaScript.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
12.05.2012, 10:10 | #3 |
Участник
|
блиин
да скриптом тяжело, там расчетов много очень ну ладно, ченить подумаем ща |
|
12.05.2012, 10:39 | #4 |
Участник
|
Мы раньше делали так. Создавали Веб-сервис и плагин. Код у них фактически одинаков. Из формы вызывали Веб-сервис. и если все плохо, то выдавали нотификейшн. А потом уже плагин работал. Если до него доходило.
Но вот еще интересно. Вам нужно, чтобы плагин отрабатывал и было сообщение после его отработки. Сделайте следующее: создайте текстовое поле new_message. Добавте его на форму и уберите видимость. В плагине заполняйте это поле. а на онлоад формы проверяйте, что если оно заполнено, то выдать сообщение с текстом, который в нем указан. |
|
|
За это сообщение автора поблагодарили: b777 (1). |
12.05.2012, 10:43 | #5 |
Консультант-джедай
|
Цитата:
Сообщение от g.Naukovych
Мы раньше делали так. Создавали Веб-сервис и плагин. Код у них фактически одинаков. Из формы вызывали Веб-сервис. и если все плохо, то выдавали нотификейшн. А потом уже плагин работал. Если до него доходило.
Но вот еще интересно. Вам нужно, чтобы плагин отрабатывал и было сообщение после его отработки. Сделайте следующее: создайте текстовое поле new_message. Добавте его на форму и уберите видимость. В плагине заполняйте это поле. а на онлоад формы проверяйте, что если оно заполнено, то выдать сообщение с текстом, который в нем указан. - Сохранить и закрыть - Сохранить и создать 2. А как оно будет очищаться?
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
12.05.2012, 11:04 | #6 |
Участник
|
Если бы опять ж это делал я, то очищал бы рестом после того как показал. ТО есть увидел, что поле не пусто. вызвал рест запрос на обновление этого поля и очистил бы его.
1. - Сохранить и закрыть - Сохранить и создать Еще раз. На онсейв вызывается веб-сервис. ЕСли он вернул Ошибку, то сохранение не делать и текст красиво выводить. Не Exception плагина, а текст. Это для пользователя удобнее, чем системная ошибка СРМ. P.S. Лучше использовать throw new InvalidPluginExecutionException |
|
|
За это сообщение автора поблагодарили: kh_heckfy (1). |
14.05.2012, 07:40 | #7 |
Участник
|
а чо... идея хорошая... после алерта очищать поле просто...
Вариант! спасибо!) |
|
14.05.2012, 10:27 | #8 |
Участник
|
Лучше не алерты, а это.
http://mmcrm.ru/?p=1789 Не люблю я алерты. Поле нужно очищать рестом. Иначе, если его очистить и форму не сохранить, то сообщение появится и в следующий раз, и при выходе с формы появится сообщение о том, что на форме были изменения. P.S. На форуме лучше оставлять благодарность у конкретного сообщения. Там специальная ссылка на это есть. |
|
14.05.2012, 10:40 | #9 |
Консультант-джедай
|
А что если запись в седующий раз откроет другой пользователь? Ведь сообщение покажется ему, а не тому кто сохранял запись. Или это не важно в контексте задачи?
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
14.05.2012, 10:48 | #10 |
Участник
|
Товарищ slivka_83, а какой Ваш вариант решения этой конкретной задачи в том виде, в котором она описана?
|
|
14.05.2012, 10:56 | #11 |
Консультант-джедай
|
1. Уже озвучивалось: т.к. обработка трудоемкая, то свой веб-сервис на onSave'е;
2. Если оперативность не важна и сообщения появляются не часто, то можно асинхронно e-mail отправлять.
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
14.05.2012, 11:11 | #12 |
Участник
|
С e-mail хорошо, но не факт что это подойдет к этой задаче. Мне эти асинхронные операции тоже не очень нравятся. Приходилось несколько раз объяснять почему ничего не происходит, хотя должно и что надо перегружать форму, чтобы увидеть счастье.
|
|
17.03.2014, 10:13 | #13 |
Участник
|
Не понятно только, зачем в аргументах InvalidPluginException предусмотрен параметр со статусом операции, если он всё равно не влияет...
|
|
09.04.2014, 10:12 | #14 |
Участник
|
Вот, только было устаканили с коллегами вариант с заполнением из плагина скрытого поля и повешением алерта на него скриптом, как начальница (аналитик) рассказала о чудо-новинке 13-го CRMа по поводу алертов
http://mmcrm.ru/?p=5355/ Но я по ссылке обнаружил те же скрипты, только в обёртках, а не заявленный обмен сообщениями через какие-то процессы. В разрезе этой конкретной задачи (выдача предупреждений из плагинов) изменилось ли жизнь к лучшему в 13м? Кто-ниубдь что-нибудь нарыл полезное по этому поводу? |
|
09.04.2014, 12:02 | #15 |
Чайный пьяница
|
Попробуйте пользоваться Action-ами.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: b777 (1). |
13.04.2014, 18:29 | #16 |
Участник
|
Цитата:
Сообщение от a33ik
Попробуйте пользоваться Action-ами.
Как их потом принимать? Так сходу не понятно что-то. |
|
13.04.2014, 20:15 | #17 |
Чайный пьяница
|
Посмотрите второй параграф - http://a33ik.blogspot.com/2013/10/cu...r-net-and.html
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
15.04.2014, 15:08 | #18 |
Участник
|
Цитата:
Сообщение от a33ik
Посмотрите второй параграф - http://a33ik.blogspot.com/2013/10/cu...r-net-and.html
X++: OrganizationRequest request = new OrganizationRequest("slick_CustomActionsTest"); request["BoolInArgument"] = true; request["DateTimeInArgument"] = DateTime.Now; request["DecimalInArgument"] = decimal.Zero; OrganizationResponse response = service.Execute(request); bool boolvalue = (bool)response.Results["BoolOutArgument"]; OrganizationRequest request = new OrganizationRequest("slick_CustomActionsTest"); ? |
|
15.04.2014, 16:11 | #19 |
Участник
|
Только стоит уточнить, что нормального способа переноса этих actions еще нет.
И Вам придется танцевать с бубном, чтобы перенести их на другой сервер. Конечно Андрей уже описал как этот танец танцевать, но я пока зарекся их использовать. Да они работают, да они прикольные, то не промышленные пока. это точно. Как МС планирует их в таком виде использовать мне лично вообще непонятно. |
|
|
За это сообщение автора поблагодарили: b777 (1). |
16.04.2014, 13:49 | #20 |
Участник
|
Цитата:
Сообщение от g.Naukovych
Только стоит уточнить, что нормального способа переноса этих actions еще нет.
И Вам придется танцевать с бубном, чтобы перенести их на другой сервер. Конечно Андрей уже описал как этот танец танцевать, но я пока зарекся их использовать. Да они работают, да они прикольные, то не промышленные пока. это точно. Как МС планирует их в таком виде использовать мне лично вообще непонятно. В этой задаче сначала сделал таким способом, чтоб плагин заполнял поле, на которое выдавал бы алерт скрипт, повешенный на загрузку формы. Но беда в том, что 13й CRM как-то по-хитрому частично-асинхронно выполняет сохранение изменений, и перегрузка страницы после хохранения происходит не каждый раз. Вот Вы описали выше вариант с проверкой в сервисе, который вызывается из скрипта. Тоже вариант, но в данном случае сильно желателен именно плагин, так как на этой форме большой блок с плагиновыми проверками, использующими общие методы, и лишь одна ветка алгоритма нуждается в таком вот уведомлении. Так что прям не знаю. Переносить всё из плагина в сервис или разбивать логику только из-за невозможности выдать уведомление, как-то не хочется. Но спасибо, что предупредили о танцах с бубнами. Предупреждён = вооружён, как говорится |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|