Вопрос

Добрый день. 

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

У меня такой же вопрос

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

А какие при этом сообщения в консоли возникают?

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

только эту ошибку видно

file: undefined
 line: undefined
 column: undefined
 message: Cannot read property 'value' of undefined 
 date: Fri Oct 19 2018 16:45:09 GMT+0300 (Москва, стандартное время)
 moduleId: ViewModule_RightSideBarModule_CtiPanelModule
 moduleName: CtiPanelModule

Уточните, вносились ли какие-то изменения в конфигурацию bpm'online?

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

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

Серков Игорь Владимирович,

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

Если сайт развернут on-site, тогда ещё очистите Redis.

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

 

Очистка редиса в первую очередь и выйти зайти в систему. Так же советую проверить все настройки телефонии согласно статьи в академии, может чтото зацепили

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

Добрый день!

 

Есть две таблицы:

1) ListObject с колонками ObjectName(строка), ObjectType(Lookup), ObjectRule(Lookup на RulesList )

2) RulesList с колонками NameRule(строка),  ObjectType(Lookup)

Нужно реализовать фильтр, для колонки ObjectRule, таблицы ListObject. 

Фильтр должен выводить доступными только те записи ObjectRule, ObjectType которых соответствует ObjectType таблицы ListObject.

 

rules: {
  "typeObjectFilter": {
	 lookupListConfig: {
	   filters: [
	     function() {
		   var ruleToObject = this.get("ObjectRule");
		   var filterGroup = Ext.create("Terrasoft.FilterGroup");
		   if (ruleToObject) {
			  var filterByTypeRule = Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
"[RulesList:ObjectType].value", ruleToObject.value);
			  filterGroup.add("filterByTypeRule", filterByTypeRule);
			  return filterGroup;
		   }
		 }
	   ]
    }
  }
}

В настоящий момент фильтр не работает, страница не загружается.

У меня такой же вопрос

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

1. Почему в выражении "[RulesList:ObjectType].value" Вы указали "value"?

Вместо value нужно указать поле, по которому будет фильтрация.

Например: "[RulesList:ObjectType].ObjectRule"

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

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

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

У меня такой же вопрос

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

Да, можно, если есть доступ в базу. В таблице SysAdminUnit обновляете хэш пароля:

Update SysAdminUnit set UserPassword = 'хэш пароля' where Name = 'логин пользователя'

Хэш можно посмотреть в этой колонке у другого пользователя, чей пароль знаете.

Если on demand, то доступа в базу нет, обращайтесь к пользователю-администратору или в поддержку.

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

Добрый день. 

выполнил вес шаги инструкции https://academy.terrasoft.ru/documents/common/7-10/kak-nastroit-integra… . Не могу понять почему не появляется трубка в BPM'Online  для осуществления звонков. как это происходит при интеграции между BPM'Online и webitel. Кто может подсказать что я упускаю. Или нужно что то настроить еще в BPMonline Messaging Service Install?

У меня такой же вопрос

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

Да, для интеграции с телефонией Infinity нужно ещё установить и настроить на своём сервере bpm'online Messaging Service. А если уже установили, обратите внимание на ремарку о https.

да я уже из https настройку делал и без. не появляется трубка для звонка. может что то еще нужно выполнить? нужно настройку самого  BPMonline Messaging Service делать? или дефолтных настроек достаточно? 

Если версия Infinity X, то её поддержку добавили совсем недавно и нужно вносить изменения в конфигах. Опубликованной инструкции ещё нет, обратитесь в службу поддержки.

да Infinity X

См. предыдущий ответ.

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

Добрый день коллеги.

В общем размер файлов по непонятным мне причинам ограничен.

Методы  GetStreamValue GetColumnValue возвращают файл не больше 512 kb.

Каким образом можно сделать чтобы возвращался весь файл, а не 512 kb сначала файла ?

 

Мне нужен весь файл так как я его собираюсь отправлять в файловое хранилище !

string iin1;	
iin1=Get<string>("iin");
int nomer1;		
nomer1=Get<int>("nomer");
Guid fileid1;	
fileid1=Get<Guid>("fileid");
 
string filename;
filename = "/public/Письма БПМ/";
filename = filename + iin1 +"/" + nomer1.ToString() +"/";
 
 
 
