AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.02.2020, 18:18   #1  
flav is offline
flav
Участник
 
11 / 10 (1) +
Регистрация: 06.02.2020
? Работа с bpf через js
Здравствуйте, требуется совет:
Разрабатываю SPA приложение, которое включает функции по управлению последовательностями бп.
Что требуется:
1. получить массив записей lead и обработать его так, чтобы четко выделить, какой у них бп и шаг. Бп всего два, в них разное число шагов.
То есть получим что-то вроде:
[{
name: 'Sample',
bpf: 'BusinessProccessA',
step: 'qualification' - или числом, не принципиально
},...]

2. Самое непонятное - сделать переключение записи на следующий шаг БП. Тут вообще очень странно - есть функции для Xrm.Page, но мы при использовании приложения находимся не на карточке записи, то есть применять его нельзя.

Я искал информацию по этому поводу - есть некоторые примеры для C# (которые не покрывают вышеописанное), а также горы гайдов по Xrm.Page. Единственное, что я придумал пока - это сделать какой-то экшен, запускающий БП и переключающий BPF дальше, либо (о ужас) воспользоваться страшным костылем: из приложения открыть новое окно с нужной карточкой, предварительно сохранив наши намерения в session storage/local storage и там уже запускать скрипт, который проверяет хранилище на предмет намерения переключения, и если они есть, переключающий процесс через Xrm.Page.

Пока что вопрос у меня стоит хотя бы по получению процесса у сущностей. При этом, к примеру, функция RetrieveProcessInstances не подходит - она действует только с одной записью, да и предназначена для другого.

Есть возможность использовать только js.

Помогите, пожалуйста)
Старый 06.02.2020, 19:10   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Я бы рекомендовал следовать вашей идее сделать кастомный экшен и двигать процесс используя стандартные средства - https://dynamics365blocks.wordpress....-dynamics-365/ а экшен вызывать через JavaScript или из C# в зависимости от вашего сценария.

Цитата:
воспользоваться страшным костылем: из приложения открыть новое окно с нужной карточкой, предварительно сохранив наши намерения в session storage/local storage и там уже запускать скрипт, который проверяет хранилище на предмет намерения переключения, и если они есть, переключающий процесс через Xrm.Page.
Крайне не рекомендую пользоваться таким подходом.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 24.02.2020, 05:49   #3  
flav is offline
flav
Участник
 
11 / 10 (1) +
Регистрация: 06.02.2020
Цитата:
Сообщение от a33ik Посмотреть сообщение
Я бы рекомендовал следовать вашей идее сделать кастомный экшен и двигать процесс используя стандартные средства - https://dynamics365blocks.wordpress....-dynamics-365/ а экшен вызывать через JavaScript или из C# в зависимости от вашего сценария.



Крайне не рекомендую пользоваться таким подходом.
Ну это уж я фантазирую, партия сказала надо - комсомол ответил есть - реализовать любой ценой)


Мб будет кому-то полезно: фичу таки реализовали.
Для получения данных о шаге просто завели два дополнительных поля: имя процесса и шаг в виде целочисленной переменной 0-30. Плагином каждую запись при изменении исследуем на изменение процесса/шага, записываем в переменные соответствующие значения, приложение просто смотрит на эти поля и отображает, как нам удобно. Используем RetrieveProcessInstances.
Для переключения сейчас делаем экшен, но вроде все получается.

Жаль, что у нас нет человеческого способа это через webapi переключать, вроде bpf у нас аж с 2011-2012 года.
Старый 24.02.2020, 15:15   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от flav Посмотреть сообщение
Жаль, что у нас нет человеческого способа это через webapi переключать, вроде bpf у нас аж с 2011-2012 года.
BPF то был, но в процессе мутировал. Сначала стадия BPF это было просто пара полей с гуидами на соответственной сущности и только потом Microsoft реализовал дополнительную сущность. И вот где то тут нормальный способ работать с BPF и потерялся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 24.02.2020, 19:29   #5  
flav is offline
flav
Участник
 
11 / 10 (1) +
Регистрация: 06.02.2020
Цитата:
Сообщение от a33ik Посмотреть сообщение
И вот где то тут нормальный способ работать с BPF и потерялся.
Как в том анекдоте, один сломал, второй потерял XD
Старый 25.02.2020, 10:01   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Тут как в другом анекдоте: вы просто не умеете его готовить.


Инструмент, который вы используете, тупо не рассчитан под вашу задачу, или юзкейс. Об этом и следует доложить партии. BPF у нас с 2013 года, а вот во времена 2011 был другой классный инструмент: текстовое поле "stepname" и аналогичный выпадающий список. Вы можете попробовать использовать старый подход.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 25.02.2020, 10:06   #7  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Какая у вас версия CRM? Существует как минимум 3 реализации BPF. Чтобы посоветовать что-то вменяемое, нужно понимать что у вас.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 27.02.2020, 02:48   #8  
flav is offline
flav
Участник
 
