Добрый день!

 Нужно загрузить в систему объекты связанные с Контрагентом. Например, договоры.

мы можем подготовить 2 файла.

1 с данными о контрагентах, другой с данными о договорах.

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

можно ли настроить импорт так, чтобы поиск справочных полей был по кастомным полям, например, по ИНН и КПП?

то есть в файл по договорам добавляем 2 столбца и при загрузке по этим двум столбцам  находится потребитель

 

Нравится

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

Насколько я знаю, то система позволит Вам обратиться к одному полю в контрагенте, чтобы определить его уникальность. Например, к полю ИНН. (но оно ведь не всегда уникально). Так что, придется по другому полю проверить уникальность или убедиться, что все ИНН уникальны. А потом, когда сопоставляю колонки договора при импорте с моим файлом excel, при выборе контрагента "проваливаюсь" в него плюсиком и ищу там ранее проимпортированное поле с кодом.

Насколько я знаю, то система позволит Вам обратиться к одному полю в контрагенте, чтобы определить его уникальность. Например, к полю ИНН. (но оно ведь не всегда уникально). Так что, придется по другому полю проверить уникальность или убедиться, что все ИНН уникальны. А потом, когда сопоставляю колонки договора при импорте с моим файлом excel, при выборе контрагента "проваливаюсь" в него плюсиком и ищу там ранее проимпортированное поле с кодом.

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

Привет всем!

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

 

Нравится

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

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

Для исправления данного кейса необходимо установить для пула приложений IIS, на котором работает приложение, Idle Timeout = 0

1. Настроить автоматический мониторинг Loader'a и приложения, ниже варианты:

  • С помощью бесплатного сервиса мониторинга https://uptimerobot.com/ настроить автоматический мониторинг c периодичностью 5-10 минут - наиболее быстрый путь
  • С помощью автоматического запуска скрипта мониторинга приложения. Шаблон скрипта PowerShell в приложении Ping.ps1, в нем необходимо изменить адрес приложения. После этого, нужно запланировать выполнение этого скрипта через планировщик Windows c периодичностью 5-10 минут. Автоматический запуск можно настроить по инструкции http://windowsnotes.ru/powershell-2/zapusk-powershell-skripta-po-raspisaniyu/.

 

2. Настроить автоматический запуск SQL-скрипта очистки \ перезапуска зависших заданий, скрипт в приложении ResetErrorQuartzTriggers.sql - с периодичностью 30 минут

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

Скрипты можно скачать по данной ссылке:https://dropmefiles.com/QhuAh

Shevchenko Andrey,

добрый день! скрипты выложите еще раз.

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

Выше в моем комментарии названия файлов являются кликабельными и вы можете скачать скрипты просто нажав на них.

Shevchenko Andrey,

не скачиваются скрипты. На dropmefiles пишет что файлы удалены, по самому скрипту - web страница недоступна

Ольга Кондратьева,

Добрый день! Можете скачать по ссылке - 

https://www.dropbox.com/sh/re9v0093hflrmuf/AADQ1_2KNUQgLJS2DnkB0Gyia?dl…

Подскажите, в какой версии исправили данную багу? В 7.12.2.935 нужно настраивать скрипт ResetErrorQuartzTrigger?

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

Коллеги, добрый день!

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

Задача следующая: 

Необходимо рядом с именем вкладки "Файлы" выводить counter связанных вложений. Т.е. выглядеть это должно примерно так: "Файлы (3)".

Как посчитать количество вложений - ясно. Но как изменять имя вкладки?

Добавил в init() следующий код:

var tabsCollection = this.get("TabsCollection");
this.set("Resources.Strings.UsrFilesCounterCaption" , this.get("UsrFileCounter"));
var fileCount = this.get("Resources.Strings.UsrFilesCounterCaption");
tabsCollection.collection.items[3].values.Caption  = fileCount;

Но на странице ничего не изменилось...

Нравится

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

Добрый день, Павел!

Вам необходимо менять модель, а не values, т.е. примерно так:

tabsCollection.collection.items[3].model.attributes.Caption = fileCount;

Или как еще один вариант:

tabsCollection.collection.items[3].set("Caption", fileCount);

 

