Товарищи помогите.

БЦ  дергает код на сервере, этот код забирает данные из другой системы и обновляет запись контрагента путем прямого SQL запроса.

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

Есть ли способ из внешней системы путем сетевого запроса, вывести модальное окно у конкретного пользователя? Или какие иные подходы существуют

 

Нравится

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

Чисто в теории:

- код на сервере помимо sql-вставок, генерирует сигнал по web-socket, что изменена запись

-на клиенте развернуть listener, будет принимать сигнал, выдавать пользователям сообщение

Чисто в теории:

- код на сервере помимо sql-вставок, генерирует сигнал по web-socket, что изменена запись

-на клиенте развернуть listener, будет принимать сигнал, выдавать пользователям сообщение

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

Добрый день!

 

Можете подсказать , я хочу через sandbox взаимодействовать двух деталей. Имеется ввиду при выборе запись в  первой детали , должен отобразиться  второй деталь с фильтрованной переданной от первой значение.

В первом детале создал сообщение, и зарегистрировал в методе init.

init: function() {

                    this.callParent(arguments);

                    window.console.log("begin finance come here to show where error");

                    var messages = {

                        "GetFinanceBlock": {

                            mode: Terrasoft.MessageMode.BROADCAST,

                            direction: this.Terrasoft.MessageDirectionType.PUBLISH

                        }

                    };

                    this.sandbox.registerMessages(messages);

                    window.console.log("end finance come here to show where error");

}

 И при выборе запись из таблицы, вызывается метод  rowSelected, где публикуется сообщение:

rowSelected: function(primaryColumnValue) {

                    this.sandbox.publish("GetFinanceBlock", {arg1 : primaryColumnValue}, ["key"]);

                    window.console.log("end publish");

}

 

Во второй деталь метод init добавил subscribe для данного сообщение:

init: function() {

                    this.callParent(arguments);

                    window.console.log(" child come here to show where error");

                    var message={

                        "GetFinanceBlock": {

                            mode: Terrasoft.MessageMode.PTP,

                            direction: Terrasoft.MessageDirectionType.SUBSCRIBE

                        }

                    };

                    this.sandbox.registerMessages(message);

                    this.sandbox.subscribe("GetFinanceBlock", this.onMessageSubscribe, this, ["key"]);

                    window.console.log(" child end subscribe");

                },

                onMessageSubscribe: function(args) {

                    window.console.log("child call method subscribe args " + args + " " + JSON.stringify(args));

                },

И добавил метод обработчик onMessageSubscribe для анализа передачи данные из первого модуля.

 

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

 

Можете подсказать чем связано такая проблема.

 

С уважием, Асылан.

 

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

 

 

Нравится

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

Если я правильно вас понял, то у вас на странице находится 2 детали.

При выборе определенного значения на Детали №1, должна отобразиться деталь №2.

Сообщение вы публикуете в Детали №1, но принять это сообщение, вы должны на странице, где находятся обе эти детали.

Создайте атрибут, например, в который устанавливайте значение true, когда получено сообщение. А видимость детали повесьте на этот атрибут.

Литвинко Павел,

Да, вы все правильно поняли. Спасибо , попробую . 

Литвинко Павел,

Попробовал анологичная ситуация. Сообщение отправляется, но подписчик не получает.

 

Асылан,

А как вы подписываетесь на сообщение?

Асылан, инструкция по работе с механизмом Sandbox есть в Академии.Возможно, что-то не было учтено, например, в одной указано BROADCAST, а в другой PTP.

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

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

Есть задачка, а хорошее решение придумать не получается. Может быть кто-то подскажет решение.



Для каждой Продажи можно добавить сотрудников в Команду (Данные о продаже - Команда).



Нужно, что бы у всех сотрудников Команды были прав на редактирование карточки Продажи. Проблема заключается в том, что при удалении сотрудника нужно как-то отнимать у него права. Если БП запускается по событию удаление записи, то не понятно какая запись удалена, а следовательно не понятно у кого надо забрать права. 



Скорее всего есть какие-то простое решение, просто думаю не туда.

 

Нравится

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

onDeleting в объекте. Но тогда скорее всего придётся писать функцию по удалению.

onDeleting в объекте. Но тогда скорее всего придётся писать функцию по удалению.

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

В мобильной версии приложение в пакете “Mobile”, в схеме MobileActivityModelConfig yстанавливаются значения по умолчанию:

Terrasoft.sdk.Model.setDefaultValuesFunc("Activity", function(config) {

   var coeff = 1000 * 60 * 5;

   var currentDate = new Date();

   var startDate = new Date(Math.round(currentDate.getTime() / coeff) * coeff);

   var dueDate = new Date(startDate.getTime() + 30 * 60000);

   config.record.set("StartDate", startDate);

   config.record.set("DueDate", dueDate);

   config.record.set("ShowInScheduler", true);

   Ext.callback(config.success, config.scope);

});

 

