Здравствуйте! Интересует вопрос как я могу отдавать запросы из системы.
Например мне нужно сделать автоматический отчет про количество заявок по продуктам на каждого менеджера. Я из внешнего приложения могу делать запрос и в параметре передавать код который соответствует менеджеру. Могу ли я както сформировать ответ на этот запрос в БП и передать результат в Json или в чемто другом? И как это сделать? Спасибо.

Нравится

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

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

Вы можете запустить процесс, передав в него нужный параметр. Также в результирующем параметре процесса Вы можете получить результат выполнения процесса, например строку JSON.
Более подробно:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/zapusk-process…

Запускать процессы через Execute я умею. А вот отдавать результат запроса внешнему приложению - такого в этой статье нету. Это вообще возможно? Где можна посмотреть пример реализации?

Или можна и подругому решить мою задачу.
Можна ли достучаться к базе данных из внешнего приложения?
Если да, то с какими параметрами? Какой Порт, Логин, Пароль?
Можна ли посмотреть какие есть таблицы и какие поля в таблицах?
Просто когда версия онсайт то я могу к базе обратиться извне, а вот когда ондеманд как это сделать - не знаю. Какой Порт, Логин, Пароль?

Можно достучаться по OData.
Пример описан здесь:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/odata

Что касается запуска процесса, Вы можете сделать следующее:
1) Создать процесс MyProcess с параметрами ContactId (идентификатор) и ContactName (строка 250 символов):

  • Начальный элемент
  • Чтение данных контакта с фильтром Id == ContactId
  • Формула: в параметр ContactName установить значение Чтение данных контакта.ФИО
  • Конец процесса

2) В адресной строке ввести ссылку:
http[s]://<адрес_приложения_bpm'online>/0/ServiceModel/ProcessEngineService.svc/MyProcess/Execute?ResultParameterName=ContactName&ContactId=410006e1-ca4e-4502-a9ec-e54d922d2c00

Посмотрите результат выполнения.

ЗЫ. Как-то небезопасно обращаться в запросах к БД, передавая все параметры. Или я не прав?

То что вы написали - мне понятно. По ContactId читаем контакт и в процессе передаем в параметр ContactName ФИО. Но я спрашивал о другом.

Как мне сделать чтобы выгрузить из BPM в другую систему файл из результатом запроса.

А еще лучше - могу ли я делать запросы извне прямо в Базу данных, минуя CRM систему?

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

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

Это получается что в нашей базе данных лежат еще какието чужие базы данных? Мне казалось что у вас для каждого клиента своя база данных, доступ к которой идет через порт и нужно знать логин и пароль? И таким образом есть доступ только к своей базе. Разве не так?

Здравствуйте, Николай!

Не совсем так - на одном SQL сервере размещено несколько баз (у каждого своя база). Для доступа к базам используется уникальный пользователь и свой пароль (для каждой базы свой).

Так почему я не могу используя свой уникальный пользователь и свой пароль получить доступ к своей базе?

Из соображений безопасности данных пользователей, на данный момент, мы не предоставляем прямой доступ к БД. Но, есть дополнительная услуга :Размещение на выделенных серверах.
Где доступ к БД возможен.
Обратитесь к Вашему менеджеру.

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

Добрый день.

1. Как отпраить GET-запроса на сторонний ресурс,получить ответ в формате json?
2. Отобразаить полученные данные в карточке клиента (контрагенты и контакты)?
3. Это программировать надо? Если да, то куда вписывать код?

Спасибо!

Нравится

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

Получить текст ответа сервера можно при помощи объекта MSXML2.XMLHTTP.6.0.

var webAddress = 'http://example.com/example';
var xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.6.0");
xmlHttpReq.open("GET", webAddress, false);        
xmlHttpReq.send();
var MyText = xmlHttpReq.responseText;

Он возвращает текст (в Вашем случае JSON), его можно превратить в JS-объект кодом вроде:

eval('(' + MyText + ')')

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

А есть на скринах,где показывается,как внедрять код в скрипт в СРМ.
Я как понимаю,требуется написать код,внедрить его.
Я совсем новичек в системе.

Предыдущий комментарий был по 3.Х. Если у Вас 7.5, там всё иначе. Для вопросов по ней есть специальный раздел.

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