Коллеги,

Помогите, пожалуйста, разобраться с курсами валют. Я сделал веб-сервис, который передает курсы валют из 1С в bpmonline. Бизнес-процесс bpmonline запускает этот веб-сервис и добавляет запись в сущность "Курсы валют". Поле Rate (курс) заполняется значением из 1С, но есть еще такое поле как RateMantissa. Судя по всему, это поле влияет на то как курс представляется в bpmonline. Например, если я вручную, через интерфейс bpmonline, добавляю курс доллара как 27.04, то в таблице БД поле Rate устанавливается в 0.0370, а RateMantissa=03698224852071006. Скажите, пожалуйста, что это за RateMantissa такая и как мне ее рассчитать, чтобы в бизнес-процессе передать курс полученный из веб-сервиса? Заранее спасибо за ответ. 

Нравится

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

В поле RateMantissa содержится дробная часть курса в неокругленном виде, причем обратите внимание, что данное поле текстового, а не числового формата.

Что такое мантисса и зачем она нужна можно почитать здесь и здесь.

В поле RateMantissa содержится дробная часть курса в неокругленном виде, причем обратите внимание, что данное поле текстового, а не числового формата.

Что такое мантисса и зачем она нужна можно почитать здесь и здесь.

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

Спасибо за ответ. Посмотрев на код клиентских схем я установил, что в случае когда в 1С курс доллара равен 27.04, в bpmonline поле Rate в сущности CurrencyRate следует передавать как результат деления 1/27.04, а RateMantissa я передаю как (1/27.04).ToString().Split('.',',')[1]. Возможно, это кому-нибудь поможет.

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

Не получается настроить шаблон! Могу поменять стиль колонок, их порядок.

Но как сделать так, чтоб на основании выгруженных данных автоматически строились нужные мне графики?

 

Нравится

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

Если я правильно поняла, что Вы хотите получить, то с помощью существующей функциональности настроить такую аналитику не получится.

Вы можете взять за основу датасорса для графиков структуру выгружаемой таблицы в Excel и на основании её в Excel настроить графики, потом сохранить настроенный файл.

В будущем Вы сможете использовать данный файл для получения нужной аналитики - Вы будете выгружать обновленные данные в другой файл Excel, а в уже настроенном подменять датасорс на тот, который у Вас выгрузится.

Если я правильно поняла, что Вы хотите получить, то с помощью существующей функциональности настроить такую аналитику не получится.

Вы можете взять за основу датасорса для графиков структуру выгружаемой таблицы в Excel и на основании её в Excel настроить графики, потом сохранить настроенный файл.

В будущем Вы сможете использовать данный файл для получения нужной аналитики - Вы будете выгружать обновленные данные в другой файл Excel, а в уже настроенном подменять датасорс на тот, который у Вас выгрузится.

Из документации к приложению:

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

Так что ничто не мешает вам в шаблон добавить графики и при  формировании по шаблону они будут подхватыватся!

Если нужно более сложное форматирование то формировать отчеты Excel можно на c# используя Open XML SDK

Григорий Чех,

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

Спасибо за ответы! Попробую разобраться с Open XML SDK

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

1. При установке дополнения Advanced excel reports for bpm’online на дэмку, было сообщение, что дополнение установлено не корректно. Но судя по логу процесса, ошибок при установке не было.

2. Отчет сформировался, но при скачивании пишет, что "такая-то страница не найдена" error 404.

Было такое у кого-то? как с этим бороться?

Нравится

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

В описании к приложению указано что:

- функциональность формирования отчетов по установленному расписанию и сохранения в указанную папку доступна только для сайтов, развернутых on-site

Скорее всего это связано с ограничениями по безопастности, на использование (загрузку) внешних (не входящих в поставку дистрибутива) библиотек :)

Напишите о возникших проблемах в поддержку данного дополнения по адресу bpmonlinelabs@bpmonline.com.

В описании к приложению указано что:

- функциональность формирования отчетов по установленному расписанию и сохранения в указанную папку доступна только для сайтов, развернутых on-site

Скорее всего это связано с ограничениями по безопастности, на использование (загрузку) внешних (не входящих в поставку дистрибутива) библиотек :)

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

Нужно переименовать объект раздела. БПМ выбивает, что элемента с таким именем нет. Как же переименовать объект?

