Вопрос

Добрый день!

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

лезть в БД и тянуть селектом или есть какая-нибудь функция типа GetObjectByID ?

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

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

В 5.Х была готовая функция для этой цели. Можно было указать объект, колонку и запись, получить в ответ значение колонки. Если в 7.Х нет, можно скопировать:

public static T GetEntityTypedColumnValue<T>(UserConnection userConnection, string schemaName, string columnName, Guid id) {	
	var schema = userConnection.EntitySchemaManager.GetInstanceByName(schemaName);
	var esq = new EntitySchemaQuery(schema);
	var queryColumnName = esq.AddColumn(columnName).Name;
	var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, schema.PrimaryColumn.Name, id);
	esq.Filters.Add(filter);
	var entities = esq.GetEntityCollection(userConnection);
	foreach (var entity in entities) {
return entity.GetTypedColumnValue<T>(queryColumnName);
	}
	return default(T);
}

Пример вызова в коде:

accountId = Terrasoft.Configuration.MsgServiceUtilities.GetEntityTypedColumnValue<Guid>(UserConnection, "Contact", "Account.Id", singleContactId);

 

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

Можно слегка упростить синтаксис :)

var _caseFile = new Terrasoft.Configuration.CaseFile(UserConnection);
_caseFile.FetchFromDB(recordId); 
var typeId = _caseFile.GetColumnValue("TypeId");
//_caseFile.SetColumnValue("Name", url);
//_caseFile.SetColumnValue("TypeId", FileConsts.LinkTypeUId);
//_caseFile.Save(false);

 

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

Добрый день.

Необходимо вызывать анонимный сервис перед авторизацией пользователя для фиксации данных в объекте.

В loginmodule.js в onLoginButtonClick добавляю вызов аналогичный ..AuthService.svc/Login.

Все хорошо работает в первый раз когда авторизация успешна и лицензии есть. В случае если нет лицензий анонимный сервис возвращает 401 ошибку. 

Анонимный сервис делал по аналогии https://academy.terrasoft.ru/documents/technic-sdk/7-13/kak-sozdat-anon…

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

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

Скорее всего у вас не выполнен или выполнен с ошибками 4 пункт  руководства по созданию анонимного веб-сервиса а именно: Настройте доступ к WCF-сервиса для всех пользователей.

Возможно после окончания настройки сервиса вы не выполнили рестарт пула IIS

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

Значит проблема не в сервисе. Обратитесь в техподдержку террасофт за лицензионным ключем  и перелицензируйте систему. Иногда очистка редиса помогает

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

После удаления ненужных полей имею подобную проблему:

Ошибка сохранения: The object 'DFPjiT5BAEkjVmUpHb20LutF87I' is dependent on column 'UsrFloatPointsPLCG'. ALTER TABLE DROP COLUMN UsrFloatPointsPLCG failed because one or more objects access this column. 

 

Удалил неиспользуемые поля.

Теперь не могу опубликовать изменения: ошибка выше.

Это говорит о том, что поля он удаляет,  но индексы, на них указывающие - нет.

Проблема известна очень давно, обещали решить.

Полей было удалено много (При Сохранить никаких ошибок не возникало, только при Опубликовать). 

Сейчас не могу откатить изменения (не нашёл такого функционала).

Для решения проблемы - возвращаю поля обратно так: 

+ делаю "Опубликовать", база блокируется на ~15 минут

+ получаю ошибку, типа, как вверху

+ добавляю недостающее поле

+ повторяю процедуру.

 

При таком алгоритме в среднем восстанавливаю 1 поле в 15 минут.

Прошу решить проблему в дальнейшем или дать SQL-скрипт очистки недействительных индексов.

 

Спасибо!

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

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

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

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

Вручную удалить индекс можно SQL-запросом «DROP INDEX», по Вашей ссылке описано подробнее.

А если доступа в базу нет, запрос можно запустить при помощи дополнения «SQL Executor».

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

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

Может кто-то размышлял на эту тему и поддержит идею :) 

