Pregunta

lo que he presenciado

Acabo de notar algo bastante molesto con SharePoint tras una actualización de 2007 a 2010.

El esquema de la lista de tareas en SharePoint 2007 tuvo el campo 'asignado a' primero. Esto básicamente significó que el campo 'asignado a' entró en el campo 'int1' en el nivel de la base de datos.

en SharePoint 2010 El esquema de la lista de tareas tiene primero predecesor. ¿Adivina qué significa eso para nuevas listas? Las columnas de predecesor entran en el campo 'INT1' en el nivel de la base de datos y 'asignado a' Cae en 'int2'.

Cambiar el ordenamiento del campo en la tarea Tipo de contenido Solo ayuda si se usa una 'Lista personalizada en blanco' y agregando el tipo de contenido directamente. ¡Hacerlo ordenará los campos en el esquema de la lista en línea con lo que parecía 2007! Sin embargo, la 'definición de la lista de tareas' ignora eso y usa su propio esquema como punto de partida. Para obtener una lista de tareas utilizando los mismos campos de datos subyacentes, como lo hizo SharePoint 2007, básicamente necesita volver a trabajar (eliminar y agregar) los tipos de contenido / campos en la lista que dan como resultado restablecer el esquema con el del tipo de contenido reordenado.

¿Por qué esto importa?

A muchos de ustedes, tal vez preguntándome por qué incluso me importa los campos de SQL, ya que no debería estar tocándolos, etc. Bueno, para ser honesto, no debería tener que cuidar, ¡pero Microsoft me ha hecho !!!

Utilizamos un WebEbPart de DataForm para enrollar tareas incompletas de todos los sitios. Creado utilizando SharePoint Designer. Varias opciones se establecen para los bits recursivos de la tienda cruzada, pero la principal es la consulta de la cámara y esta parte está causando el dolor de cabeza.

<Eq>
    <FieldRef Name="AssignedTo" />
    <Value Type="Integer"><UserID Type="Integer"/></Value>
</Eq>

Se sabe que lo anterior se filtra en función de [ME], y funciona, ¡eso es para todos los sitios creados en 2007! Tareas en cualquier lista nueva ¡No! ... y ahora sé que esto se debe a que el SQL subyacente que se está generando está haciendo:

int1 = [id]

... y no:

int1 = [id] or int2 = [id]

No estoy seguro (todavía) Cómo SharePoint construye internamente el SQL, pero puedo analizarlo en algún momento porque, obviamente, tiene que convertir la cámara en SQL y al hacerlo, usa una fuente para buscar las asignaciones de campo asociadas. De cualquier manera, la fuente va a ser diferente según las listas antiguas o las nuevas listas. Resulta que esta vez por cualquier motivo que use lo viejo, pero de cualquier manera, significa que las tareas asignadas a mí ahora están siendo dejadas fuera. Solo puede ver tres opciones actualmente

  1. Cree un script para actualizar todas las listas de tareas actuales para reflejar la nueva definición de la lista de tareas. No es ideal, y no hay tarea pequeña.
  2. Avanzando Asegúrese de que todas las listas creadas con la plantilla de la lista de tareas se modifiquen como se discutió anteriormente (eliminando / agregando CT y campos).
  3. ¡Ponga el filtro en XSLT y sufre el rendimiento!

    Me doy cuenta de que el número 2 podría ser plantificado, pero la plantilla original aún permanece y se alejó de la plantilla de MS probablemente es susceptible a los problemas en el futuro!

    ¿Ha sido presenciado por alguien? Publico saber que realmente no es una respuesta a ella. Solo sugerencias / opiniones.

¿Fue útil?

Solución

Bien después del gasto mucho tiempo presenciando lo anterior.Resulta simplemente poner el 'Asignado' en la parte de ViewFields de la consulta ¡Se corrigió el problema!

Aunque no estoy usando el campo para mostrar que el problema se solucionó agregándolo.Los campos subyacentes siguen siendo diferentes, pero SharePoint sabe esto después de todo y la enorme consulta producida hace referencia a los campos correctos por web / lista.

sweeeeet.

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