Моя задача дополнить данный код своими данными. Но когда я, в своем пакете, создал схему и добавил в нее код:

Terrasoft.sdk.Model.setDefaultValuesFunc('Activity', function(config) {

    var record = config.record;

    record.set('AnIsMobileSKU', true);

    Ext.callback(config.success, config.scope);

});

 

То получается, что выполняется только мой код, а код из схемы «MobileActivityModelConfig» не выполняется. Каким образом, в мобильной версии, можно расширить данную схему предустановленного пакета?

Нравится

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

Вы же перекрыли базовый метод, а Вам нужно наследоваться:

Попробуйте в начало Вашей функции добавить строчку типа:

this.callParent(config)

Ответ службы поддержки:



В бизнес-правилах нет наследования.

В мобильной версии используется последняя схема, которая используется в ModelExtensions.



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

Пировских Дмитрий,

Спасибо, буду знать)))) Предположила, что в мобильной версии должно быть реализовано по аналогии с версией для браузера.

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

Коллеги, есть такой шажок в кейсе.

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

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

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

Работает вот так (неинтерактивно).

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

Если в БП выполнение прошло через ожидание сигнала, БП как бы отрывается от сессии пользователя/интерфейса?

 

 

Нравится

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

Добрый день!

В условии у Вас написано если результат (true), то меняется стадия, а какой результат, результат чего? Какой параметр читается? Результат чего должно быть true?

В процессе надо добавить параметр в который будет записываться значение true или false, а потом указать, что если этот параметр true, то менять стадию

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

Калушка Д.,

по завершении процесса в безусловном порядке переходим на указанную стадию, поэтому просто true

я проверял, если как положено писать [#XX.YY#]==true, поведение не меняется

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

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

Обычно такие действия, меняющие стадию, делают не в обработчике перехода на другую стадию, а в БП, который запускается по отдельной записи. Например, в разделе обращений сделать «Пометить как спам» и «Пометить как дубль», которые отменяют обращение.

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

тем не менее, из документации это не очевидно.

Кстати, в текущей версии https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-keysa-… элементу кейса "Подпроцесс" не соответствуют действительности, в дизайнере кейсов по другому выглядит.

Там внизу есть кнопки обратной связи, можете написать им, как всё на самом деле.

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

Добрый день!

При сохранении импортированного процесса пугает таким

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

как убрать?

Нравится

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

Борис, добрый день!

Это стандартное сообщение предупреждение.

Вероятнее всего, убрать его совсем нельзя.

В данном случае прийдется сделать выбор))))

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

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

Подробнее о версионности процессов тут.

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

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

может быть, есть возможность в БД какое нибудь поле подправить?

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

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

Добрый день. 

Система не позволяет пройти в раздел "Конфигурирование разработчиком", выдаёт ошибку. Система полностью не работоспособна по причине отсутствия продления лицензий. Под Supervisor пытаемся отправить запрос на пакет лицензий. 

Прикрепленные файлы

Нравится

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

Попробуйте зайти сразу в менеджер лицензий:

kkm-crm/Lic/LicManager.aspx

А если нужно зайти сразу в конфигурацию и опубликоваться, можно после логина ввести kkm-crm/0/dev

Добрый день. Спасибо за предложенные способы. Но раньше доступ производился через интерфейс рабочей формы, поэтому и проблему надо решать.

Добавить комментарий

Блинов Герман пишет:

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

Потом после атворизации на сайте, зайдите сразу в конфигурацию так:

 kkm-crm/0/dev, после чего нажмите Скомпилировать все. После этого у вас все должно заработать в штатном режиме.

Литвинко Павел,

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

Если лицензии перезагрузили, конфигурацию опубликовали не помогло, попробуйте сайт и пул перезапустить в IIS и очистить Redis.

Если и это не поможет, лучше обратиться в поддержку.

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

На карточке Лида есть деталь Продуктов. Сделал эту деталь (деталью с редактируемым реестром). Добавил еще несколько полей своих.

После добавлении записи, при клику на эту запись в гриде появляется ошибка рис. 1:

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

После того как я закрываю страницу и открываю все работает отлично. Подозреваю что нужно после добавления сделать this.reloadGridData(); Но точно не знаю в каком ивенте. Подскажите пожалуйста.

Нравится

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

В предыдущей теме было описано решение для детали с множ. выбором + ред. реестром. Тут как минимум не вижу добавление LookupMultiAddMixin. Поэтому методы и не отрабатывают...

Вам не помогло то, что я ответил в своем топике? - https://community.terrasoft.ru/questions/detal-s-mnozestvennym-vyborom-0

 

 Alex Zaslavsky, Проблема в том что эти события не срабатывают рис.1



 

 

