Рабочий процесс не может назначить задачу пользователю в другом Active Directory OU?
-
16-10-2019 - |
Вопрос
Я пытаюсь создать задачу в рабочем процессе VS 2010 и назначить ее одному из наших пользователей домена. Этот парень не пользователь коллекции сайтов, но я предполагаю, что он будет добавлен в SharePoint автоматически. Он также находится в другом отделении компании, где -то в Южной Африке. Код, который я использую, - это что -то вроде
private void CreateTask_MethodInvoking(object sender, EventArgs e)
{
TaskProps = new SPWorkflowTaskProperties();
TaskId = Guid.NewGuid();
TaskProps.AssignedTo = @"MYDOMAIN\username";
TaskProps.Title = "Sample task";
}
После того, как я развернут и запускаю рабочий процесс, задача создается просто отлично, но поле «назначено» пустым. Журнал событий показывает, что «пользователь не существует или не является уникальным».
Кроме того, если я создам задачу вручную и помесчу MyDomain username в поле «Присвоено», оно создается без проблем, и пользователь импортируется в коллекцию сайтов. После этого рабочий процесс работает в порядке. Однако добавление каждого из наших 200+ доменных пользователей в коллекцию сайтов не является вариантом. Предложения?
Решение
Предположение о том, что пользователь добавляется в коллекцию сайтов, не соответствует действительности. Вы не можете назначить задачу пользователю, у которого нет разрешения в коллекции сайтов, однако вам не нужно добавлять каждого пользователя вручную.
- Делайте, как предлагает Mbsurf, и добавьте пользователя в код
- Поместите всех пользователей в группу в AD (если у вас еще нет) и назначьте группу на сайте SharePoint
- Предоставьте разрешения «все аутентифицированные пользователи» в список задач, чтобы задачи могли быть назначены всем ...
Другие советы
В Моссе я бы сделал что -то вроде ниже:
SPUser spUser = null;
try
{
// Attempt to get the user first
spUser = userCollection[user];
}
catch (Exception)
{
// The User does not exist, so we need to add them
userCollection.Add(user, string.Empty, user, string.Empty);
spUser = userCollection[user];
}
Тогда я бы спас Спузера в поле, назначенном на поле.