Добрый день, Уважаемые коллеги!

Подскажите пжл., как с помощью бизнес-процесса осуществить математические операции с массивом данных?
Например, как сложить данные из набора (массива) данных, созданных на детали (см. вложенный файл)

Нравится

13 комментариев

1) добавляете в БП элемент "читать данные"
2) Режим чтения устанавливаете "Считать функцию", объект - "План заключения договоров" (ну или другой объект, который используется в детали),Функция - "Сумма" (или другая), Указываете колонку - "Сумма тыс руб"
3) добавляете следом за ним элемент изменить данные. Выбираете объект "Контрагент", "Какие значения полей установить для измененных записей?" - выбираете колонку "Договоров....."(т.е. то, куда надо положить сумму). Появится пустое поле. В нем щелкаете по молнии и указываете результат функции предыдущего элемента

Обращу внимание, чтоесли Бизнес-План не контрол груп, а деталь, то пункт 3 надо немного видоизменить

Спасибо, Данила!

Только я не понял, как выглядит, в данном случае, функция суммы, которая будет складывать массив данных? При чем этот массив величина переменная, то есть в него могут добавляться данные или, наоборот, удаляться, или изменяться в зависимости от цены и/или количества...
Если не сложно, приведите пример такой функции....

При запуске БП он берет все записи из "План заключения договоров", которые относятся к данному контрагенту (забыл кстати написать, что надо бы отфильтровать в бп по контрагенту) и делает SUM() по колонке. Соответственно если кол-во записей увеличится надо как-то снова вызывать бп для пересчета

Здравствуйте, Данила!

Изменения данных в массиве соответствует событию добавления/удаления записи на/с деталь (-и).
Вам необходимо:
1) Прочитать добавленную запись
Таким образом вы получите Id записи, с которой связана добавленная
2) Элементом "Чтение данных" прочитать все записи по объекту детали, у которых в поле связи с разделом, указано значение записи раздела
3) Элементом "Изменить данные" задать результат подсчета из второго пункта.

Спасибо, уважаемые коллеги!

Только вот, как я и сомневался (или как вариант не знаю правильный формат) при описании функции сумма возникает ошибка (см. вложенный файл)

Уважаемые коллеги!

Извините, но не тот файл вложил к последнему комментарию.

"Ифутин Юрий Борисович" написал:Только вот, как я и сомневался (или как вариант не знаю правильный формат) при описании функции сумма возникает ошибка (см. вложенный файл)

В элементе #Читать договор......Сумма# уже содержится сумма по столбцам.

Спасибо, коллеги!

Я понял свою ошибку - надо читать данные через режим "Считывать функцию"... Я просто ни разу так не делал и не сразу понял, что это за режим...

Уважаемые коллеги!

Помогите пжл., выявить ошибку:
Смоделировал по Вашей рекоммендации процесс получения итоговой суммы (см. вложенный файл).
Добавление и изменение договоров обрабатывает отлично а вот удаление договора у меня не получается...

Добрый день!
Попробуйте добавить элемент [Таймер] с задержкой 1-2 секунды перед элементом “Считать сумму при удалении договора”.

Спасибо, Олег!

Такой прием, помог только один раз - при удалении, процесс правильно посчитал итоговую сумму путем удаления суммы удаленного договора из предыдущей итоговой суммы...
Однако, при повторном удалении следующего договора, итоговая сумма не уменьшилась, а просто обнулилась.
Думаю что проблема не в таймере, а, наверное, что-то в формулах не так...
Как Вы думаете?

Уважаемый Олег!

Когда тестировал процесс был включен еще другой параллельный процесс...
Поэтому снимаю свой предыдущий комментарий...
После деактивации параллельного процесса, получаем следующее:
- после первого удаления договора и обновления кэша процесс работает корректно
- после второго удаления договора (например, если в списке несколько договоров) и обновления кэша, итоговая сумм не меняется...
- итоговая сумма меняется после второго обновления кэш...

Коллеги, ну, помогите победить данный процесс.... (см. вложенный файл)

Юрий, здравствуйте!

Для решения задачи следует:
1. В процессе сгенерировать сообщение по каналу Web-socket.
2. В схеме страницы редактирования контрагента подписаться на сообщения.
3. В методе “прослушки” сообщения вызывать метод который обновит страницу и отобразит актуальные данные.
Обновить страницу редактирования:
reloadEntity() – refresh page

Пример генерации и подписки на сообщение рассмотрен на форуме - http://www.community.terrasoft.ru/forum/topic/11784

