Como a: Adicionar um evento recorrente a listas em vários sites
Esta tarefa programação mostra como adicionar um evento recorrente com um site Meeting Workspace para a lista de eventos de cada site em uma coleção de subsites.
Para adicionar um evento recorrente com um site Meeting Workspace para a lista de eventos de cada site em uma coleção de subsites
Criar um aplicativo console em Microsoft Visual Studio 2005, conforme descrito em Como a: Criar um aplicativo do console.
Adicione um using ou Imports importações diretiva para a abertura das. cs ou arquivo .vb para o Microsoft.SharePoint e Microsoft.SharePoint.Meetings N:Microsoft.SharePoint.Meetings, da seguinte maneira:
Imports Microsoft.SharePoint Imports Microsoft.SharePoint.Meetings
using Microsoft.SharePoint; using Microsoft.SharePoint.Meetings;
Usar o construtor SPSite M:Microsoft.SharePoint.SPSite.#ctor(System.String) para criar instância uma coleção site especificado. Este exemplo usa um indexador no AllWebs P:Microsoft.SharePoint.SPSite.AllWebs propriedade do SPSite T:Microsoft.SharePoint.SPSite classe para retornar um site específico e o Webs P:Microsoft.SharePoint.SPWeb.Webs propriedade do SPWeb T:Microsoft.SharePoint.SPWeb classe para retornar a coleção de subsites sob o site. Configurar um executar um loop foreach foreach para iterar por todos os subsites e obter a lista Eventos para cada site e a coleção de itens lista em cada lista de eventos, da seguinte maneira:
Dim evtTitle As String = Console.ReadLine() Dim siteCollection As New SPSite("Absolute_Url") Dim site As SPWeb = siteCollection.AllWebs("Site_Name") Dim subSites As SPWebCollection = site.Webs Dim subSite As SPWeb For Each subSite In subSites Dim list As SPList = subSite.Lists("Events") Dim listItems As SPListItemCollection = list.Items
string evtTitle = Console.ReadLine(); SPSite siteCollection = new SPSite("Absolute_Url"); SPWeb site = siteCollection.AllWebs["Site_Name"]; SPWebCollection subSites = site.Webs; foreach (SPWeb subSite in subSites) { SPList list = subSite.Lists["Events"]; SPListItemCollection listItems = list.Items;
Crie um item da lista. Este exemplo usa o Add M:Microsoft.SharePoint.SPListItemCollection.Add método do SPListItemCollection T:Microsoft.SharePoint.SPListItemCollection classe para criar um não inicializado item da lista, usa indexadores para definir vários propriedades para o novo item e em seguida, usa o método Update M:Microsoft.SharePoint.SPListItem.UPDATE para concluir a criação de item.
Dim recEvent As SPListItem = listItems.Add() Dim recdata As String = "<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek>" _ & "<repeat><daily dayFrequency='1' /></repeat>" _ & "<repeatInstances>5</repeatInstances></rule></recurrence>" recEvent("Title") = evtTitle recEvent("RecurrenceData") = recdata recEvent("EventType") = 1 recEvent("EventDate") = New DateTime(2003, 8, 15, 8, 0, 0) recEvent("EndDate") = New DateTime(2003, 9, 25, 9, 0, 0) recEvent("UID") = Guid.NewGuid() recEvent("TimeZone") = 13 recEvent("Recurrence") = - 1 recEvent("XMLTZone") = "<timeZoneRule><standardBias>480</standardBias>" _ & "<additionalDaylightBias>-60</additionalDaylightBias>" _ & "<standardDate><transitionRule month='10' day='su' weekdayOfMonth='last' />" _ & "<transitionTime>2:0:0</transitionTime></standardDate>" _ & "<daylightDate><transitionRule month='4' day='su' weekdayOfMonth='first' />" _ & "<transitionTime>2:0:0</transitionTime> </daylightDate></timeZoneRule>" recEvent.Update()
SPListItem recEvent = listItems.Add(); string recData = "<recurrence><rule> <firstDayOfWeek>su</firstDayOfWeek>" + "<repeat><daily dayFrequency='1' /></repeat>" + "<repeatInstances>5</repeatInstances></rule></recurrence>"; recEvent["Title"] = evtTitle; recEvent["RecurrenceData"] = recData; recEvent["EventType"] = 1; recEvent["EventDate"] = new DateTime(2003,8,15,8,0,0); recEvent["EndDate"] = new DateTime(2003,9,25,9,0,0); recEvent["UID"] = System.Guid.NewGuid(); recEvent["TimeZone"] = 13; recEvent["Recurrence"] = -1; recEvent["XMLTZone"] = "<timeZoneRule> <standardBias>480</standardBias>" + "<additionalDaylightBias>-60</additionalDaylightBias>" + "<standardDate><transitionRule month='10' day='su' weekdayOfMonth='last' />" + "<transitionTime>2:0:0</transitionTime></standardDate>" + "<daylightDate><transitionRule month='4' day='su' weekdayOfMonth='first' />" + "<transitionTime>2:0:0</transitionTime> </daylightDate></timeZoneRule>"; recEvent.Update();
A variável recData recData contém um fragmento XML que especifica as propriedades para um evento recorrente levando local diariamente para Five Days, e atribui o indexador XMLTZone zona de tempo informações para o atual site. O XML que define a recorrência e especifica as informações zona de tempo está contido nas colunas da tabela UserData no de conteúdo ntext3 e ntext4 banco de dados.
A seguinte tabela mostra exemplos de tipos diferentes de recorrência que podem ser usados.
Descrição Exemplo Todos os outros dias até uma data de término especificada
<recurrence><rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat><daily dayFrequency='2' /></repeat> <windowEnd>2003-09- 20T09:00:00Z</windowEnd> </rule></recurrence>
Semanalmente na segunda-feira
<recurrence><rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat><weekly mo='TRUE' weekFrequency='1' /></repeat> <repeatForever>FALSE</repeatForever> </rule></recurrence>
A cada dois meses no terceiro dia para cinco sessões
<recurrence><rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat><monthly monthFrequency='2' day='3' /></repeat> <repeatInstances>5</repeatInstances> </rule></recurrence>
Mensalmente na primeira terça-feira até a data de término especificada
<recurrence><rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat> <monthlyByDay tu='TRUE' weekdayOfMonth='first' monthFrequency='1' /> </repeat> <windowEnd>2003-08- 02T10:00:00Z</windowEnd> </rule></recurrence>
Anualmente no vinte dia do mês nono até uma data de término especificada
<recurrence><rule> <firstDayOfWeek>su</firstDayOfWeek> <repeat><yearly yearFrequency='1' month='9' day='20' /></repeat> <windowEnd>2007-09- 20T07:00:00Z</windowEnd> </rule></recurrence>
To add a Meeting Workspace site to the recurring event, use one of the Add methods of the SPWebCollection class and the LinkWithEvent method of the SPMeeting class.
Dim mwsSites As SPWebCollection = subSite.Webs Dim path As String = recEvent("Title").ToString() Dim newSite As SPWeb = mwsSites.Add(path, "Workspace_Name", _ "Description", Convert.ToUInt32(1033), "MPS#0", False, False) Dim mwsSite As SPMeeting = SPMeeting.GetMeetingInformation(newSite) Dim guid As String = list.ID.ToString() Dim id As Integer = recEvent.ID Try mwsSite.LinkWithEvent(subSite, guid, id, "WorkspaceLink", "Workspace") Catch ex As System.Exception Console.WriteLine(ex.Message) End Try Next subSite
SPWebCollection mwsSites = subSite.Webs; string path = recEvent["Title"].ToString(); SPWeb newSite = mwsSites.Add(path, "Workspace_Name", "Description", 1033, "MPS#0", false, false); SPMeeting mwsSite = SPMeeting.GetMeetingInformation(newSite); string guid = list.ID.ToString(); int id = recEvent.ID; try { mwsSite.LinkWithEvent(subSite, guid, id, "WorkspaceLink", "Workspace"); } catch (System.Exception ex) { Console.WriteLine(ex.Message); } }
After the Meeting Workspace site is created, the GetMeetingInformation method returns an SPMeeting object representing the site.
Pressione F5 para iniciar a Console Application.
Na prompt de comando, tipo um nome para o site Meeting Workspace e em seguida, pressionar ENTER para adicionar um evento recorrente com um site Meeting Workspace para a lista de eventos em todos os subsites sob um site.