sharepoint - En un espacio de trabajo de reunión, obtenga todos los elementos de la agenda de una lista mediante programación
moss wss (2)
Creo que la vista predeterminada de la lista muestra solo los próximos elementos de la lista de reuniones y no los elementos de la lista de reuniones en el pasado.
Si no especifica la vista en la que ejecuta su consulta CAML, recuperará todos los elementos de la vista predeterminada. Utilice la vista Todos los elementos (todos los eventos ver si es un calendario) en lugar de la vista predeterminada, también establezca la propiedad SPQuery.ExpandRecurrence en verdadero.
Quiero obtener todos los elementos de una lista específica en el área de trabajo de reuniones periódicas. Traté de ejecutar el siguiente CAML:
<Query>
<Where>
<IsNotNull>
<FieldRef Name=''ID'' />
</IsNotNull>
</Where>
</Query>
Pero solo muestra datos para la próxima reunión.
Sin embargo, cuando abro la lista, desde el menú de acciones puedo elegir mostrar los datos de todas las reuniones. Eso me hace pensar que es posible. Sé que puedo convertir la lista en elementos de la serie para que aparezcan en todas las reuniones, pero no es lo que quiero.
Yeehaaw!
¡Finalmente encontré una solución! La clase SPQuery tiene una propiedad MeetingInstanceId , en la que puede asignar un valor de un InstanceID específico (por ejemplo, 20090615 para elementos del 15 de junio de 2009) o para consultar todos los elementos, debe asignarle el valor enum SPMeeting.SpecialInstance (no olvide lanzarlo a int).
Luego, solo ejecuta su consulta para obtener elementos del espacio de trabajo que desee.
Oh, y no olvides
using Microsoft.SharePoint.Meetings;
O puede omitir el uso de SPMeeting.SPecialInstance, pero use integeres directamente de -3 a 0
Código de muestra:
using(SPSite site = new SPSite(<enter your workspace url>))
using (SPWeb web = site.OpenWeb())
{
SPQuery query = new SPQuery();
query.MeetingInstanceId = (int)SPMeeting.SpecialInstance.AllButSeries;
query.Query = @"<Query>
<Where>
<IsNotNull>
<FieldRef Name=''ID'' />
</IsNotNull>
</Where>
</Query>";
SPList list = web.Lists[<enter your list>];
foreach (SPListItem item in list.GetItems(query))
{
Console.WriteLine(item[item.Fields.GetFieldByInternalName("Title").Id]);
}
}
Tardó mucho tiempo en encontrar esto. Probablemente no haya demasiada información en la red para este tema o no haya elegido las palabras clave correctas, pero de todos modos acredite a esta fuente el haber obtenido en primer lugar las palabras clave "obtener todos los elementos de la lista recurrentes en el espacio de trabajo de SharePoint".
Espero que esto ayude a otros.