В предыдущей теме было описано решение для детали с множ. выбором + ред. реестром. Тут как минимум не вижу добавление LookupMultiAddMixin. Поэтому методы и не отрабатывают...

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

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

О компании

Компания ООО «Термо Техно» включает в себя две компании — ООО «Термо Техно Инжиринг» и ООО «ТТ Аналитика». ООО «Термо Техно Инжиринг» занимается сервисным обслуживанием аналитического и измерительного оборудования, поставкой запасных частей, разработкой программного обеспечения, разработкой и внедрением новых продуктов, предоставляет услуги по аудиту процессов аналитического контроля, занимается проектированием лабораторий для промышленных предприятий. ООО «ТТ Аналитика» обеспечивает поставки аналитического и измерительного оборудования для лабораторного контроля, занимается проектированием и внедрением автоматических систем аналитического контроля.

Причины внедрения bpmonline

До начала роботы в bpm’online сотрудники компании выполняли задачи в удобном для них формате, то есть отсутствовал унифицированный алгоритм действий по взаимодействию с клиентами. Это увеличивало время на контроль выполнения задач и составление аналитики по общим показателям работы.

Задачи внедрения bpm’online sales enterprise:

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

 

Выполненные настройки

Процесс внедрения bpm’online в компании стартовал с автоматизации процессов тендерного производства. Для организации работы с тендерами адаптирован раздел [Лиды]. В карточке лида добавлена вкладка «Тендерная информация», на которой созданы следующие поля:

  • название площадки;
  • объект запроса;
  • дата окончания подачи заявок;
  • номер процедуры.

 

С помощью автогенерируемых задач настроен алгоритм работы тендерного отдела. Работа с тендером начинается со стадии «Квалификация» и выполняется по базовому процессу «Управление лидом». На стадии «Распределение» автоматически создается проект, в который дублируются необходимые данные из лида.

 

После создания проекта выполняются подготовительные работы для участия в процедуре. Для ответственного сотрудника тендерного отдела генерируются задачи. Далее развитие процесса зависит от принятого решения тендерным комитетом об участии в тендере. Если принято положительное решение, то система автоматически создает продажу, и ответственный сотрудник продолжает работу в карточке продажи. Если решение отрицательное, то лид переходит в состояние «Потребность отсутствует».

 

Продажа, в свою очередь, также взаимосвязана с проектом. Алгоритм действий в разделе [Продажи] реализован через кейс менеджмент.  Кейс содержит следующие стадии:

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

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

 

В разделе [Договоры] реализовано визирование, которое автоматизирует согласование различных типов договоров. Процесс визирования зависит от таких переменных: тип договора, подразделение, вид договора и юридическое лицо. В данном процессе визирования система ожидает визы от всех участников процесса.

 

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

Внедрение bpm’online позволило также получать аналитику по таким показателям:

  • среднее время согласования договора;
  • количество успешных лидов/продаж за отчетный период;
  • количество неуспешных лидов/продаж за отчетный период;
  • количество тендеров в зависимости от площадки.

Результат

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

Также в планах развития компании — реализация постконтрактного сопровождения проектов в bpm’online.

 

 

Нравится

Поделиться

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

Добрый день.



Есть ситуация: две группы разработчиков работают над одним bpm-проектом решая при этом разные задачи.



Подскажите, как можно организовать процесс разработки в этом случае? Получится ли использовать несколько SVN-репозиториев (branches у каждой команды разработки и trunk-ветка)? Какие еще можно использовать подходы и программы для групповой разработки bpm'online?

Нравится

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

1) Если товарищи в одной комнате и работают в разных схемах, то в принципе можно создать 1 ветку и в ней работать. Будут, конечно, ситуации вида "Ваня! Отпусти схему, мне надо метод перенести!". Но в целом для небольшой группы сойдет.

2) По поводу разных веток - да. Делаете trunk, в bpm привязываете trunk-ветку, в ней создаёте пакет. Далее в svn копируете пакет по разным веткам, ведёте разработку, сливаете всё снова в trunk, в bpm обновляете пакет. Ну это в общих словах.

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

1) Если товарищи в одной комнате и работают в разных схемах, то в принципе можно создать 1 ветку и в ней работать. Будут, конечно, ситуации вида "Ваня! Отпусти схему, мне надо метод перенести!". Но в целом для небольшой группы сойдет.

2) По поводу разных веток - да. Делаете trunk, в bpm привязываете trunk-ветку, в ней создаёте пакет. Далее в svn копируете пакет по разным веткам, ведёте разработку, сливаете всё снова в trunk, в bpm обновляете пакет. Ну это в общих словах.

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

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