Как получить и обработать результирующие параметры при вызове БП из кода?

В версии 7.17.1 обещали получение параметров из интерпретируемого процесса, но примеров как и что нету. Запуск я проводил с помощью класса FlowEngine и метода RunProcess.

В sdk по классу flowengine ничего не добавилось.

Нравится

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

FlowEngine - устаревший класс и он не рекомендуется к использованию.

Для работы с процессами лучше использовать экземпляр IProcessExecutor который можно получить из UserConnection. Пример запуска процесса с получением одного параметра:

string processName = "UsrCustomProcess";
string paramName = "UserProcessParameter";
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Необходимо указание типа параметра
int result = processExecutor.Execute<int>(processName, paramName);

Пример запуска с получением нескольких параметров:

string processName = "UsrCustomProcess";
string[] paramNames = { "UserProcessParameter0", "UserProcessParameter1" };
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Второй аргумент - список входящих параметров
ProcessDescriptor processDescriptor = processExecutor.Execute(processName, new Dictionary<string, string>(), paramNames);
// Получение параметров
IReadOnlyDictionary<string, object> result = processDescriptor.ResultParameterValues;

 

FlowEngine - устаревший класс и он не рекомендуется к использованию.

Для работы с процессами лучше использовать экземпляр IProcessExecutor который можно получить из UserConnection. Пример запуска процесса с получением одного параметра:

string processName = "UsrCustomProcess";
string paramName = "UserProcessParameter";
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Необходимо указание типа параметра
int result = processExecutor.Execute<int>(processName, paramName);

Пример запуска с получением нескольких параметров:

string processName = "UsrCustomProcess";
string[] paramNames = { "UserProcessParameter0", "UserProcessParameter1" };
IProcessExecutor processExecutor = UserConnection.ProcessEngine.ProcessExecutor;
// Второй аргумент - список входящих параметров
ProcessDescriptor processDescriptor = processExecutor.Execute(processName, new Dictionary<string, string>(), paramNames);
// Получение параметров
IReadOnlyDictionary<string, object> result = processDescriptor.ResultParameterValues;

 

n.isaev,

А как передать в словарь <стринг, стринг> в качестве стринга коллекцию элементов как параметр? 

Андрей, Вы можете сериализовать коллекцию в JSON и передать как параметр.

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

Добрый день!

 

Поделитесь, пожалуйста, опытом настройки трекинга.

Возможно ли отслеживать следующие действия пользователей на сайте с помощью трекинга:

  • Количество просмотров страницы
  • Время, проведенное на сайте
  • Продолжительность индивидуальной сессии
  • Количество сессий
  • Дата и время последней активной сессии
  • Промежуток времени между сессиями
  • Конверсии (количество заполнений форм)
  • Количество сессий за неделю
  • Загруженный контент

Спасибо!

Нравится

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

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



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



Спасибо за идеи! Они будут транслированы на соответствующую команду для рассмотрения возможности добавления подобной логики в будущих версиях.

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

Добрый день!

 

Уточните, пожалуйста, по работе коннектора к Zoom "Zoom meeting connector for Creatio":

1. Меняется ли Статус Активности, к которой подключена Zoom конференция, в зависимости от статуса Zoom конференции? Или статус Активности нужно менять вручную?

2. Сколько нужно для организации платных аккаунтов Zoom, чтобы сотрудники могли использовать Zoom из Creatio при подключенном коннекторе? Если только один, то что будет если несколько сотрудников назначат разные Zoom встречи на одно и тоже время?

 

Спасибо!

Нравится

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

Мария, добрый день!

 

1. Статус активности нужно менять вручную.

2. Zoom не позволяет проводить 2 встречи в одно и тоже время под одним пользователем. Поэтому количество аккаунтов в Zoom вам необходимо определить в зависимости от количества назначаемых встреч. Проверка на пересечение Zoom активностей на стороне Creatio не реализована. Такую проверка ответственная команда планирует добавить в следующей версии коннектора.

Лазоренко Ирина,

 

Ирина, благодарю за ответ!

 

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

 

Если один аккаунт для каждого пользователя, то в этом случае он не обязательно должен быть платным? Наверное, можно и бесплатный аккаунт использовать, если пользователю достаточно возможностей в нем?

 

Спасибо!

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

Необходимо создать деталь, которая отображается в разделе Товары, в которой выводится список документов в которой этот товар участвовал, (Поступление, Реализация и т.д.) и соответственно ссылка на документ. Как это можно реализовать?

Нравится

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

То что вы описали это обычная деталь для объекта документы, такая деталь уже есть DocumentDetailV2, выводите ее на карточке раздела Товары. Для создания связи детали в объекте документа, должно быть справочное поле в котором задан товар.

Полозюков Евгений Петрович,

Да, извините, я не идеально все описал, имелось ввиду, документы разные, типо (Реализация, Поступление и т.д.)

Это разные разделы или это поле поле с типом в документе? Что от этого меняется?

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

Доброе время суток!

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

 Коннекторы поддерживают интеграцию с несколькими базами,но как быть с дублями(контрагенты и т.д., которые могут повторяться.)? 

Спасибо.

Нравится

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

Использовать колонки дедупликации. В некоторых коннекторах такая возможность реализована.

Дмитрий А.,

А Можно конкретный пример такого коннектора

Левон Т. пишет:

Дмитрий А.,

А Можно конкретный пример такого коннектора

 Да

