Pregunta

Estoy tratando de crear una tarea, en un flujo de trabajo VS 2010, y asignarla a uno de nuestros usuarios de dominio. Este tipo no es un usuario de la colección de sitios, pero supongo que se agregará a SharePoint automáticamente. También se encuentra en otra sucursal de la compañía, en algún lugar de Sudáfrica. El código que estoy usando es algo como

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

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

Una vez que despliegue y ejecuto el flujo de trabajo, la tarea se crea bien, pero el campo "Asignado a" está en blanco. El registro de eventos muestra que "el usuario no existe o no es único".

Además, si creo una tarea a mano, y pongo MyDomain UserName en el campo "Asignado a", se crea sin problemas y el usuario se importa a la colección del sitio. Después de eso, el flujo de trabajo funciona bien. Sin embargo, agregar manualmente a cada uno de nuestros más de 200 usuarios de dominio a la colección del sitio no es una opción. ¿Sugerencias?

¿Fue útil?

Solución

La suposición de que el usuario se agrega a la colección del sitio no es cierta. No puede asignar una tarea a un usuario que no tiene permisos en la colección del sitio, sin embargo, no tiene que agregar todos los usuarios manualmente.

  • Haga lo que sugiere Mbsurf y agregue al usuario en código
  • Ponga a todos los usuarios en un grupo en AD (si aún no tiene uno) y asigne el grupo al sitio de SharePoint
  • Otorgar permisos de "todos los usuarios autenticados" a la lista de tareas para que las tareas se puedan asignar a cualquier persona ...

Otros consejos

En Moss, haría algo como a continuación:

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

Luego, salvaría a Spuser en el campo asignado al campo.

Licenciado bajo: CC-BY-SA con atribución
scroll top