A SharePoint meeting workspace is great. You can use it to manage your meeting(s) with Agenda, Objectives, Attendees, Documents and more. You can add multiple Events to this meeting workspace which means that you have a selection on the left side for the dates and dependent on what day you selected, the right side show you always the information to this special date like Attendees, Objectives, Agenda, etc. Never used? You should have a look at it.
Imagine you now manage your events in a calendar and using this meeting workspace – that’s great. Wouldn’t it be nice if you could use a normal list for selecting a date from the calendar and based on this selection in the custom list, the meeting workspace will be filled with data for this choosen event date? Example: I want to request 10 minutes of the whole meeting time for a small presentation about SharePoint. I go to the list, choose a date (which is a lookup to the calendar) and insert a presentation title.
Is this possible? Normally you would say yes, create a workflow and tell him to insert an item to the lists of the meeting workspace and tell him to which date it belongs. But exactly that’s the tricky part. How does SharePoint saves this information: Which agenda item belongs to which date?
It seems at first sight, that SharePoint used an InstanceID in the URL. I tried it by using Nintex Workflows with creating a variable called InstanceID – does not work. I tried to make a web request hoping that it saves it in the cookies or elsewhere – does not work. I finally came to the solution which i now want to present.
Starting with a Calendar with some events, creating also one meeting workspace and after that creating a custom list which contains a lookup to the events of the calendar and a title for my presentation.
Back to my meeting workspace. Now i will explain how SharePoint saves the items and makes the connection between agenda item and event.
SharePoint has some hidden things in the meeting workspace. For example a list with the meeting items. But that is not relevant for us. What is interesting for us is the list itself. For example the Agenda list. The Agenda list has a hidden field which is also readonly. It is the InstanceID. So that is the connection between date and agenda item. In this case i used Powershell to change this field to be visible, to be not readonly, to be able to delete.
<div>Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue $Web = Get-SPWeb "MyURLToMeetingWorkspace"</div> <div>$List = $Web.Lists["Listname"] $Field = $List.Fields["Instance ID"] $Type = $Field.GetType(); $mi = $Type.GetMethod("SetFieldBoolValue", [reflection.bindingflags]"nonpublic,instance");</div> <div>$a = "CanToggleHidden", $true $mi.Invoke($Field, $a); $Field.Update(); $Field.ReadOnlyField = $false $Field.Hidden = $False $Field.AllowDeletion = $true;</div> <div>$Field.Update();</div>
You can now the field instance Id.
Now i deleted this field and created a new Column from type Number with the name InstanceID. After that i changed the title of the column to “Instance ID”. I did it for the reason that i can fill this field by myself with values. Now if you insert into this field the correct InstanceID by yourself you will see that the agenda item will only be displayed for the correct event. At the picture below you can see it added the title which i entered in my list for the date i have chosen.
I used Nintex Workflows to update the meeting workspace agenda list, set title, and instance id and it will be displayed at the correct event if you select it. Unfortunately you cannot do it with SharePoint Designer, cause it does not offer to update / create a list item in another website (subsite).
..:: I LIKE SHAREPOINT ::..