Вопрос

Добрый день,

при попытке зафиксировать пакет в хранилище выдаёт ошибку "При работе с хранилищем произошла ошибка" без каких-то пояснений, причем прямо на странице конфигурации, а не в отдельном окошке, после коммита. В Error.log довольно неинформативное сообщение:

Terrasoft.WebApp.BaseSvnPage LogAndShowErrorMessage - Terrasoft.Common.SourceControlOperationException: При работе с хранилищем произошла ошибка
   в Terrasoft.WebApp.BaseSvnPage.GetSourceControlSaveType(SysPackage package)
   в Terrasoft.WebApp.WorkspaceExplorerModule.<OnPackageCommitMenuItemClick>b__421_0()
   в Terrasoft.WebApp.BaseSvnPage.ExecuteSvnOperation(ExecuteSvnOperationMethod svnOperationMethod)

Другие пакеты коммитятся/апдейтятся, т.е. дело не в svn. Можно ли как-то узнать, что ему не нравится, без муторного перебора всех схем?

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

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

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

Была такая же проблема,она решилась повторной авторизацией в хранилище.(Авторизация -> обновление с него -> потом снова авторизация и попытка зафиксировать пакет).

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

Хочу из приложения вычитать контакты согласно документации https://academy.terrasoft.ru/documents/technic-sdk/7-11/dataservice-cht…

Делаю запрос  - 10.000 контактов, всё ок, 100.000 - ProtocolError.

Каков максимальный объем данных в записях или байтах для DataService/SelectQuery?

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

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

20000 для любого esq. Указывается в web.config сервера

20000 для любого esq. Указывается в web.config сервера

Варфоломеев Данила,

Спасибо!

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

Коллеги, здравствуйте! Нужна помощь.

В bpm'sales enterprise есть функционал работы со счетами. при добавлении в счет новых продуктов, открывается отдельная страница с удобным поиском.
 

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

Пока реализовали через lookup-поле и выбор продукта в модальном окне. Но это не так удобно, как в случае со счетами.

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

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

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

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

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

При переносе с одного стенда на другой возникла проблема актуализации переводов.

А именно, перевел нужные названия и залил в данные SysTranslation. 

При переносе данные поставились (в бд новые значения), но по факту под разной локализацией значения старые.

Раскопал, что значения берутся по факту для справочников из таблиц типа SYSНазвание_ОбъектаLcz. Тут как раз старые значения, как в них обновить?

Переносить сами таблицы для каждого справочника трудоемко и хотелось бы этого избежать.

В переводах кнопка "актуализация данных" не помогает.

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

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

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

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

Таблицы типы SysОбъектLcz нельзя привязать к пакету, т.к. их нет в конфигурации. 

Может, они подхватятся при синхронизации записей основного справочника?

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

можете пож-ста поподробнее.

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

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

Всем привет!

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

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

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

Да, можно бизнес-процессом, там есть специальный элемент изменения прав. Процесс будет отрабатывать на сервере при создании или изменении через веб-интерфейс, либо при синхронизации новой или изменённой записи с мобильного. Если же пользователь создал запись и ещё не синхронизировал, то она и так его и права на деталь тоже есть. 

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

Установили BPM версии 7.12. БД Oracle. Настроили согласно инструкции. При входе под Supervisor возникает ошибка.

OS:Windows Server 2012 R2
IIS 8.5

Ошибка вовложенной файле.

Вчера был предоставлен ответ ниже

"Адасюк Валерий Викторович
11 июля 2018 12:23
В адресной строке после адреса сайта допишите 0/dev (например, если сайт localhost:82, то ссылка будет следующая localhost:82/0/dev). Это прямая ссылка в конфигурацию системы. На этой страницы в блоке действий выберите "компилировать все". После завершения компиляции очистите Redis и можете снова пробовать авторизоваться на сайте."

Попробовали, но ошибка также осталась.

Можете подсказать в связи с чем такая проблема выходить?

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

 

Прикрепленные файлы
bpm_error.txt1.07 КБ

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

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