Показать все комментарии

Добрый день, уважаемые коллеги!

Обнаружил следующую проблему при тестировании БП.
У меня смоделирован и запущен БП "Уведомление участнику задачи" (см. вложенный файл)
При постановке задачи на компьютере процесс отлично срабатывает и посылает уведомление о задаче...
При постановке задачи в мобильном приложении процесс тоже правильно срабатывает, но присылает 2 одинаковых уведомления (см. вложенный файл).

Помогите разобраться, в чем тут дело....

Нравится

1 комментарий

Добрый день!

Добавьте в стартовом сигнале условие: Участник != Контакт текущего пользователя. В таком случае БП будет запускаться в случае, когда Ответственный не является автором активности.

Показать все комментарии

Добрый день, уважаемые коллеги!

Подскажите пжл., как сделать автоматический запуск бизнес-процесса в определенное время, день, месяц и т.д.?
Например, ежедневно в 10-00 утра запускается процесс уведомления сотрудников на e-mail о просроченных задачах...

Нравится

5 комментариев

Добрый день!
Для решения задачи можно воспользоваться планировщиком. Посмотрите похожие темы на форуме:
http://www.community.terrasoft.ru/forum/topic/12917
http://www.community.terrasoft.ru/forum/topic/13945

На академии можно найти описание класса по ключевому слову Scheduler:
https://academy.terrasoft.ua/documents/technic-sdk/7-8/obshchee-opisani…

Спасибо!

Жаль конечно, что я не программист...
А, что, нельзя добавить такой функциональный элемент в бизнес-процесс?
А то куда не сунься - везде код надо писать...

Так делайте предложение, идею - по мне так супер функционал был бы. Может поддержат да подхватят сильные форума сего.
"Программные Технологии", как вам идея модуля расширения? Нам за креатив бесплатную лицензию :cool:
Вынести в интерфейс управление автоматическим запуском процессов, расписанием, выбор процесса, параметров...

Коллеги, Добрый день!

Александр, как в воду глядит:smile: Уже делаем продукт с данным функционалом.
В декабре будем релизить и в ближайшее время сделаем анонс!
Не пропустите:smile:

С уважением,
Зайчиков Илья

Отлично!... Ждем-с!...

Показать все комментарии

Добрый день.

Хочу получить лид, который изменил определенный контакт, но почему то в БП при выборе

условий как в скриншоте появляется какая то сумма, что это такое и как от этого избавиться?
Заранее спасибо.

сумма

Нравится

4 комментария

Здравствуйте. Вы просто считываете из объекта "Контакт", а нужно из объекта "Лид", а после в фильтрах выбрать колонку "Изменил" и выбрать нужный контакт.

А если я хочу узнать фамилию этого контакта?
Логично считывать за 1 ход.
Если считывать за 2 хода, всегда появляется такая ошибка, при сохранении.
а

"Калёнов Дмитрий Алексеевич" написал:

А если я хочу узнать фамилию этого контакта?

Логично считывать за 1 ход.

Если считывать за 2 хода, всегда появляется такая ошибка, при сохранении.

а

В лиде мы должны считать колонку "Изменил", а в чтении контакта ее надо сравнивать с Id контакта.
И да, это нужно делать в 2 этапа.

Здравствуйте!

Немного не понятна ценность такой задачи.
Есть два варианта решения:
1) Прочитать первую запись лида, которая была изменена определенным контактом (можно сделать в одну итерацию)
2) Прочитать, кто изменил лид (делается в два чтения данных).

Показать все комментарии

В БП в элементе "Страница редактирования" в блоке "считать элемент выполненным" стоят условия - поле с датой не равно этому же полю из элемента "Читать данные" в начале БП. По сути условие - должна быть изменена дата. При сохранении карточки в журнале выдает ошибку "Неправильный синтаксис около конструкции ">"". Если извлечь из элемента текст запроса, то после ">" ничего нет. При сравнении даты с параметром - тоже самое.

Нравится

3 комментария

В версии 7.8.0 такого нет.

Возможно у чтения данных не установлен признак "Сериализовать в БД"

Признак "Сериализовать в БД" установлен.

Версия какая? Нами выявлены множественные ошибки при работе с параметрами в БП 7.8.2. Решение вырубить проверку корректности заполнения поля. Наибольшие проблемы с элементом "Читать данные". Проявляется, если используется несколько полей из "Читать данные" в рамках одного элемента БП. Есть скрипт, который надо пустить в консоли браузера. Побочный эффект - процесс станет обязательно компилируемым.

