16.11.2011, 12:56 | #1 |
Участник
|
Создание Order из другой сущности
Уважаемые гуру,
Как правильно в CRM 2011 создать из "нестандартной" сущности Order? Создание должно запускаться из кнопки на Ribbon для "нестандартной сущности". "Нестандартная сущность" уже есть в приложении. Необходимо принять во внимание следующие требования: 1. Возможно выбрать несколько "нестандартных сущностей" из списка, и нажатие на кнопку на Ribbon должно создать N Order-ов; 2. При невозможности (исходя из бизнес - логики) создания Order из "нестандартной сущности" нужно выдать сообщение пользователю и пропустить создание Order; 3. (Опционально) Иметь возможность посмотреть "историю" для каждой "нестандартной сущности". Этот пункт необязателен. 4. Количество записей невелико (десятки). Я вижу один из следующих вариантов: А. Использовать Plugin и в самом Plugin писать логику и создавать Order, предварительно проверив, может ли этот Order быть создан. Мне кажется, наиболее подходящий вариант, т.к. проще, однако сомневаюсь, что возможно реализовать пункт 3 и где - то сохранить "историю" преобразования; Б. Используя Workflow. Преимущества - неограниченное время выполнения (что некритично), и, возможно, некая "история" выполнения. Недостаток - видимо, придется вызывать тот же Plugin (как?) из Workflow, который выполняет непосредственно преобразование "Нетандартная сущность" --> Order. Вопрос: как ПРАВИЛЬНО реализовывать такие прицессы в CRM? Информации в Best Practice не так много, поэтому буду признателен за Ваши советы. Заранее спасибо |
|
16.11.2011, 16:06 | #2 |
Участник
|
Еще варианты:
Б. Вместо вызова плагина из бизнес-процесса, можно сделать программный шаг этого БП. В. Веб-служба, которая выполняет всю логику и вызывается из JavaScript'а с кнопки с риббона, передавая в параметре Guid'ы всех выбранных в списке записей. |
|
16.11.2011, 17:37 | #3 |
Участник
|
Спасибо за ответ. Мне кажется, что в данной ситуации использовать Plugin было бы самым правильным решением, не так ли?
|
|
16.11.2011, 22:21 | #4 |
Участник
|
Если вы хотите делать запуск преобразования по кнопке, то значит в первую очередь сработает JavaScript на этой кнопке.
Далее у вас есть варианты: 1. Написать всю логику на JavaScript. 2. JavaScripto'ом изменить какое-либо поле на форме и сохранить форму, повесить плагин на изменение этого поля. 3. Если кнопка на риббоне списка, то тогда изменить поле для всех выбранных записей, вызывая соответствующий веб-сервис CRM. Повесить плагин на изменение этого поля. 4. Сделать бизнес-процесс с дополнительным программным шагом. Процесс повесить на изменение поля, которое изменять скриптом. 5. Веб-служба, которая выполняет всю логику и вызывается из JavaScript'а с кнопки с риббона, передавая в параметре Guid'ы всех выбранных в списке записей. Зависит от того, что для вас проще, что из этих вариантов вы уже пробовали делать. Первый вариант, на мой взгляд, неудобный. Вариант с плагином довольно гибкий, так как плагин можно вызвать разными методами. Вариант 4 удобен тем, что не надо добавлять кнопку и писать JavaScript. Для ведения "истории" либо создать отдельную сущность, либо добавить поля в order, куда сохранять информацию об исходном объекте. Последний раз редактировалось griefon; 16.11.2011 в 22:35. |
|
|
За это сообщение автора поблагодарили: ashuron (1). |