Question

Je suis en train de créer une tâche, dans un flux de travail VS 2010, et l'affecter à un de nos utilisateurs de domaine. Ce mec est pas un utilisateur de collection de sites, mais je suppose qu'il sera ajouté à Sharepoint automatiquement. Il est également situé dans une autre branche de l'entreprise, quelque part en Afrique du Sud. Le code que je utilise est quelque chose comme

    private void CreateTask_MethodInvoking(object sender, EventArgs e)
    {
        TaskProps = new SPWorkflowTaskProperties();
        TaskId = Guid.NewGuid();

        TaskProps.AssignedTo = @"MYDOMAIN\username";
        TaskProps.Title = "Sample task";
    }

Une fois que je déployer et exécuter le flux de travail, la tâche est créée très bien, mais le « Assigned To » est vide. Les émissions de journal des événements « L'utilisateur n'existe pas ou est unique. »

En outre, si je crée une tâche à la main, et mettre MYDOMAIN \ nom d'utilisateur dans le « Assigned To », il est créé sans problème, et l'utilisateur sont importées à la collection de sites. Après cela, le flux de travail fonctionne bien. ajoutant manuellement chacun de nos 200+ utilisateurs de domaine à la collection de sites ne sont pas une option, cependant. Suggestions?

Était-ce utile?

La solution

L'hypothèse selon laquelle l'utilisateur est ajouté à la collection de sites n'est pas vrai. Vous ne pouvez pas assigner une tâche à un utilisateur qui ne dispose pas des permissiosn dans la collection de sites, mais vous ne devez pas ajouter manuellement chaque utilisateur.

  • faire comme MBSurf suggère et ajoutez l'utilisateur dans le code
  • mettre tous les utilisateurs d'un groupe dans AD (si vous ne possédez pas déjà un) et d'assigner le groupe sur le site SharePoint
  • Accordez des autorisations « Tous les utilisateurs authentifiés » à la liste des tâches afin tâches peuvent être assignées à tout le monde ...

Autres conseils

Dans MOSS, je ferais quelque chose comme ci-dessous:

        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];
        }

Alors, je sauverait SPUser dans le champ Assigné à.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top