Не удалось загрузить файл или сборку "Common.Logging, Version=3.3.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

 

Common.Logging никакой версии не удаётся установить. Развернул IIS и на соззданном сайте выдаёт такую ошибку. (Пробую развернуть creatio и оценить возможность дальнейшего использования, но пока всё очень сложно)

Нравится

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

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

Не совсем понимаю, что вы пытаетесь сделать. В приложении и так изначально установлен Common.Logging, для его использования вам достаточно подключить его с помощью 

using global::Common.Logging;

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

Нужно для правильной возвращаемой структуры типов CompositeObject, без Key/Value, а нативно - {"key": value}

 

Нравится

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

нативно, имеешь ввиду через jobject? или имеешь ввиду задать column key кастомный, если оно, то аннотация(не помню как с# это называется) jsonproperty может помочь наверное

[JsonProperty("Ref_Key", NullValueHandling = NullValueHandling.Ignore)]
или имеешь ввиду избавиться от имени метода в возвращаемом объекте?
тогда наверное стоит юзать это BodyStyle = WebMessageBodyStyle.Bare в аннотации

 [OperationContract]

        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,RequestFormat =

        WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]

в этом случае, тебе не надо будет писать название объекта передаваемого в тело метода и возвращаемом тоже не будет его в названии

типа так user:{name:"3213"} станет {name:"3232"}

 

Dima Avdoshin,

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

 

задача сама в том что возвращать сразу красиво, а не через строку  через - JsonConvert.SerializeObject.



сейчас на такой код в сервисе: 

 

        [OperationContract]

        [WebInvoke(Method = "GET", 

            RequestFormat = WebMessageFormat.Json, 

            BodyStyle = WebMessageBodyStyle.Wrapped,

            ResponseFormat = WebMessageFormat.Json,

            UriTemplate = "/ping/{s}")]

            [return: MessageParameter(Name = "data")]

        public object Pong(string s) {

            var res = new CompositeObject();

            res.Add("ping", "pong");

            return res;

        }

 

получаем такой ответ: 

 

{

"data": [

{

"Key": "ping",

"Value": "pong"

}

]

}

 

а надо: {"data":  [{ "ping": "pong"}]} или если короче, то что возвращает JsonConvert.

Стас Гаврилюк,

не решал такого рода задачу, но вот что нагуглил https://stackoverflow.com/questions/17806811/dynamic-objects-in-wcf-not…

Показать все комментарии
Лучший ответ
[OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped,
            RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json,
             UriTemplate = "/UpdateUser/{id}")]
        [return: MessageParameter(Name = "result")]
 
        public Result UpdateUser(PortalUser user, string id){}

UriTemplate = "/UpdateUser/{id}" если я тебя правильно понял

[OperationContract]
        [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped,
            RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json,
             UriTemplate = "/UpdateUser/{id}")]
        [return: MessageParameter(Name = "result")]
 
        public Result UpdateUser(PortalUser user, string id){}

UriTemplate = "/UpdateUser/{id}" если я тебя правильно понял

Dima Avdoshin, 

дякую :)

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

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

 

Есть БП и в нем есть параметр в которой записывается результат. И нужно по завершению БП через JS получить содержимое параметра. Как это можно реализовать?

Нравится

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

Георгий, какая целевая задача в реализации?

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

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

Столкнулся с такой же потребностью. В методе runProcess модуля ProcessEngineService предусмотрена передача resultParameterNames, где можно указать значения которые нужно вернуть, но ответ приходит до завершения процесса и не все параметры успевают заполниться. Как заставить систему ожидать завершения процесса прежде чем вернуть ответ?

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

Добрый день.

Есть вопрос по органичению количества записей в таблице SysSSPEntitySchemaAccessList, при превышении которого закрывается доступ к сайту для портальных пользователей. У нас сейчас, судя по значениям в колонках SSPSchemaCount, SSPAdministratedSchemaCount таблицы SysLic, данное ограничение = 400 записей. Как можно увеличить данное значение?

Нравится

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

Дмитрий, здравствуйте.



Данное ограничение обусловлено механизмом лицензирования портала, информация есть на Академии.



Количество разрешенных объектов, можно проверить SQL-запросом:

select Operations from SysLicPackage (nolock) where name = 'тут название портальной лицензии'.

В полученном результате найдите свойство SSPAllowedEntitySchemaCount :тут число.