Нравится

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

Можете подробнее описать, каким образом Вы пытаетесь переименовать объект раздела (и желательно добавьте скриншоты)?

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

Добавил в объект Unit справочное поле со ссылкой на справочник языков.

А как вынести это поле на страничку единицы измерения?

Изображение удалено.

Нравится

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

Создайте свою страницу редактирования для справочника, подробнее описано тут 

Создайте свою страницу редактирования для справочника, подробнее описано тут 

Григорий Чех,

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

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

Всем привет. 

Продукт bpmn SDE 7.13.2.934

Подскажите, пожалуйста, каким образом реализовать выбор Сервиса в зависимости ото выбранной КЕ. 

Из коробки требуется выбрать сервис и только потом КЕ, но дело в том, что всегда легче узнать с какой КЕ проблема и выбрать сервис для неё. Наверняка этот кейс сильно распространён

Нравится

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

В разделе фильтрация одного поля по другому делается при помощи бизнес-правил. Они настраиваются в мастере раздела. Стандартно КЕ не фильтруется по сервису, как и наоборот, их можно выбирать в любом порядке. Сервис блокируется бизнес-правилом при пустом сервисном договоре.

Зверев Александр, есть ли примеры настройки подобного(фильтрация) БП ?  

Достаточно переключиться в мастере раздела на нужную вкладку и посмотреть существующие бизнес-правила. Либо см. документацию. Их бывает 4 разновидности, в том числе и фильтрация:

scr_section_wizard_rules_designer_action.png

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

Для реализации задуманного нужно сделать следующее - задать всем КЕ при импорте "тип" и добавить суррогатное поле "тип КЕ" в каталоге услуг. 

После этого сравнивать два поля. Выглядит это примерно следующим образом: 

Кстати, разрабам на заметку - подписи "Если" , "То", а также сама инфографика, при выборе фильтра значений, сбивают с толку.

Коллеги, спасибо за помощь. 

 

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

Извиняюсь за возможно глупый вопрос, только начинаю работать с системой.

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

Условно говоря, можно ли как-то свой пакет сделать по умолчанию для сохранения всех таких настроек?

Допустим, мне нужно отредактировать карточку контакта, добавить поля и хочется для этого использовать мастер раздела, но потом эти настройки сохранить в своем пакете и загрузить в SVN. Какова последовательность действий должна быть?

 

Нравится

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

Создайте свой пакет, укажите его в системной настройке "Текущий пакет".

Перезайдите в систему, возможно понадобится очистка рэдиса для применения изменений.

Создайте свой пакет, укажите его в системной настройке "Текущий пакет".

Перезайдите в систему, возможно понадобится очистка рэдиса для применения изменений.

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

Добрый день!

Возник вопрос при правке данных сразу после создания записи. Система пишет ошибку и не отрабатывает как ожидалось. БП создает запись и далее сразу же ее пытаюсь изменить в разделе "После добавления записи".

Entity.SetColumnValue("Name","txt1");

Entity.Save();

return true;

Можете подсказать, что не так? GetColumnValue отрабатывает, а вот с изменением и дальнейшим сохранением операция не проходит.

Нравится

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

Сразу же у меня возникли вопросы, какая именно ошибка у вас возникает?

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

Григорий Чех,

Изначально требуется вызывать WS, записи на выходе парсить и создавать/обновлять записи в отдельном справочнике.

На выходе из WS получаем:

{"results":[{"id":"1", "login":"qwe1", "name":"qwe1"},{"id":"2", "login":"qwe2", "name":"qwe2"},{"id":"3", "login":"qwe3", "name":"qwe3"}]}

Если не ошибаюсь, блок по работе с WS в БП не умеет корректно обрабатывать такие ответы.

Во всяком случае видел в Сообществе такого рода комментарии.

Так что сейчас пробую весь ответ внести в промежуточную служебную форму, удалить лишнее, оставив только JSON, и описать парсинг JSON с логикой по созданию/обновлению записей.

На всякий случай сразу уточню. Можно ли без c# только блоками БП настроить парсинг этого дела?

Вариант с зацикливанием проверю дополнительно.

Спасибо!

Александр Кулиш пишет:

На всякий случай сразу уточню. Можно ли без c# только блоками БП настроить парсинг этого дела?

