Коллеги, привет!

Подскажите, пожалуйста, как правильно прописать формулу в элементе формула бизнес-процесса?

Необходимо из строки "+38 (099) 999-99-99" вычитать числа и записать их обратно в строку. На выходе должно быть "380999999999".

Заранее благодарю.

Нравится

3 комментария
Лучший ответ

Виктория, мне кажется вот здесь https://community.terrasoft.ru/questions/ubrat-simvoly-v-tekste-s-pomosu-bp описан один в один ваш кейс)

Виктория, мне кажется вот здесь https://community.terrasoft.ru/questions/ubrat-simvoly-v-tekste-s-pomosu-bp описан один в один ваш кейс)

Ну и с Днем Рождения, кстати;) 

Сидоров Александр Валерьевич, спасибо))) 

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

Добрый день!

Руководствуясь статьей "Формулы" на Академии, пытаюсь создать в БП условный поток с проверкой заполненности поля, но при сохранении выдает ошибку:

________________________________________________________________________________________

Нравится

2 комментария
Лучший ответ

Вы пытаетесь сравнить Дату с Guid. Поэтому формула и выдает вам ошибку. Вам нужно сравнивать с DateTime.MinValue

Вы пытаетесь сравнить Дату с Guid. Поэтому формула и выдает вам ошибку. Вам нужно сравнивать с DateTime.MinValue

Сидоров Александр Валерьевич,

 благодарю, разобрался.

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

Здравствуйте!
Возможно ли реализовать использование методов расширения в элементе БП формула.
Столкнулся с таким случаем нужно определить вхождение текущего времени в диапазон.
Написал метод расширения:

namespace Terrasoft.Configuration
{
    public static class AbDateTimeExtensions
    {
        public static bool IsInRange(this DateTime dateToCheck, DateTime startDate, DateTime endDate)
        {
            return dateToCheck.TimeOfDay >= startDate.TimeOfDay && dateToCheck.TimeOfDay < endDate.TimeOfDay;
        }
    }
}

 Но при использовании его в формуле выводит ошибку - http://prntscr.com/mwbc1w

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

В старом  дизайнере процессов можно было в формуле просто вызвать функцию, написанную на C# в том же БП. Сейчас так нельзя. В Вашем случае для такого вычисления вместо блока-формулы можно использовать блок-скрипт, где считать значения из параметров и вызвать функцию, а результат записать в ещё один параметр.

Очень жаль, что нельзя так. Вместо использования одной строчки текста в параметре элемента приходится заводить параметр процесса, добавлять задание сценарий, ждать его публикации и вообще выполнять много лишних действий.

Пащенко Александр Сергеевич,

Хорошая идея. Давайте её залайкаем и, возможно, когда-нибудь эта возможность в bpm'online появится wink

Пащенко Александр Сергеевич, без компиляции бы в любом случае не обошлось. В старом движке процессов компилировать нужно было всегда, а в новом — только если есть элементы на C#.

Зверев Александр,

Так тут же речь не о компиляции, а о методах расширения в базовых элементах процесса, которые единоразово дорабатываются и потом используются везде, где надо, а не каждый раз выполняется дублирование кода в элементе скрипт!

Если какую-то логику нужно часто применять в процессе, можно оформить её в UserTask.

Алла Савельева,

А смысл? Проще делать хэлперы (схема исходного кода) и их использовать в скриптасках. Для чегото более навороченного можно сделать свои действия процесса.

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

Коллеги всем доброго времени суток. Нужна Ваша помощь.

В БП есть элемент Web-сервис в  котором есть массив - http://prntscr.com/kyim63.
Данный массив объектов состоит из двух полей Number и Description - http://prntscr.com/kyimnk
Данные поля необходимо заполнять по следующему правилу из двух выборок - http://prntscr.com/kyin8y
Правила заполнения реализовал следующим образом через тернальные выражения в формуле поля - http://prntscr.com/kyio17http://prntscr.com/kyioa3
Но при отработке элемента Web-сервис видим что массив Communications пустой - http://prntscr.com/kyip7z
Если же посмотреть на данные трассировки двух элементов из которых должна осуществляться выборка видим:
Идем в "Читать Контакты СТО в платформе" - http://prntscr.com/kyiq70 здесь по нулям следовательно логике должно брать значение из другого элемента, идем в "Читать Основной контакт Контрагента" - http://prntscr.com/kyir2v, здесь данные есть, вопрос почему не заполнились в веб-сервисе?
Заранее благодарю за ответ.

Нравится

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

Нужно ещё больше ссылок на prntscr.com.angry

В 7.12 поддержка работы с веб-сервисами из БП только появилась. В 7.13 обещают усовершенствовать, улучшить работу в том числе и с массивами. Есть смысл дождаться релиза и переделать с учётом его возможностей.

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