11 / 10 (1) +
Регистрация: 06.02.2020
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Какая у вас версия CRM? Существует как минимум 3 реализации BPF. Чтобы посоветовать что-то вменяемое, нужно понимать что у вас.
Версия 9.0 onPremise
Поле StepName некорректно показывает текущий этап. И оно уже используется для определения чего-то там у клиента. Выглядит оно у него как 1-Квалификация, то есть так, как указал разработчик бп из выпадающего списка, а не текстового поля с названием шага. Короче, не шаг, а шляпа, и трогать его нельзя. Дополнительную сложность вызывает то, что все это делается на аутсорсе за маленькие деньги, из-за чего героически превозмогать и преодолевать категорически лень.
Поэтому и понадобилось вот такое кочевряжить. К тому же, тут нам нужен еще и конструктор отдельно от основного приложения, чтобы можно было при изменении бп редактировать логику рабочего приложения. Тут, правда, мороки немного было.

Спасибо, конечно, за желание помочь, но оно уже того, работает)
Хотя было бы интересно, какие у нас еще были реализации BPF, сам я предыдущих не застал, а хвосты от них периодически проглядывают.
Старый 27.02.2020, 10:37   #9  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Как реализовали?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 28.03.2020, 13:03   #10  
flav is offline
flav
Участник
 
11 / 10 (1) +
Регистрация: 06.02.2020
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Как реализовали?
Отказались от бп совсем. Оказалось, что он абсолютно линейный, точнее, процессов два и они никак не пересекаются. Никаких условий и разветвлений там нет, даже движение назад не требуется.
И SPA полностью покрывает функционал бп, намного быстрее и удобнее, чем стандартный процесс передвижения по сделке.Ну, внутри карточки еще добавили кнопку для переключения шага - и все.

Банально найти сделку, которая нужна юзеру, заполнить у нее параметры и передвинуть шаг раньше занимало около 30 секунд с учетом загрузок, поиска полей и без учета затупов с его стороны (введение полей и тп).
С приложением - 10-15 секунд. Плюс чтобы перейти к работе с другой сделкой или что-то посмотреть не нужно ничего грузить и ходить между гридами - карточками - искать в ворохе полей нужный - приложение по желанию показывает все нужные поля во всплывающем окошке внутри себя. Ну и краткая инфа вообще всегда перед глазами.
Сам себя не похвалишь, как говорится...

Короче, если у кого-то будут такие же проблемы и абсолютно линейный бп - просто сделайте себе поле с номером шага и кнопку вперед. Нестандартные веб ресурсы всегда работают быстрее (если их правильно построить, конечно). Для карточки все добавляется бизнес-правилом - обязательные поля и их видимость.

Переключать шаг можно и экшеном, но у нас с этим возникли проблемы - произошла магия и мы не смогли вытащить айдишник бп и шага. Они просто были нулл.
Старый 30.03.2020, 09:39   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Еще бы
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 30.03.2020, 13:13   #12  
flav is offline
flav
Участник
 
11 / 10 (1) +
Регистрация: 06.02.2020
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Еще бы
А вот с этого места поподробнее. Почему еще бы?
Старый 30.03.2020, 16:14   #13  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от flav Посмотреть сообщение
Переключать шаг можно и экшеном, но у нас с этим возникли проблемы - произошла магия и мы не смогли вытащить айдишник бп и шага. Они просто были нулл.
Речь об этом. Эти поля больше не используются системой, поэтому они и null. Если не ошибаюсь, реализация поменялась начиная с 8.2. Начиная с этой версии, с одной записью может быть связано несколько параллельных процессов. Поэтому связь между сущностями изменилась на обратную. Лично я не встречал в дикой природе двух одновременных процессов, но, видимо, были такие запросы, рас MS это сделал.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Теги
business process, dynamics 365 v. 9.0, javascript

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Заполнение полей действий через js при создании Дмитрий А.А. Dynamics CRM: Разработка 1 20.11.2017 16:29
Получить данные в одной сущности и заполнить в другой через js Дмитрий А.А. Dynamics CRM: Разработка 2 06.06.2016 12:41
Настройка авторизации CRM 2011 через проверку подлинности windows Arhiskorpion Dynamics CRM: Администрирование 1 15.03.2013 18:03
Работа с примечаниями (вложенными файлами) KP0H Dynamics CRM: Разработка 7 16.11.2011 20:52
Интеграция дополнительного фунционала через IFRAME Казарин Александр Dynamics CRM: Разработка 6 28.04.2010 15:51
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:58.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.