Показать все комментарии

Доброго времени суток.

Пожалуйста, подскажите ответ на следующий вопрос: как можно получить параметр bpResult строкового типа из бизнес-процесса UsrProcess1 (после его выполнения) в исходный код (JS) схемы раздела "Контрагенты" ?

То есть что-то вроде: string result = ProcessModuleUtilities.UsrProcess1.bpResult;

Нравится

1 комментарий

Здравствуйте !

Пожалуйста, подскажите, как решить следующую задачу.

В пользовательском пакете (управление конфигурацией) есть готовый исходный код веб-сервиса UsrSourceCode1. Как бизнес-процессу использовать написанный конфигурационный сервис и передать ему входные параметры?

Например, нужно посчитать сумму счетов по контрагенту. Из схемы раздела "Контрагент" запускается бизнес-процесс, передав входные параметры. В свою очередь, бизнес процесс обращается к сервису для подсчета суммы счетов. В веб-сервисе эта сумма считается, и результаты возвращаются бизнес-процессу.

Версия: bpm'online sales enterprise 7.8

Нравится

3 комментария

Здравствуйте,
Проверю кое-что и отвечу в соседней теме:
http://www.community.terrasoft.ru/forum/topic/24733
Незачем создавать дубли.

Здравствуйте!

Пример вы можете посмотреть в процессе CreateInvoiceFromOrder (Создание счета на основании заказа). В элементе "Задание-сценарий" вызывается метод CreateInvoice(). Этот метод вызывает метод CreateEntity() схемы OrderInvoiceHelper. Создание счета реализовано в схеме OrderInvoiceHelper.

Спасибо большое за ответ. Буду разбираться. Извините за дубли.

Показать все комментарии

Здравствуйте !

Пожалуйста, подскажите, как решить следующую задачу.
Есть бизнес-процесс UsrProcess1. В пользовательском пакете (управление конфигурацией) есть исходный код веб-сервиса UsrSourceCode1.

Как бизнес-процессу использовать написанный конфигурационный сервис и передать ему входные параметры?

Например, нужно посчитать сумму счетов по контрагенту. В веб-сервисе эта сумма считается, принимая на вход id контрагента. То есть нужно передать бизнес-процессу идентификатор контрагента и запустить сервис.

Нравится

3 комментария

Какая версия?

Здравствуйте.
bpm'online sales enterprise 7.8 пробная

Здравствуйте,
Если сервис создан в той же bpm’online что в БП, то просто можно создать экземпляр класса, и вызвать нужный вам метод. Пример привели в соседней теме, в комментарии:
http://www.community.terrasoft.ru/forum/topic/24735#comment-65599

Показать все комментарии

Добрый вечер коллеги!
Возникла проблема с формированием тела для отправки письма.
Я все выполнил в точности, как написано здесь, однако письмо приходит не с текстом, который я ожидаю, а прямо в виде:
"[#[IsOwnerSchema:false].[IsSchema:false].[Parameter:{b5e76cd0-4fa3-4004-9d26-144caa0b5973}]#]"
Что бы я не менял, результат такой же. Письмо отправляется, процесс работает нормально, в параметр передается правильное значение, ошибок не возникает, но в результате получаю не то, что мне нужно.
Подскажите, с чем это может быть связано?
Версия 7.8

Нравится

2 комментария

Александр, рекомендую использовать инструкцию:
http://www.community.terrasoft.ru/blogs/12527

"Демьяник Алексей" написал:

Александр, рекомендую использовать инструкцию:

http://www.community.terrasoft.ru/blogs/12527


Благодарю, помогло. Я не верно передавал значение формулы. А именно из формулы я передавал в созданный мной параметр, а уже потом в тело письма. Скорее всего происходила конвертация в строку, поэтому и получалось такое сообщение. Спасибо!

Показать все комментарии

Здравствуйте !

Пожалуйста, подскажите, как решить следующую задачу.
Есть бизнесс-процесс UsrProcess1. В пользовательском пакете (управление конфигурацией) есть исходный код веб-сервиса UsrSourceCode1.

Как бизнесс-процессу использовать написанный конфигурационный сервис и передать ему входные параметры?
Например, нужно посчитать сумму счетов по контрагенту. В веб-сервисе эта сумма считается, принимая на вход id контрагента. То есть нужно передать бизнес-процессу идентификатор контрагента и запустить сервис.

Нравится

1 комментарий