Для работы с данными служит элемент БП «Формула», но там функций работы с текстом минимум, по сути, только слияние строк.

Проще будет записать результат вызова сервиса в строковой параметр, а потом блоком-скриптом его разобрать, записав в другие параметры или сразу создав кодом записи в таблице базы.

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

Александр Кулиш,

Обсуждалось тут так же обратите внимание на парсинг Json в c# через Newtonsoft.Json

Григорий Чех,

В первой Вашей ссылке рассмотрен пример.

Попробовал его воспроизвести.

Делаю все по нему и в результате система выдает:

System.NullReferenceException: Object reference not set to an instance of an object.

   at Terrasoft.Common.ReflectionUtilities.GetPropertyValueByPath(Object source, String propertyPath)

   at Terrasoft.Core.Process.ProcessModel.Get[T](String propertyPath)

   at Terrasoft.Core.Process.UsrJira2NvgIntegration3MethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

Я так понимаю, то причина может быть в задании-сценарии.

На всякий случай его текст привожу ниже:

var collection = Get<ICompositeObjectList<ICompositeObject>>("WebService1.UsrResult_Out");

var result = new List<string>();

foreach (var row in collection){

    row.TryGetValue("UsrResultsId_Out", out string id);

    row.TryGetValue("UsrResultsLogin_Out", out string login);

    row.TryGetValue("UsrResultsName_Out", out string name);

    result.Add($"{name}:{login}:{id}");

}

Set("Name1", string.Join(" | ", result.ToArray()));

return true;

 

Можете подсказать, в каком направлении при этом стоит копать?

Григорий Чех,

Код успешно компилируется.

В режиме отладки вижу, что первая строка кода:

var collection = Get<ICompositeObjectList<ICompositeObject>>("WebService1.UsrTestResult_Out");

не получает никаких данных.

В чем может быть проблема?

Параметры на выходе блока WS такие

Код сейчас такой использую:

var collection = Get<ICompositeObjectList<ICompositeObject>>("WebService1.UsrTestResult_Out");

var result = new List<string>();

foreach (var row in collection){

    row.TryGetValue("UsrTestResultName_Out", out string name);

    row.TryGetValue("UsrTestResultComment_Out", out string comment);

    result.Add($"{name}:{comment}");

}

Set("Name1", string.Join(" | ", result.ToArray()));

Set("Name2", "qwe");

return true;

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

Добрый день!

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

Как можно вынести свое поле в блок расширенные настройки?

вариант реализации через "добавить элемент" не хотелось бы рассматривать.

 

 

Нравится

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

Добрый день!

При открытии страницы на добавление новой записи любые поля можно предзаполнять (https://monosnap.com/file/tPSQ0trcaysvRU4HTCUngC2G16hyXF). При открытии страницы на редактирование такое сделать нельзя, да и не нужно это делать (перезатирать существующие значения).

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

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

Опочина Любовь,

"При этом создается активность" - тогда предлагаю во внутреннем бизнес процессе Активности добавить логику по заполнению полей при создании активности

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

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

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

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

Добрый день.

Просьба пояснить следующие моменты из документации по разделу "Очереди":

  1. В поле [Процесс] выберите бизнес-процесс, по которому будут формироваться правила обработки записей из очереди на домашней странице - Можно ли где то подробно прочитать каким образом работает штатный бизнес-процесс: "Обработка обращений из очереди в Едином окне" (какие в нем заложены правила обработки записей)
  2. Обрабатывать наполнение очереди могут только те специалисты, для которых на вкладке [Команда] установлен признак [Активен]. По умолчанию данный признак устанавливается для всех физ. лиц, добавленных на деталь. Вы можете снять признак для некоторых специалистов, в таком случае наполнение очереди не будет отображаться для них на домашней странице. Каким образом снимается/ признак "Активен"?

Нравится

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

1. Можно открыть в дизайнере этот процесс «Обработка обращений из очереди в Едином окне» и посмотреть. Он состоит всего из двух элементов: в первом выбирается одна запись из таблицы обращений, отфильтрованная по Id, переданному в параметре, во втором — открывается её карточка.

2. На детали «Команда» открывается карточка из двух полей: справочного с выбранным контактом оператора и галки «Активный», доступной для снятия или проставления.

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

Спасибо за Ваш ответ

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