Как вариант, найти определение в diff нужной вкладки, в values дописать

"caption": {"bintTo": "MyTabCaption"}

Где MyTabCaption - виртуальный аттрибут, определённый в attributes. В него и устанавливайте значения.

Добрый день, Павел!

Вам необходимо менять модель, а не values, т.е. примерно так:

tabsCollection.collection.items[3].model.attributes.Caption = fileCount;

Или как еще один вариант:

tabsCollection.collection.items[3].set("Caption", fileCount);

 

Спасибо!Вот такая функция получилась:

initUsrFileCounterCaption: function() {
					var fileCount = null;
					var tabsCollection = this.get("TabsCollection");
					var recordId = this.get("Id");
					if (recordId && recordId !== null && !this.Ext.isArray(recordId)) {
						var esq = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "CaseFile"});
						esq.addColumn("Id");
						esq.addColumn("Case");
						esq.filters.add("CaseFilter", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Case.Id", recordId));
 
						esq.getEntityCollection(function(result) {
							if (result.success) {
								var collection = result.collection;
								if (collection) {
									fileCount = (this.get("Resources.Strings.UsrFilesCounterCaption") + " (" + collection.getCount() +  ") ");
									tabsCollection.collection.items[3].set("Caption", fileCount);
								}
							}
						}, this);
					} else {
						fileCount = (this.get("Resources.Strings.UsrFilesCounterCaption") + " (0) ");
						tabsCollection.collection.items[3].set("Caption", fileCount);
					}
			},

 

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

Добрый день!

имеем такую диаграмму. Есть ли возможность выгружать диаграммы из Итогов в Excel  в виде таблиц? Например

Качество обслуживания 52

Качество электроэнергии 53

...

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

Нравится

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

Любовь, добрый день!

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

У нас было ранее зарегистрировано подобное пожелание, мы подняли его приоритет на основании Вашего отзыва. Спасибо, что помогаете улучшать наши продукты!

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

Коллеги, добрый день!

Возникла необходимость получать согласование по электронной почте. В целом, никаких проблем это не вызывает, но есть один важный момент: в Exchange имеется возможность осуществлять отправку писем "от имени". В этом случае в поле письма From придет адрес пользователя от имени которого отправлено письмо. С юридической точки зрения подобное подписание/согласование не может быть признано легитимным. В служебных заголовках информация об отправителе имеется. Возникает вопрос, имеется ли кейс, когда в bpm'online затягивались данные из служебных заголовков писем?

Нравится

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

Логика создания активности по записи в Exchange реализована, похоже, в функции FillLocalItem схемы ExchangeEmailMessage. Там заполняются разные поля активности соответствующими значениями из записи стандартного типа Microsoft.Exchange.WebServices.Data.EmailMessage. Теоретически, если в такой записи о письме с подменённым адресом реальный хранится в одном из полей, можно модифицировать код, чтобы брало его.

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

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

  1. Пользователь 1 публикует сообщение в ленте под объектом, в котором настроен доступ только для чтения.Изображение удалено.
  2. Пользователь2  вводит ответ на комментарий Пользователя1.Изображение удалено.
  3. Пользователь 1 видит уведомление, что его сообщение прокомментировал Пользователь2.Изображение удалено.
  4. При попытке просмотра из коммуникационной панели появляется следующее сообщение о недостаточности правИзображение удалено.

При этом из детали  Лента он может просматривать. Как мне настроить корректный просмотр из коммуникационной панели ?

Нравится

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

Здравствуйте, София

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

Так как при проверке Вашего кейса в базовой версии приложения ошибку воспроизвести не удалось.

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

Добрый день.

Описание вопроса. Есть БП в котором есть элемент визирования. Элемент визирования направляет Email по шаблону визирующему. Необходимо сделать так, чтобы в этом письме были две кнопки "Утвердить" и "Отклонить", при нажатии на которые происходило бы установление статуса визы. Кнопки в шаблон добавил, но вот какие ссылки прописать не понимаю. Подскажите как реализовать?

 

Нравится

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

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

Можно посмотреть как реализовано утверждение/отклонение визы в коробке и по аналогии сделать. Схема VisaNotificationsSchema, методы approve и reject.

Алексей, добрый день!

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

