Фильтры
using Terrasoft.Common;
new LocalizableString(UserConnection.Workspace.ResourceStorage, "ИмяКласса",
					"LocalizableStrings.TestMessageBody.Value").ToString();

 

Нравится

Поделиться

0 комментариев
Показать все комментарии
var contactIds = new List<Guid>();
var select = new Select(_userConnection).Distinct()
	.Column("SysAdminUnit", "ContactId")
	.From("SysAdminUnit").WithHints(Hints.NoLock)
	.Join(JoinType.Inner, "SysUserInRole").WithHints(Hints.NoLock)
		.On("SysAdminUnit", "Id").IsEqual("SysUserInRole", "SysUserId")
	.Where("SysUserInRole", "SysRoleId").IsEqual(Column.Parameter(roleId))
	.And("SysAdminUnit", "Active").IsEqual(Column.Parameter(true)) as Select;
 
select.ExecuteReader(dataReader =>
{
	contactIds.Add(dataReader.GetColumnValue<Guid>("ContactId"));
});

 

Нравится

Поделиться

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

Если суть публикации в том, что можно коротко без using считать коллекцию, то есть еще более "модный" способ с помощью Linq.

var contactIds = select.ExecuteReader(dataReader => dataReader.GetColumnValue<Guid>("ContactId")).ToList();

 

Владислав Литвинчук пишет:
ExecuteReader

На методе ExecuteReader типа void, вызывать .ToList() - очень модноsmiley.

Тогда уж лучше так : 

select.ExecuteReader( reader => contactIds.AddRange( reader.GetAllColumnValues<Guid>( "ContactId" ) ) );

 

virimm,

Прошу прощения за опечатку. Метод ExecuteEnumerable

var contactIds = select.ExecuteEnumerable(dataReader => dataReader.GetColumnValue<Guid>("ContactId")).ToList();

 

Владислав Литвинчук,

Что-то новенькое yes. А это в какой версии приложения?

virimm пишет:

Владислав Литвинчук,

Что-то новенькое yes. А это в какой версии приложения?

Точно не скажу, но пользуюсь давно уже, с 715 точно. 

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

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

Логика формирования значения для поля Тема реализована в схеме PortalCasePage пакета Portal, метод Sets subject field value by template.

Если необходимо, чтобы Тема обращения, созданного на портале, не соответствовала категории обращения необходимо выполнить следующие действия:
1. Перейти в раздел "Управление конфигурацией" - https://i.imgur.com/IFnr0Qt.png.
2. Найти схему PortalCasePage пакета Custom https://i.imgur.com/gYmzimh.png и открыть ее
3. В блоке methods:{} дописать 
setSubject: function() {
                        return true;
                    },
Будет выглядеть следующим образом - https://i.imgur.com/ZB9fvVh.png, после этого сохраните схему.
Перезайдите портальным пользователем в систему и при создании обращения на портале тема не должна затираться.

Нравится

Поделиться

0 комментариев
Показать все комментарии
Update SysPackage
Set IsLocked = 0
Where [Name] = 'Имя пакета'

 

Нравится

Поделиться

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

Не совсем верно. На разблокировку (возможность редактировать пакет и схемы в пакете) влияют поля Maintainer (должно быть равно значению системной настройки "Издатель") и InstallType - (0 - разблокировано, 1 - заблокировано).

В большинстве случаев вам подойдет скрипт:

Update SysPackage
Set InstallType = 0, Maintainer = 'Customer'
Where [Name] = 'Имя пакета'

В своё время нам поддержка говорила делать ещё такой Update:

 

UPDATE SysSchema
SET
IsLocked = 0,
IsChanged = 0
WHERE SysPackageId = (Select id from SysPackage
where Name = 'Имя пакета');

 

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

Добрый день.

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

Т. е. при вхождении в него 2 и более активированных ветвей,  он ожидает завершение первой пришедшей ветки. 

Ожидаемое поведение (цитата из Википедии):

  • Оператор включающего «или» (inclusive gateway) активирует одну или более исходящих ветвей, в случае, когда осуществляется ветвление. Если оператор используется для синхронизации, то он ожидает завершения выполнения всех активированных ветвей и активирует выходной поток.
  • Оператор исключающего «или», управляемый данными (англ. data-based exclusive gateway). Если оператор используется для ветвления, то поток управления направляется лишь по одной исходящей ветви. Если оператор используется для синхронизации, то он ожидает завершения выполнения одной входящей ветви и активирует выходной поток.

Ниже привожу пример БП.

Прикрепленные файлы

Нравится

Поделиться

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