Пытаюсь вызывать alert('Hello') на каждой странице. Получилось пока только на конкретной странице создав замещающий клиентский модуль и наследуясь от SalesEnterpriseSoftkey_ENU. Как можно сделать этот алерт на всех страницах,  включая авторизацию и другие?

Нравится

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

Андрей, можно вообще добавить свой скрипт в системную настройку GoogleTagManagerScript («Скрипт для Google Tag Manager»), так он будет срабатывать после логина или при загрузке страницы в новой вкладке.

При помощи этого способа встроили в 7.Х голосовалку от Hotjar:

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

Доброго времени суток.

Пытаюсь развернуть конфигурацию. Несколько раз перепроверил строку подключения, настройку веб-сокетов и т.д., не могу развернуть конфигурацию уже несколько дней с ошибкой "Недопустимое имя объекта "dbo.SysSettings".".

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

 

Лог прилагаю:

 

Недопустимое имя объекта "dbo.SysSettings".

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.



Exception Details: System.Data.SqlClient.SqlException: Недопустимое имя объекта "dbo.SysSettings".



Source Error:

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.



Stack Trace:

 

[SqlException (0x80131904): Недопустимое имя объекта "dbo.SysSettings".]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +3329424
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +334
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +4289
   System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +89
   System.Data.SqlClient.SqlDataReader.get_MetaData() +101
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) +624
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) +3392
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) +725
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +84
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +312
   Polly.<>c__DisplayClass119_0`1.<Execute>b__0(Context ctx, CancellationToken ct) +23
   Polly.<>c__DisplayClass129_0`1.<ExecuteInternal>b__0(Context ctx, CancellationToken ct) +22
   Polly.<>c__DisplayClass103_0.<NoOp>b__1(Context ctx, CancellationToken ct) +18
   Polly.NoOp.NoOpEngine.Implementation(Func`3 action, Context context, CancellationToken cancellationToken) +17
   Polly.<>c.<NoOp>b__103_0(Action`2 action, Context context, CancellationToken cancellationToken) +105
   Polly.Policy.ExecuteInternal(Func`3 action, Context context, CancellationToken cancellationToken) +156
   Polly.Policy.Execute(Func`3 action, Context context, CancellationToken cancellationToken) +113
   Polly.Policy.Execute(Func`1 action) +211
   Terrasoft.DB.MSSql.MSSqlExecutor.FailoverExecute(DbCommand command, Func`1 func) +96
   Terrasoft.Core.DB.DBExecutor.FailoverExecuteReader(DbCommand command, Func`1 func) +55
   Terrasoft.Core.DB.DBExecutor.ExecuteCommand(Func`2 commandExecutionCallback, String sqlText, QueryParameterCollection queryParameters, CancellationToken cancellationToken) +622
   Terrasoft.Core.DB.DBExecutor.InternalExecuteReader(String sqlText, QueryParameterCollection queryParameters, CommandBehavior behavior, CancellationToken cancellationToken) +142
   Terrasoft.Core.DB.DBExecutor.InternalExecuteReader(String sqlText, QueryParameterCollection queryParameters) +25
   Terrasoft.Core.SystemSettings.DbLoaders.SysSettingsMetaDataLoader.Load(String key) +72
   Terrasoft.Core.SystemSettings.DataProvider.DbItem`2.TryGet(TKey key, TValue& value) +13
   Terrasoft.Core.SystemSettings.Objects.SysSettingsMetaData.Fetch(String code) +103
   Terrasoft.Core.SystemSettings.Objects.SysSettingsMetaData.Fetch(UserConnection userConnection, String code) +54
   Terrasoft.Core.SystemSettings.SysSettingsEngine.TryGetDefaultSettingsValue(String code, Object& value) +29
   Terrasoft.Core.UserConnection.GetDefaultTimeZone(TimeZoneInfo timeZone) +84
   Terrasoft.Core.SystemUserConnection.InitializeCurrentUser(String userName, TimeZoneInfo timeZone, String clientIP, String agent, Boolean needRegisterSessionStart) +384
   Terrasoft.Core.SingleInstanceSystemUserConnectionProvider.Initialize(Boolean doLogin) +124
   Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection) +54
   Terrasoft.Core.AppConnection.Initialize() +493
   Terrasoft.WebApp.Loader.Global.InitializeAppConnection() +152
   Terrasoft.WebApp.Loader.Global.Application_Start(Object sender, EventArgs e) +233
 
[HttpException (0x80004005): Недопустимое имя объекта "dbo.SysSettings".]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +546
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +171
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +255
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +347
 
[HttpException (0x80004005): Недопустимое имя объекта "dbo.SysSettings".]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +552
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +122
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +737

Нравится

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

Неверное название базы данных указали. Ради эксперимента изменил в  ConnectionStrings.config рабочей системы название БД (Initial Catalog) на master и получил ту же ошибку. Нужно указывать имя БД, которую вы развернули из бекапа.

Неверное название базы данных указали. Ради эксперимента изменил в  ConnectionStrings.config рабочей системы название БД (Initial Catalog) на master и получил ту же ошибку. Нужно указывать имя БД, которую вы развернули из бекапа.

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

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

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

Нравится

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

Егор, вопрос недавно обсуждался тут и тут. У Вас такое же поведение детали, как у Андрея по второй ссылке или трудность возникла в чём-то другом?

Зверев Александр, деталь вообще не показывается, и речь идет на полностью кастомном модальном окне

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

 

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

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

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

В схемах страниц можно создавать группы фильтров для Esq-запросов, например:

var filterGroup = this.Terrasoft.createFilterGroup();
filterGroup.setLogicalOperation(1);
 
filterGroup.add("NotIPDueDate", this.Terrasoft.createColumnIsNullFilter("CreatedOn"));
filterGroup.add("IPDueDate",this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.GREATER_OR_EQUAL, "CreatedOn",IPDueDate));
 
esq.filters.add("filterGroup", filterGroup);
esq.filters.add("Filter", Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Name", "1"));

Как задать аналогичную конструкцию в задании-сценарии бизнес-процесса на c#?

Нравится

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

Здравствуйте! Как работать с серверным кодом описано в данной статье.

Здравствуйте! Как работать с серверным кодом описано в данной статье.

Класс EntitySchemaQueryFilterCollection

Пример

// create filter collection with And
var filterGroup = new EntitySchemaQueryFilterCollection(esq, LogicalOperationStrict.And);
 
// add CreatedOn filter
filterGroup.Add(esq.CreateFilterWithParameters(FilterComparisonType.GreaterOrEqual, "CreatedOn", ThreeHoursAgo));
 
// add another filter collection for Status with Or
filterGroup.Add(new EntitySchemaQueryFilterCollection(esq, LogicalOperationStrict.Or) {
    esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Status.Text", "Complete"),
    esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Status.Text", "Pending")
});
 
// now add filter collection to esq
esq.Filters.Add(filterGroup);

 

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

Добрый день!

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

Модальное окно раскрывается по кнопке в разделе.

Деталь редактируемая, списочное представление.

Нравится

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

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

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

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

Добрый день!

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

системы не возникло ошибок:

В полях детали должно отображаться максимум 100 символов текста (если в поле больше символов, то

текст обрезается и в конце текста должно быть «…»). При выделении строки на детали строка

должна «расширяться по высоте» и должны отображаться поля с полным текстом.

Нравится

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

Егор, как вариант, можно сделать два поля: короткое и длинное и при изменении длинного в БП менять короткое: добавлять туда первых 97 символов длинного и ... или значение длинного целиком. Затем в карточке детали вывести длинное поле, а в реестре — короткое. Так базовая логика вообще не затронется, но будет не по выделению, а в карточке.

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

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

Studio развернута on-side.

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

Каким образом можно это исправить?

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

Нравится

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

Добрый день, Андрей.

Вам необходимо выполнить этот скрипт в вашей БД:

UPDATE AdminUnitFeatureState
SET FeatureState = 1
WHERE FeatureId IN (SELECT ID FROM Feature (NOLOCK) WHERE Code = 'UseProcessDiagramComponent')

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



Судя по всему, фича, которая отвечает за новый дизайнер БП, не изменила свое состояние.

Добрый день, Андрей.

Вам необходимо выполнить этот скрипт в вашей БД:

UPDATE AdminUnitFeatureState
SET FeatureState = 1
WHERE FeatureId IN (SELECT ID FROM Feature (NOLOCK) WHERE Code = 'UseProcessDiagramComponent')

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



Судя по всему, фича, которая отвечает за новый дизайнер БП, не изменила свое состояние.

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

Здравствуйте, спасибо большое за отклик, скрипт не стработал, так как UseProcessDiagramComponent и так стоял с состаянием 1, но зайдя на  FeaturesPage, данный компонент показывало неактивым, Снова почистил весь кеш - не помогло, включил вручную, в таблице AdminUnitFeatureState добавилась строка с приязкой к SysAdminUnit и заработало.



Еще раз спасибо за подскаску куда смотреть.

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

Доброго утра, коллеги.

 

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

 

Подробнее: Я создал свой раздел, где добавил два элемента. В нём есть деталь, где есть счётчик входов и они должны присваиваться к определенному элементу, который я выбрал и отображаться в аналитике "Показатель". У меня есть поле id, которое связано с id-элемента раздела, но как отфильтровать по нему, у меня не выходит, так как в фильтрах не отображается возможность сортировать по полю раздел.id. Можете что-то посоветовать? Буду благодарен.

 

Заранее спасибо. 

Нравится

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

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

Или Вы имеете в виду как-то иначе?

 

Где у Вас должен отображаться этот показатель, в разделе или в карточке?

 

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

 

scr_release_notes_dashboard_on_page.png

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

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

вопрос такого характера, а что может быть причиной не отображения данных в гриде детали? которая отображается в модуле (наследуется от Базовой схемы карточки NUI), а модуль в свою очередь расположен в модальном окне. Когда я делаю экспорт в exel, то в файле отображаются все те данные которые приходят по filterMethod для детали. Но Грид пустой там нету ни одной записи. Подскажите в чем секрет? Как эти данные отобразить?

Нравится

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

Вот в этой детали ничего не отображается хотя по итогам видно, что количество записей равно 24.

Это то что выгружено в exel файл:

А это та самая деталь расположена на обычной странице без всяких там модальных окон:

 

Андрей, проверьте, какой запрос уходит к DataService для считывания данных для детали с сервера и что приходит на него в ответ. Возможно, условия фильтрации такие, что там 0 записей?

 

Либо же произошла ошибка, которую видно в консоли (но Вы писали, что нет).

 

Точно отличается только то, что окно модальное, а для немодального такая же деталь с наполнением данными?

Зверев Александр, для не модального окна, а именно тогда как я ее располагаю на станице контрагента как отдельную деталь, то все данные отображаются именно в соответсвии с установленным фильтром в filterMethod. Данные там есть это даже видно из ответа на вкладке network в консоле. И ошибки не прилетают. А хотелось хоть одну увидеть)))

Нужно смотреть в элементах открывшейся страницы, есть ли там вообще элементы с записями. Может, их кто-то сверху закрывает или сдвинулись вне области отображения. Или попытаться отладить, корректно ли отрабатывает вся JS-логика. Не видя развёрнутого сайта и кода страниц, сложно сказать.

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

В методе веб-сервиса используя Jira API нужно указывать issueIdOrKey : /rest/api/latest/issue/{issueIdOrKey}/comment. Это значение переменное. Можно ли изменять это значение автоматически в методе веб-сервиса вытаскивая его из какой - либо записи в БД(колонки в разделе).

Нравится

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

Андрей, Вы имеете в виду запуск стороннего веб-сервиса при помощи элемента БП?

 

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

scr_web_service_add_method_address.png

scr_web_service_method_address_parameters.png

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