Буду очень признательна. 

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

По данному элементу письмо не отправлено(видимо ошибка отправки), активность тоже не создана. Где смотреть логи?

Элемент в БП помечен как выполнен. 

Свойство "Игнорировать ошибки при отправке" включено.

Скрин приложил.

 

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

Нравится

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

Добрый день, Евгений!



Логи выполнения элемента Вы можете посмотрть в таблице SysProcessElementLog выполнив фильтрацию по SysProcessId - Id Вашего процесса.



Если элемент "Отправить email" выполнился без ошибок, тогда я бы советовала Вам проверить следующее:

- корректно ли указан почтовый ящик в настройках процесса

- есть ли у человека, который запускает процесс, доступ на этот почтовый ящик

- нет ли проблем с почтовым провайдером.



Так же, Вы можете отключить свойство  "Игнорировать ошибки при отправке" и повторно проверить выполнение процесса.

Анна Журавель,

В этой таблице errorDescription пустой. Данная ошибка возникает в 10% случаях, поэтому отловить включенным сво-ом 

"Игнорировать ошибки при отправке" нет возможности. Вообще повторить не удается. К логам почтовика доступа нет. В BPM нигде нет логов подходящих получается?

Евгений В.,

Ошибки отправки писем используя элемент "Отправить email" возможно только при выключенном свойстве "Игнорировать ошибки при отправке". Если оно у Вас включено, то никакие ошибки не будут записываться в Журнале процессов.

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

Добрый день!

Интересует несколько вопросов, связанных с использованием web-сервисов:

1) Доступна ли  basic авторизация  для ProcessEngineService.svc а так же для кастомных конфигурационных сервисов? 

2) И если 1- да, то как правильно передать параметры авторизации?

Использую вебсервис так:

http://site/0/ServiceModel/ProcessEngineService.svc/RunProcess



{"parameterValues":

[

{"name":"Title","value":"TestValue1"},

{"name":"Description","value":"TestValue2"},

{"name":"Action","value":"TestValue3"}

],

"schemaUId":"AF7E3F40-0EFA-431A-94AA-4DEEFFE16E59",

"schemaName":"UsrCaseIntegrationProcess"}

 

Нравится

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

С авторизацией разобрался

Появился новый вопрос - как вернуть результат выполнения процесса. Как проавильно прописать в POST запрос ResultParameterName

Бакалов Павел Вячеславович,

Убедитесь, что процесс компилируемый, потому что получить значение ResultParameterName можно только для компилируемого процесса.

Примеры запроса есть тут: https://academy.terrasoft.ru/documents/technic-sdk/7-12/web-servis-proc…

 

Tsopa,

Да, процесс компилируемый. Руководствуясь данной инструкции удалось выполнить процесс, передать параметры и получить результат используя метод GET. Но в инструкции написано, что так же можно использовать метод POST. Но у меня не вышло это сделать - процесс выполнился, но параметры в него не попали и результат соответственно не вернулся. Нет ли примеров POST запросов к методу Execute ?

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

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

Бакалов Павел Вячеславович,

POST запрос к методу Execute  не рекомендуется отправлять, поскольку  операция устарела, вместо этого стоит отправлять запрос /RunProcess.

Но если необходимо отправить POST запрос к Execute это можно сделать следующим образом: 

schemaName - эта название схемы процесса, который необходимо запустить

https://[site]/0/ServiceModel/ProcessEngineService.svc/[schemaName]/Execute

пример Header: 

Content-Type: application/json

BPMCSRF: BgsjByc16fsEZfuAr/CxDO

Cookie: BPMLOADER=vuhtzmo2wh2mxgb1amggorf2; .ASPXAUTH=FFF4F....; BPMCSRF=BgsjByc16fsEZfuAr/CxDO;

пример body: 

{}

 

как Вы решили проблему Basic авторизации?

См. тут. А вообще, базовую не рекомендуют, вот её сравнение с Cookies.

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

Добрый день! Столкнулся с проблемой отображения времени в sql server. Например, есть обращение с датой регистрации 25.05.2018 10:00, а в БД оно отображается как 25.05.2018 07:00, системные настройки времени сервера UTC+3. Как можно сменить часовой пояс системно?

Нравится

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