Здравствуйте! Такой вопрос, возможно ли получить Id записи добавленной в бизнесс-процессе с помощью элемента [Открыть страницу редактирования] или как получить Id добавленной записи, когда делаешь добавление через класс insert?

Нравится

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

Добрый день.

Вы можете сначала добавить новую запись с помощью действия [Добавить данные], который вернет Id добавленной записи, в потом в элементе [Открыть страницу редактирования] в параметре 'Идентификатор записи' указать этот Id как параметр процесса.

Если делать добавление через класс insert Вы можете получить Id для новой записи с помощью специальной функции и указать его в insert, а сам id записи записать в параметр процесса и обратиться к нему потом при необходимости.

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

После очередной компиляции при загрузке основной страницы (при открытых средствах разработчика IE 11) в консоли появляется ошибка: "Не удалось получить свойство "entitySchemaName" ссылки, значение которой не определено или является NULL".

Перехожу в отладчик, ошибка в скрипте SchemaBuilderV2.js, функция build.

Кусок кода:

this.getSchema(config.schemaName, function(schemaResponse) {

                        generatorConfig.entitySchemaName = schemaResponse.entitySchemaName

                            || config.entitySchemaName;

                          ...

Вижу что config.schemaName = "CommunicationPanel" и понимаю, что не возвратился объект schemaResponse.

Очистка кэша браузера, очистка Redis и перекомпиляция не помогают.

Кто-нибудь сталкивался с подобной ситуацией ?

(P.S. версия 7.12)

Нравится

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

Подскажите, а были ли какие-то пользовательские доработки данного раздела?

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

Здравствуйте! Может кто-нибудь объяснить почему не работают следующие команды в конфигураторе:

- Сгенерировать требующих генерации

- Обновить для требующих обновления (Структура БД)

- Установить для требующих установки

И я уверен что они не работают, "Обновить для требующих обновления" уж точно, т.к. начал через пару секунд вышло сообщение о том, что выполнено успешно, НО в БД структура не обновилась, а обновилась оно после того команды "Обновить для выбранных", на выбранном объекте. Неужели нужно каждый объект в ручную выделять и обновлять?



P.S.: пакеты были установлены, точнее обновлены при помощи встроенной утилиты "Установка приложений", и она автоматически почему-то не обновила структуру

Нравится

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

Добрый день!

В коробке функционал этих команд работает. Попробуйте вывести колонку "Текст последней ошибки", вбить в поиск "%" и отсортировать по этой колонке - есть ли в конфигурации объекты с ошибками?

Антон Малий,

нет таких объектов

На community такой вопрос решить сложно. В коробке данный функционал работает корректно. Если вопрос актуален - создайте обращение в поддержку и предоставьте пакеты и копию БД до накатки.

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

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

Нравится

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

Добрый день, 

Вы можете добавить библиотеку на вкладке [Внешние сборки]. Детальнее тут: https://academy.terrasoft.ru/documents/technic-sdk/7-11/razdel-konfigur…

Для использования функционала внешней библиотеки в бизнес-процессе необходимо добавить ее в using. На вкладке [Методы] дизайнера процессов. https://academy.terrasoft.ru/documents/technic-bpms/7-12/rabochee-prost…

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

При отправке POST из BPM на внешний веб-сервис возникает ошибка. Сайт крутится на https. Сервис тоже на https.

System.Net.WebException: Базовое соединение закрыто: Не удалось установить доверительные отношения для защищенного канала SSL/TLS. ---> System.Security.Authentication.AuthenticationException: Удаленный сертификат недействителен согласно результатам проверки подлинности.
   в System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
   в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   в System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   в System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   в System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   в System.Net.ConnectStream.WriteHeaders(Boolean async)
   --- Конец трассировки внутреннего стека исключений ---
   в System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
   в System.Net.HttpWebRequest.GetRequestStream()
   в Terrasoft.Configuration.ContactLoad.ContactLoad.GetResponse()
   в Terrasoft.Configuration.ContactLoad.ContactLoad.GetContacts()
   в Terrasoft.Core.Process.UsrStartContactServiceMethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context)
   в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

Когда отправляю из Postman, респонс приходит корректно. Возможно дело в настройках IIS?

 Вот код запроса : 

 

var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
httpWebRequest.Method = WebRequestMethods.Http.Post;
httpWebRequest.Timeout = 240000;
httpWebRequest.ContentType = "application/json";
httpWebRequest.ServicePoint.Expect100Continue = false;
httpWebRequest.ContentLength = data.Length;
Stream stream = httpWebRequest.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
try
{
	var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
	using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
	{
		result = streamReader.ReadToEnd().ToString();
	}
}
catch (Exception ex)
{
	throw new Exception("Failed to get response. : " + ex.Message);
	return ex.Message;
}

 

Нравится

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

В postman проходит успешная проверка из-за того, что вы отключили проверку сертификата

https://stackoverflow.com/questions/777607/the-remote-certificate-is-invalid-according-to-the-validation-procedure-using

Варианты решения вопроса с ошибкой доступны в открытых источниках.

Сергей Кy6риш,

У меня в коде присутствует отключение проверки сертификата 

 

httpWebRequest.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

 

Павел, на этом моменте как раз и акцентировал ваше внимание в предыдущем сообщении. Попробуйте включить проверку в postman, и посмотреть в сторону сертификата, предположительно, проблема в нем.

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

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

У меня возникла задача по запуску хранимой процедуры с карточки контакта. Я на карточке добавил действие, где вызываю бизнес процесс. Из бизнес процесса выполняю вызов хранимой процедуры.

Ниже код вызова бизнес процесса из ContactPageV2:

GetCLStatus: function() {
 
var ContactId = this.get("Id");
 
var ContactName = this.get("Name");
 
var ContactBirthDate = this.get("BirthDate").toDateString();
 
var ContactTranslitName = this.get("TsTranslitName");
 
var ContactAdminUnitId = Terrasoft.SysValue.CURRENT_USER.value;
 
var ContactCLStatus;
 
var processArgs = {
 
sysProcessName: "CLCheckClientProc",
 
parameters: {
 
Id: ContactId,
 
FullName: ContactName,
 
BirthDate: ContactBirthDate,
 
TranslitName: ContactTranslitName,
 
AdminUnitId: ContactAdminUnitId,
 
CLStatus: ContactCLStatus
 
}
 
};
 
ProcessModuleUtilities.executeProcess(processArgs);
 
}

Еще ниже уже код вызова хранимой процедуры (сценарий в БП):

var sContactId = Get<string>("Id");
 
var sName = Get<string>("FullName");
 
var sBirthDate = Get<string>("BirthDate");
 
var sTranslitName = Get<string>("TranslitName");
 
var sAdminUnitId = Get<string>("AdminUnitId");
 
 
//var sName = "Иван Иванов";
 
 
string sCLStatus = "XXX";
 
var userConnection = Get<UserConnection>("UserConnection");
 
 
DataValueTypeManager dataValueTypeManager = userConnection.DataValueTypeManager;
 
var textDataValueType = new TextDataValueType(dataValueTypeManager);
 
 
StoredProcedure storedProcedure = new StoredProcedure(userConnection, "ACCCHECKCLIENT")
 
.WithParameter("sName", sName)
 
.WithParameter("dob", sBirthDate)
 
.WithParameter("sTranslitName", sTranslitName)
 
.WithParameter("sContactId", sContactId)
 
.WithParameter("sSysAdminUnitId", sAdminUnitId)
 
.WithOutputParameter("sStatus", textDataValueType) as StoredProcedure;
 
 
storedProcedure.Execute();
 
sCLStatus = storedProcedure.Parameters.FindByName("sStatus").Value as string;
 
Set("CLStatus", sCLStatus);

При таком вызове мне в базу пишутся только нечитаемые символы. Если в коде C# не читать из параметров, а вызывать напрямую, к примеру, "Иван Иванов" – все ок.

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

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

Отсюда я делаю вывод, что проблема либо при передаче параметров в БП, либо при начитке параметров в сценарии.

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

Нравится

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

Попробуйте добавить в скриптаске логгер, 

Для этого необходимо самом бизнес-процесса добавить 

        using global::Common.Logging;

После, в самой скриптаске можно вызывать Log.Debug("Message"); или Log.Error("Message");.

Сообщение можно будет просмотреть в логах приложения, которые по умолчанию находятся C:\Windows\TEMP\[id сайта], а именно в файле Common.

Также, что бы однозначно увидеть ошибку в логах, стоит использовать Log.Error("Message"); либо повысить уровень логгирования, это можно сделать в log4net.config.

 

Также, можно просмотреть какие запросы приходят в БД при помощи MS SQL Profiler, в случае если Вы используете MS SQL.

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

Каким образом настраиваться профайл вертикального реестра?

Создал новый раздел, а DataGridVerticalProfile туда не прогружается, понятно что его надо настроить, но где и как?

Вот этот:

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

 

Нравится

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

На странице нужно выбрать "Вид" -> "Настройка списка"

 

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

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

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

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

Нравится

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

Александр, здравствуйте!

Данная проблема в работе с печатными формами может возникать из-за дополнения Marketplace MS Word printables setup wizard (наблюдается в версиях приложения 7.11.0+). Мы передали разработчику дополнения информацию для внесения правок в работу данного дополнения. На данный момент рекомендуем удалить данное дополнение, чтоб иметь возможность работать с печатными формами в MS Word.

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

Одеяненко Юлия, сегодня зарегистрировал бандл на 14 дней, чтобы сделать печатную форму. Итог - пустое окно. Если честно, то работает через пень-колоду. До этого тоже то работало, то опять такая ситуация случалась. Что делать то?

Если тоже установлено вышеупомянутое дополнение «MS Word printables setup wizard», то лучше уточнить у его автора.

Зверев Александр, установлен только плагин - https://academy.terrasoft.ru/documents/studio/7-12/ustanovka-plagina-bp… и всё

Видимо, на демке нет ни одной печатной формы типа Word, их нужно создавать в соответствующем справочнике:

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

Разобрался, такое происходит, если истекла подписка в Word.

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

На демке всё есть, из-за подписки, проверил с коллегой данную версию - у него быстро всё подключилось. Такой вопрос - что выполняет макрос в Word-е? Кроме закавычивания соответствующих полей он делает какие-то пометки на выводимом поле? Какие-то ссылки добавляет к объекту, либо что-то другое?

Думаю, плагин меняет только word-файл, на стороне bpm'online ничего не трогает. А вся логика замены макросов на нужные значения полей сделана в системе в С#-схеме WordReportUtility.

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

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

Подскажите пожалуйста как это поправить.

Нравится

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

А она на самом деле есть, видна в конфигураторе (карточка редактирования)? Если есть, надо смотреть таблицу SysModuleEdit, прописана ли нужная страница редактирования (карточка) для объекта.

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

Да она есть, если мы нажимаем на название записи (ссылку) то всё открывается, при этом в консоль все равно пишет что страница редактирования не найдена. 

Саломатников Алексей Сергеевич,

Тогда надо логи смотреть и stack-trace. Тут лучше в ТП обратиться, т.к. покопаться серьезно придется.

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

Здравствуйте! Пытался обновить верcию bpm'online bank customer jorney, с 7.11.0 до 7.11.1 (Oracle), после обновления попытался скомпилировать приложение, и в результате возник вот такой вот перечень ошибок, в результате чего могли возникнуть эти ошибки?Изображение удалено.

Нравится

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

Александр, здравствуйте!

Пришлите, пожалуйста, логи приложения за время обновления, по умолчанию хранятся по пути:C:\Windows\Temp\BPMonline\Site_Х.

Так же хочу уточнить, не было ли ошибок, при компиляции до обновления ? 

Maksym Naumovets,

До обновления ошибок не было, вот log 

https://yadi.sk/i/wpnUGfK23TKEiq

 

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

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

Попробуйте повторно выполнить обновление.

Maksym Naumovets,

"Utility finished working." разве не говорит о том, что утилита завершила свою работу?

Александр, говорит. Но не говорит что все было выполнено успешно.

Произошла ошибка и утилита завершила работу.

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

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

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