Итак, многие клиенты не автоматизируют бп и вообще не пользуются комплексно процессами потому что они не понимают почему сейчас задача всплыла, а в другой раз не всплыла и где ее искать. На боковой панели новая иконка с задачами по бп всем только мешает, все просят убрать или удалить, я не знаю ни 1 человека, который бы ей пользовался.

А на сколько быстрее бы сдавались проекты, если бы по нажатию кнопки можно было сделать чтобы процесс 100% запустился и карточка бы 100% отобразилась. Часть вещей мы бы делали без кода. на 30% это минимум :)

Нужен просто признак "Запускать поверх других", который бы при старте этого бп, именно при старте, ставил бы любой активный сейчас БП на паузу или как-то бы позволял запустится новому поверх него. Даже если сейчас активен БП с таким признаком и пользователь пытается запустить новый БП с признаком запускать поверх основного, то позволять ему сделать это.

Несколько примеров проблемных кейсов:

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

Сейчас ни 1 карточка не всплывет, так так все это началось с активности, которая создана по бп и любой другие задачи по другим БП не всплывут.
Хорошо когда есть Эктив Дэшборды и ты хоть можешь отобразить например страницу редактирования перевозки в эктив дэшборде заявки, но многие клиенты этого не понимают, они только учатся им ооочень сложно. Они хотят нажать на кнопку и чтобы бп открылся при любых раскладах. И не везде есть смысл добавлять эти эктив дэшборды

А вот еще более жизненный пример из недавних:
Попробуйте с помощью кейсов сделать бп который бы провел человека от лида в продажу, а потом в заказ, чтобы от а до я все задачи перед нами всыплвали 1 за другой. У Вас не получится, при каждом переходе с одного кейса (например с Лида на продажи и с продажи на Заказы, карточка не всплывет так как новый кейс всегда начинается в фоне потому что старый не успевает закончится. (и даже если стоит запуск не из кейса, а через тригер) Это можно решить только огромным целостным БП с подпроцессами от лида до завершения заказа, к сожалению.

Обсуждение
2 комментария

Эта иконка в CTI - просто "костыль", чтобы оживлять зависшие процессы. И никак по-другому она не воспринимается.

Тоже встречается, что активность по БП нужно открывать именно из раздела, а не из детали, иначе следующий шаг улетает "в никуда".

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

Передали данное пожелание команде разработки для анализа возможности внедрения такой возможности в будущих версиях продукта.

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

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

Скажите, пожалуйста, есть ли надстройка или расширение, с помощью которого можно редактировать файлы (docx, txt, pdf) внутри CRM и после редактирования использовать их в качестве вложения к письму, не сохраняя при этом эти файлы на компьютере? 
В конкретном примере CRM должна выступать в качестве основного хранилища информации, из которого берется исходная версия файла и здесь же сохраняется отредактированная версия (т.е. FTP или облачными дисками пользоваться нельзя). Возможна ли в принципе реализация подобного?

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

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

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

Например для google docs есть api позволяющее интегрировать их возможности в вашу систему, наверное есть подобное для других продуктов.

Google docs - это передача документов третьей стороне. А есть ли более безопасное решение?

Для просмотра или редактирования файлов в интерфейсе системы есть такие дополнения:

Добрый день! Наш продукт Docs on bpm'online позволяет редактировать файлы "оффлайн" через MS Word без необходимости скачивать файлы на ПК. Кроме того все версии сохраняются с указанием времени создания и автора. Также продукт позволяет отправлять email с вложением. Если ваша система расположена на ваших серверах, то вы сможете хранить файлы больше определенного размера во внешней папке на сервере приложения. Подробнее функционал описан на нашем сайте https://samarasoft.com/docs/docflow/work-with-files/

Владимир Соколов,

DevExpress имеет готовые компоненты asp.net для просмотра и редактирования документов Word и Excel  (куча расшиений поддерживается) на лету. Думаю интегрировать не проблема. Также есть ряд продуктов и компонентов  платных и бесплатных которые позволяют развернуть у вас на сайте вєб офис аналогичный Google docs. Есть уже и готовые примеры интеграции с террасофт, выбор за вами :)

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