var userConnection = Get<UserConnection>("UserConnection");
var esqResult = new EntitySchemaQuery(userConnection.EntitySchemaManager, "SubsidiesFile");
esqResult.AddColumn("Name");
esqResult.AddColumn("Data");
 
var entity = esqResult.GetEntity(userConnection, fileid1);
 
 
//var data = entity.GetColumnValue("Data") as byte[]; послу получения размер массива 512288
//MemoryStream stream = new MemoryStream(data);
 
 
// Тут тоже 512288
MemoryStream stream = entity.GetStreamValue("Data");
 
fileexported = SftpService.SftpService.UploadFile(stream, filename);

 

У меня такой же вопрос

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

Но все равно остается вопрос почему БП неправильно сигнализирует добавление файла 

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

var data = entity.GetBytesValue("Data");
MemoryStream stream = new MemoryStream(data);

GetBytesValue тоже возвращает 512 кб

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

Если и с ним то же самое, то нужно смотреть, как в этих случаях работает стандартный сервис скачивания /0/rest/FileService/GetFile/ и в чём отличие от Вашей логики.

 

А если попробовать так....

var userConnection = Get<UserConnection>("UserConnection");
var esqResult = new EntitySchemaQuery(userConnection.EntitySchemaManager, "SubsidiesFile");
esqResult.AddColumn("Name");
var colData = esqResult.AddColumn("Data");
 
var entity = esqResult.GetEntity(userConnection, fileid1);
 
using (MemoryStream stream = entity.GetStreamValue(colData.Name)){
if (stream != null) {
                                               stream.Position = 0;
//UploadFile....
stream.Flush();
                               }
}

И какой тип данных в конфигураторе установлен для колонки Data ????

 

объект наследуется от базового !

Нет Григорий Ваш код не помог до сих пор 512 кб. Видимо придется эскалировать на службу поддержки !

string iin1;    
iin1=Get<string>("iin");
int nomer1;        
nomer1=Get<int>("nomer");
Guid fileid1;    
fileid1=Get<Guid>("fileid");
 
string filename;
filename = "/public/Письма БПМ/";
filename = filename + iin1 +"/" + nomer1.ToString() +"/";
 
var userConnection = Get<UserConnection>("UserConnection");
var esqResult = new EntitySchemaQuery(userConnection.EntitySchemaManager, "SubsidiesFile");
 
 
esqResult.AddColumn("Name");
var colData = esqResult.AddColumn("Data");
 
var entity = esqResult.GetEntity(userConnection, fileid1);
 
 
string[] lines = { fileid1.ToString(),filename };
System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\WriteLines.txt", lines);
 
string name1 = entity.GetTypedColumnValue<string>("Name");
filename = filename + name1;
 
bool fileexported=false;
 
using (MemoryStream stream = entity.GetStreamValue(colData.Name)){
    if (stream != null) {
        stream.Position = 0;
        fileexported = SftpService.SftpService.UploadFile(stream, filename);
        string[] lines2 = { filename ,name1 , stream.Length.ToString() };
        System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt", lines2);
        stream.Flush();
        }
}
 
Set("fileexported", fileexported);
Set("path", filename);
Set("filename", name1);
 
return true;

 

Проверьте на файлах других разделов, есть ли ограничение там.

Добрый день коллеги.

В общем ситуация такая. Нетривиальная.

Там есть событие на добавление записи.

При добавление файла, файл отправляется на сервер по 512 кб.

Когда срабатывает событие, загружены только первые 512 кб.

Событие на изменение записи не работает!

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

 

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

В стандартном объекте «Файл» есть обработчики событий «Saving» и «Saved». В первом вычисляется версия и размер (и на тот момент его считает верно), второй пустой. Может, завязаться на второе и привязать туда запуск нужного БП. Или сразу на первое и обрабатывать данные файла ещё до его сохранения в базу.

Еще как вариант можно в FileDetail

перезгрузить событие и отсюда вызывать бизнес процесс параметрами 

onFileComplete: function(error, xhr, file, options) {
                if (!error) {
                    this.loadGridDataRecord(options.data.fileId);
                } else {
                    this.onFileCompleteError(error, file);
                }
                alert("Hie_dias");
                console.log(options);
            },

Но все равно остается вопрос почему БП неправильно сигнализирует добавление файла  ?