А где вложенный файл ? невижу !

Асылан, 

Похоже что проблема с web-socket'ами.

Тут инструкция, проверьте настройки: https://academy.terrasoft.ru/documents/studio/7-12/nastroyka-vebsoketov…

 

Tsopa,

Если посмотреть инструкцию по настройке Web.config все соответствует по указанному настройки которую вы указали. Но при проверке все ли нормально настроен система, проверил через javascript команду Terrasoft.ServerChannel.ping() , результат выдал ошибку. Ниже скриншот.  

Этот же дистрибутив, развернутый локально на ноутбуке на Windows 7 работает нормально. Возможно проблема в каких-то компонентах Windows Server 2012(хотя перепроверили раза три) или в IIS.

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

Для анализа вопроса направьте, пожалуйста, в техподдержку полные логи приложения, файлы ConnectionStrings, оба web.config'а, скриншоты установленных компонентов, настройки сайта в IIS и версии .NET Framework, Redis и Visual C++.

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

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

Установили BPM версии 7.12. БД Oracle. Настроили согласно инструкции. При входе под Supervisor возникает ошибка.
текст в файле во вложение
OS:Windows Server 2012 R2
IIS 8.5

Текст ошибки :

Date: 7/11/2018 1:44:25 AM
Date (UTC): 7/11/2018 8:44:25 AM

Exception Message: Object reference not set to an instance of an object.
Exception Type: System.NullReferenceException
Exception Source: Terrasoft.Messaging.Common

Exception Stack Trace:
   at Terrasoft.Messaging.Common.ClientChannelHelper.GetConnectionParamsInitScript(Uri appUrl)
   at Terrasoft.WebApp.Nui.ViewModule.SetupWebSocketConnectionParams()
   at Terrasoft.WebApp.Nui.ViewModule.Page_Load(Object sender, EventArgs e)
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

SessionID: teyxvagwz43zhbinbjhx4c0u
Request URL: /0/Nui/ViewModule.aspx
Request Path: /0/Nui/ViewModule.aspx
Request UrlReferrer: http://localhost/
Request Type: GET
User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
User Host Address: ::1
User: Supervisor
Is Authenticated: True
Authentication Type: Forms
Is Secure Connection: False

 

 

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

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

В адресной строке после адреса сайта допишите 0/dev (например, если сайт localhost:82, то ссылка будет следующая localhost:82/0/dev). Это прямая ссылка в конфигурацию системы. На этой страницы в блоке действий выберите "компилировать все". После завершения компиляции очистите Redis и можете снова пробовать авторизоваться на сайте.

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

Заметил такую особенность, что при переносе не-компилируемых БП с C# сценариями через экспорт-импорт не понятно как их скомпилировать.

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

Может я что-то не так делаю?

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

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

Я обычно переношу БП, ПКМ (по схеме бп)-> сгенерировать для выбранных, потом компилирую для изменённых. Вроде срабатывает

Варфоломеев Данила, тут скорее интересно, почему через сохранение не срабатывает компиляция? Неужели система не видит, что процесс ни разу не компилировался?

Алексей-Карягин,

¯\_(ツ)_/¯ Ну тут мои полномочия всё) Надо спрашивать разрабов ядра(?).

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

Здравствуйте. Подскажите пожалуйста как создать БП который будет отправлять на почту сотрудка сообщение что у него есть просроченные задачи?

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

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

Самое простое что приходит в голову:

старт = добавление активности —> таймер(на, допустим 5 часов) —> считывание активности —> если активность не завершена, то элемент отправить письмо (ответственному по активности) и выход. Если завершена, то выход.

Варфоломеев Данила, это получается, что читается одна активность которую добавили, а хотелось что бы все просроченные активности считывались

Вы имеете ввиду не постановку задачи и контроль ее своевременности решения, а контроль уже существующих задач и считывание их состояния? В своем бизнес-случае я решил следующим образом:

старт-триггер по времени ежедневно в 9:15 -> чтение выборки по обращениям (ну, тут, что вам необходимо) с отбором по состоянию и флагу "просрочен по разрешению"  и ответственному -> если больше 0, то отправка письма ответственному, что у него есть просроченные обращения.

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

Никульшина Алёна,

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

Насчёт считывания активностей: не знаю ни одного адекватного способа работать с циклами в БП с помощью польз. средств.

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

Плотников ДИ пишет:
Косяк тут в том, что я не нашел как для выборки сформированной без конкретного ответственного "выдрать" всех ответственных и сделать им всем рассылку. Поэтому выполнено с отправкой руководителю.

Вот вот. всё упирается в "перебор" =) Эх если бы они это реализовали, а не пилили конструкторы из версии в версию...

Сделайте VIEW, который считает количество просроченных активностей по ответственным. На базе этого VIEW объект. 
И уже его используйте в БП.

Владимир Соколов, проблема в том что я не знаю как правильно его сделать

Я делал через С# сценарий, так проще всего. Пример отправки отчёта по просроченным задачам

DataTable table = GetDataTableOnSql(context, @"
  SELECT Title
	  , COALESCE(Contact.Name, '') AS [Исполнитель]
	  , DATEADD(hour, 3, Activity.CreatedOn) AS [Дата создания задачи]
	  , DATEDIFF(day, Activity.CreatedOn, GETUTCDATE()) AS [Дней в задаче]
  FROM Activity WITH (NOLOCK)
  LEFT JOIN Contact WITH (NOLOCK) ON Activity.OwnerId = Contact.Id
  WHERE Activity... = Как вы считаете, что задача просрочена???
  ORDER BY Title
"
);
 
string prevTitle = "";
StringBuilder html = new StringBuilder(@"<html><head><style>
table {
  border-collapse: collapse;
}
 
th {
	font-weight:bold;
	border: solid 1px #DDDDDD;
}
 
td {
  border: solid 1px #DDDDDD;
}
</style></head><body><strong>" + DateTime.Now.ToShortDateString() + "</strong><br/><br/>");
 
html.Append("<table><tr>");
for (int i = 1; i < table.Columns.Count; i++)
	html.Append("<th>&nbsp;&nbsp;" + table.Columns[i].Caption + "&nbsp;&nbsp;</th>");
html.Append("</tr>");
 
foreach (DataRow row in table.Rows)
{
		string title = (string)row[0];
		if (prevTitle != title)
		{
			html.Append("<tr><th style=\"text-align:left;\" colspan=\"" + (table.Columns.Count-1).ToString() + "\">"+title+"</th></tr>");
			prevTitle = title;
		}
		html.Append("<tr>");
		for (int i = 1; i < table.Columns.Count; i++)
			html.Append("<td>" + row[i].ToString() + "</td>");
		html.Append("</tr>");
}
html.Append("</table><br/><br/>С уважением,<br/>Робот ВРМ<br/></body></html>");
 
// Send report

Метод GetDataTableOnSql - просто читает DataTable по запросу

public DataTable GetDataTableOnSql(ProcessExecutingContext context, string sqlScript)
{
	DataTable table = new DataTable();
	CustomQuery customQuery = new CustomQuery(context.UserConnection, sqlScript);
	using (DBExecutor dbExecutor = context.UserConnection.EnsureDBConnection())
	{
		using (IDataReader dr = customQuery.ExecuteReader(dbExecutor))
		{
			table.Load(dr);
		}
	}
 
	return table;
}

 

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

Коллеги, добрый день! Может быть подобный вопрос уже обсуждали, но не нашел ссылок.

Необходимо сделать авторизацию в bpm через учетные данные Яндекс паспорта и Facebook. Подозреваю, что тут нужно делать авторизацию через oauth 2.0

Может быть есть у кого-то подобный опыт и сможете подсказать основные моменты и возможные проблемы? 

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

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

Насколько понимаю, поддержки OAuth ещё нет, возможно, в новых версиях сделают. Сейчас есть вход через Single Sign-On. Там есть примеры для провайдеров ADFS и OneLogin.

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