Перейти к содержанию

Добавление пользователей в группу

Для того чтобы в рамках процесса можно было добавить пользователя или пользователей в определенную системную группу (например, для управления ролевой моделью), введите следующее выражение:

using System; 
using System.Collections.Generic;
using System.Linq;
using Comindware.Data.Entity;
using Comindware.TeamNetwork.Api.Data.UserCommands;
using Comindware.TeamNetwork.Api.Data;

class Script
{
public static void Main(Comindware.Process.Api.Data.ScriptContext context)
{
string[] OA = new string[] {
"Kontragenty"
};
string[] OP = new string[] {
"Podpisant"
};
string[] GROUP = new string[] {
"group.28"
};

for (int j = 0; j < GROUP.Length; j++)
{
var group = GROUP[j];
var old_users = Api.Base.AccountGroupService.Get(group);
Api.Base.AccountGroupService.ExcludeMembers(group, old_users.Users);

var my_list = Api.TeamNetwork.ObjectService.ListWithAlias(OA[j]);
foreach (var i in my_list)
{
var data = i as Dictionary<string, object>;
data.TryGetValue(OP[j], out object obj);
if (obj == null)
{
continue;
}

if (obj is string)
{
Api.Base.AccountGroupService.IncludeMembers(group, new List<string>() { obj.ToString() });
}
else
{
var accounts = obj as object[];
var accountsIds = accounts.Select(x => x.ToString());
Api.Base.AccountGroupService.IncludeMembers(group, accountsIds);
}
}
}
}
}

Здесь:

Значение Описание
Kontragenty Системное имя шаблона записи.
Podpisant Системное имя атрибута типа «Аккаунт» в шаблоне записи Kontragenty. В этом атрибуте хранится пользователь, которого нужно добавить в группу.
group.28 ID системной группы, в которую нужно добавить пользователя из атрибута Podpisant.

Логика работы скрипта

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

К началу

Ассистент базы знаний Comindware

Загрузка ассистента...
Запрос отправлен в ИИ-ассистент Открыть вкладку