Может, на момент срабатывания события вся логика на стороне системы уже отработала и по 512 КБ асинхронно грузит сама база? Интересно, если смотреть в SQL-профайлере, завершился ли в тот момент Insert/Update-запрос?

возможно, но дальше разбираться нет желания...

Но все равно остается вопрос почему БП неправильно сигнализирует добавление файла 

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

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

Задача: 

Сохранить данные в таблице, по кнопке Save при добавлении новой записи вызывать соответствующий процесс и передавать ему необходимые параметры из новой записи.

У меня такой же вопрос

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

В БП есть возможность указать запуск по сигналу при добавлении объекта или изминении определенного поля/полей объекта. Id этого объекта получает процесс как параметр стартового сигнала. Думаю это соответствует вашей задаче. Подробности смотри в документации по БП

 

 

 

В БП есть возможность указать запуск по сигналу при добавлении объекта или изминении определенного поля/полей объекта. Id этого объекта получает процесс как параметр стартового сигнала. Думаю это соответствует вашей задаче. Подробности смотри в документации по БП

 

 

 

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

спасибо большое, то что нужно!

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

Доброе утро!

Странная проблема у меня, создаю в «Мастер раздела» объект с именем UsrBePVM

Далее перехожу в JS скрипт, где описываю логику работы этого объекта, сохраняется удачно, все как бы хорошо.

Далее почему-то ничего не происходит на странице, такое ощущение, что не видит значения UsrBePVM или ему просто ничего не передается.

Что не так? Что-то забыл заполнить? Где смотреть?

 

У меня такой же вопрос

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

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

Как это сделать, подробно описано в статье.

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

Алла Савельева пишет:

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

Как это сделать, подробно описано в статье.

Проблема в том, что ошибок нет, ничего выводило. Сам JS кода был описан в бизнес процессе. Помогла только эта статья.

Странно, что из бизнес процесса не работает.

Процессы отрабатывают на сервере, а JS — на странице в браузере. Соответственно, при работе процесса клиентская логика отрабатывать не будет.

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

Добрый день!

Есть БП с элементом преднастроенная страницы. Список параметров страницы в процессе работы изменился. Часть параметров была удалена (знаю, что так нельзя, но уже свершившийся факт). Тем не менее в процессе удаленные параметры закешировались и при настройке отображения страницы отображаются. Но при добавлении нового параметра на страницу, в списке параметров в БП новые параметры не отображаются. При создании нового элемента процесса новые параметры подтягиваются, но при попытке сохранения выдает ошибку.

Открываю метаданные страницы и вижу что с этим ID как раз прописан удаленный параметр данной страницы. Вопрос: как решить данную проблему и обновить список параметров для страницы?

У меня такой же вопрос

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

Добрый день, Дмитрий!

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

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

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

Добрый день!

В процессе использую параметр с типом Коллекция объектов. Значение данного параметра передается в процесс из родительского процесса. Далее в элементе с типом задание сценарий происходит некая работа с коллекцией (по сути коллекция передается в другой метод, сами ее значения не меняются). После чего по условию БП либо идет дальше, либо возвращается в данный же кубик задание сценарий и должен снова вызвать метод и передать данную коллекцию в качестве параметра. Однако, при повторном заходе в задание сценарий, БП падает с ошибкой 

Terrasoft.Common.ItemNotFoundException: Элемент с идентификатором "00000000-0000-0000-0000-000000000000" не найден
   в Terrasoft.Core.ManagerItemCollection`1.GetByUId(Guid uid)
   в Terrasoft.Core.Manager`2.GetInstanceByUId(Guid uid)
   в Terrasoft.Core.Process.GetGoldWarrantyAmountProcess.get_ProductConditionCollection()
   в Terrasoft.Core.Process.GetGoldWarrantyAmountProcess.ScriptTask1Execute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

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

У меня такой же вопрос

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

Судя по тому, что в первый раз передалось нормально, потом значение переменной кто-то очищает. Если есть возможность, можно произвести отладку и посмотреть, какое значение в разные моменты находится в параметре.

Наконец, если причину выяснить не получится, можно хранить сами данные в хранилище, а в параметре передавать на них ссылку.

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

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

У меня такой же вопрос

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

Как работать с утилитой WorkspaceConsole, см. справку.

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

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