Чтобы посмотреть, сколько объектов Вы уже вывели, выполните запрос: select Count(*) from SysSSPEntitySchemaAccessList (nolock) where IsPreset = 0

Дмитрий, здравствуйте.



Данное ограничение обусловлено механизмом лицензирования портала, информация есть на Академии.



Количество разрешенных объектов, можно проверить SQL-запросом:

select Operations from SysLicPackage (nolock) where name = 'тут название портальной лицензии'.

В полученном результате найдите свойство SSPAllowedEntitySchemaCount :тут число.

Чтобы посмотреть, сколько объектов Вы уже вывели, выполните запрос: select Count(*) from SysSSPEntitySchemaAccessList (nolock) where IsPreset = 0

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

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

Нравится

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

Здравствуйте, Олег!

 

В основном приложении, в разделе [Системные настройки] есть настройка с кодом [MobileSectionsWithSearchOnly]. Она отвечает за список разделов в мобильном приложении, данные в которых отображаются только через использование поиска.

Если в поле [Значение по умолчанию] проставить значение "0", то во всех разделах записи будут сразу отображаться, без использования поиска.



Если необходимо, чтобы в некоторых разделах записи отображались лишь через использование поиска, требуется прописать в поле [Значение по умолчанию] список объектов разделов, разделяемых точкой с запятой.

 

Эта логика задействована по нескольким причинам:

- с целью уменьшения потребления трафика на моб. приложении;

- уменьшение запросов к серверу на select, что снижает нагрузку на БД;

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

 

На СУБД PostgreSQL нет данной настройки, поэтому есть обходное решение для отображения записей в разделах мобильного приложения.

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



Скрипт по включению/выключению фичей ниже:

https://academy.terrasoft.ua/docs/developer/ehlementy_interfejsa/upravl…

 

Частично описание настроек мобильного приложения есть на Академии:

https://academy.terrasoft.ua/docs/8-0/user/ustanovka_i_administrirovani…

 

Так же некоторые настройки подписаны в самом приложении, если их открыть в разделе "Системные настройки".

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

Добрый день! 

Подскажите, пожалуйста, как можно через Api получить историю обращений клиента по email ?

Может есть пример запроса ?

Нравится

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

Подскажите сталкивался ли кто-то с тем, что в правах доступа на объект не удавалось выбрать операцию экспорта (http://joxi.ru/n2Y3DL1ckOyQ5r) список пустой (версия 7.18.5)?

Может кто-то нашел решение?

Нравится

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

Добрый день.

Нужна подсказка по использованию функции Charindex в SQL запросах.

 

Используется класс Select для формирования SQL запроса к БД, т.к. подключение некоторых фильтров выполняется при определённый условиях.

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

Реализовать условие подключения таблицы получилось используя класс Column метод SqlText, но он помечен как Obsolete.

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

 

.From("UsrJobPosting")

.InnerJoin("City")

.On("City", "Id")

.IsEqual("UsrJobPosting", "UsrLocationId")

.Or(Column.SqlText("CHARINDEX(CONCAT(City.Name,';'), UsrJobPosting.UsrAdditionalLocations)"))

.IsGreater(Column.Parameter(0))

Нравится

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

Добрый день, имеется лендинг работающий как отдельный сайт в IIS, идея в том чтобы в выпадающий список попадали данные из справочника в Creatio. Подскажите, как это можно реализовать?

Нравится

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

С созданием контактов в Creatio через Лэндинг разобрались, но как достать из справочника не понимаю)

В целом это описано в статье.

https://academy.terrasoft.ru/docs/user/instrumenty_crm/lendingi_i_web_f…

 

Но выпадающий список со значениями и id нужно генерировать на стороне лендинга. Если список справочных значений не меняется со временем, то это можно захардкодить. Если меняется, но редко, то лучше синхронизировать базу сайта и справочник creatio. Опять же при наличии бд на сайте. И потом из базы генерировать "код" со значениями. Третий вариант, через веб сервис/или odata каждый раз считывать значения справочника и генерировать на стороне лендинга список

Трефилов Павел Сергеевич,Спасибо, мы пробовали захардкодить но данными обязательное Контрагент поле все равно не заполняется, можно ли как-то побороть при отправке данных с лендинга? Через БП после создания не хотелось бы делать

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

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