BC 1C connector for Creatio

 

Дмитрий А.,

Уточнял, интеграция с несколькими базами чревата последствиями(дубли и т.п.)

А есть кто-то, кому удалось интегрировать несколько баз?

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

Нужно реализовать обновление данных с помощью класса UpdateSelect. Но не работает группировка условий.

UPDATE [dbo].[TestTbl]
SET [val2] = [source].[val2]
FROM [dbo].[TestTbl2] [source]
WHERE ([source].[id] = [TestTbl].[id] OR [source].[id2] = [TestTbl].[id2]) AND
	([source].[id3] = [TestTbl].[id3] OR [source].[id4] = [TestTbl].[id4])

При формировании аналогичного запроса для выборки (Select) - все работает корректно.

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

При исследовании ошибки было выявлено, что ошибка возникает во внутренней логике в dll Terrasoft.Core.MSSql, так как группа методов .Where().OpenBlock() в коллекции условий запроса создала пустой QueryCondition, а в dll нет проверки на возможность пустого условия.

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

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



Мое предположение: непредвиденный кейс в dll.

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

Владислав, а зачем делать блок с одним условием? Обычно блоки делают, чтобы внутри or и снаружи and или наоборот. Пример, но только Select, есть тут.

Если сделать полноценный блок, тоже Update будет с ошибкой?

И, если не затруднит, приложите код текстом, а не скриншотами.

Зверев Александр пишет:

Владислав, а зачем делать блок с одним условием? Обычно блоки делают, чтобы внутри or и снаружи and или наоборот. Пример, но только Select, есть тут.

Если сделать полноценный блок, тоже Update будет с ошибкой?

И, если не затруднит, приложите код текстом, а не скриншотами.

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

Здесь проблема именно в классе UpdateSelect, другие классы (Select, Update) работают нормально с такими условиями.

Предоставленный метод из базовой dll вызывается только для UpdateSelect и в методе нет проверки.

 

var select1 =
    new Select(_userConnection)
    .Column("source", "id")
    .Column("source", "val2")
    .From("TestTbl2", "source")
    .Where("source", "id").IsEqual("TestTbl", "id");
 
Console.WriteLine(select1.GetSqlText());
Console.WriteLine("----------------------------------------------------");
 
var select2 =
    new Select(_userConnection)
    .Column("source", "id")
    .Column("source", "val2")
    .From("TestTbl2", "source")
    .Where().OpenBlock("source", "id").IsEqual("TestTbl", "id").CloseBlock();
 
Console.WriteLine(select2.GetSqlText());
Console.WriteLine("----------------------------------------------------");
 
var update1 =
    new UpdateSelect(_userConnection, "TestTbl", "TestTbl")
    .Set("val2", Column.SourceColumn("source", "val2"))
    .From("TestTbl2", "source")
    .Where("source", "id").IsEqual("TestTbl", "id");
 
Console.WriteLine(update1.GetSqlText());
Console.WriteLine("----------------------------------------------------");
 
var update2 =
    new UpdateSelect(_userConnection, "TestTbl", "TestTbl")
    .Set("val2", Column.SourceColumn("source", "val2"))
    .From("TestTbl2", "source")
    .Where().OpenBlock("source", "id").IsEqual("TestTbl", "id").CloseBlock();
 
Console.WriteLine(update2.GetSqlText());

 

 

Стоит добавить простую проверку:

Ошибку обнаружили, разработчики занимаются ее решением. 

В качестве обходного решения необходимо использовать Select и Update отдельно.

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

После установки дополнения "Contact connections chart for Creatio" на вкладке "Who knows who" не отображаются данные указанные на детали "Взаимосвязи".

Может кто-то знает в чем может быть причина?

Нравится

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

У вас указано, что система версии 7.17.

С версии 7.17.0 новый же дизайнер взаимосвязей, где кардинально была изменена логика работы и хранения взаимосвязей.

Дата последнего обновления дополнения "Contact connections chart for Creatio": 27.10.2020

Скорее всего дополнение не поддерживает новую структуру взаимосвязей.

Олег,

 

обратите внимание, что это приложение совместимо только с СУБД MS SQL. Скорее всего установили приложение на несовместимый сайт.

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

Добрый день!

Подскажите, пожалуйста,как сделать чтобы БП запускался при нажатие на вкладку в карточки контакта. https://prnt.sc/10yw546

Нравится

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

В BasePageV2 есть функция activeTabChange, в коде карточке замещяете функцию activeTabChange и проверяете activeTab.get("Name"), по результатам проверки код запуска процесса.

В BasePageV2 есть функция activeTabChange, в коде карточке замещяете функцию activeTabChange и проверяете activeTab.get("Name"), по результатам проверки код запуска процесса.

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

Добрый день!

Посоветуйте решение по реализации чатов между сотрудниками(пользователями), желятельно с интеграцией с telegram или watsapp.

Спасибо!

Нравится

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

Добрый!  А почему только между сотрудниками?

В маркетплейсе есть iChat и Beesender

Ссылка на короткое видео по iChat:

https://youtu.be/FUDb_6iitWI

Добрый!  А почему только между сотрудниками?

В маркетплейсе есть iChat и Beesender

Ссылка на короткое видео по iChat:

https://youtu.be/FUDb_6iitWI

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

Добрый день!

Подскажите пожайлусат как сделать чтобы фрейм занимал всю облость окна а не только маленькое окошко ?

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

Нравится

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

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

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