Question

So, a meeting workspace was created. Subsequent meetings then where linked to the workspace, one by one, as the meetings where scheduled. At some point the organizer deleted "something" and it no longer appears on her Outlook calendar or the Events calendar. However, the meeting instance that was supposedly removed still is there. And the little drop down that would otherwise appear happily asking to either keep, move, or delete this instance (number 31) does not show up.

I've tried the following things:

and then trying to pick another meeting. No worky. SharePoint out- smarted me

Things I'm about to try ( in this order)

  1. Try using the "Delete" option instead of the move option
  2. Maybe see if there is a stsadm commmand available of this
  3. Write some C# to work with the Workspaces.asmx to rid myself of the instance
  4. Backup/restore the workspace in place
  5. Silently pray for divine intervention.

Any suggestions would greatly be appreciated.

Was it helpful?

Solution 2

In the end I needed to fire up the VS 2008 big guns and get to work. I decided that I would use the Web Services and not the object model so that I wouldn't need to develop on the server itself. Using the WCF framework, create service reference to the Meetings web service (i called it Meetings). You will also need a service reference for Lists web service ( Lists in my case) Then initialize the proxy:

MeetingSoapClient mSClient=new Meeting SoapClient();
mSClient.ClientCredentials.Windows.ClientCredential= new NetworkCredential();

ListsSoapClient lSClient=new ListsSoapClient();
lSClient.ClientCredentials.Windows.ClientCredential = new NetworkCredential();

Then call the proxy's Remove Meeting method:

mSClient.RemoveMeeting(0, InstanceUID(InstanceID), uint.MaxValue, DateTime.Now, true);

You will need to know the instance ID of the meeting. Hovering over the link to the meeting usually gives you this. You will then need to find this meetings unique instance ID. The instance UID can be found from this code:

private static string InstanceUID(uint InstanceID)
        {
            /*Use the CreateElement method of the document object to create elements for the parameters that use XML.*/
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement query = xmlDoc.CreateElement("Query");
            XmlElement viewFields = xmlDoc.CreateElement("ViewFields");
            XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions");
            query.InnerXml = @"<Where><Eq><FieldRef Name=""ows_ID""/><Value Type=""Counter"">" + InstanceID + @"</Value></Eq></Where>";

            XmlNode ndResult = lSClient.GetListItems("Meeting Series", "", query, viewFields, "150", queryOptions, null);

            XmlNode mainNode = ndResult.ChildNodes.Item(1);
            mainNode = mainNode.ChildNodes.Item(1);
            XmlNode eventUID = mainNode.Attributes.GetNamedItem("ows_EventUID");
            return eventUID.InnerText;
        }

I leave the full explanation as to what each of this does to the inquisitive reader. Go Google and be blessed.

OTHER TIPS

I've been looking for a solution to remove meetings from a workspace for some time. I'm attempting the solution above:

Meetings.MeetingsSoapClient meetings = new Meetings.MeetingsSoapClient();
meetings.ClientCredentials.Windows.ClientCredential = new NetworkCredential();

I have hardcoded the meeting workspace GUID whilst debugging:

meetings.RemoveMeeting(3, "STSTeamCalendarEvent:List:{1B049DAE-332F-4AB4-A169-2B438F460971}:Item:2", 0, DateTime.Now, true);

I am getting a FaultException, the detail of which is:

Cannot complete this action. Please try again.

I was kinda thinking this is a permissions error, however I have Full Control permissions for the Site - anyone have any suggestions?

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top