LettersReaders Speak Out

Windows Backups

I was so excited to read your coverage of Windows Server® 2008 (TechNet Magazine, March 2008, technet.microsoft.com/magazine/cc268370), I went to the launch event and got myself a copy for my home network. Everything went well with the installation. However, I was stumped on the backups.

NT Backup has been removed, and the new Windows Server Backup does not support tape drives, although the OS does. (I back up my personal data, including Active Directory® and Exchange Server 2007, to a tape drive.)

I tried downloading Microsoft® Data Protection Manager (DPM) following the hints on the Web, even though DPM may be overkill for my installation. However, DPM does not install on Windows Server 2008, and I did not have any luck with their manual installation instructions. What are small installations going to do for backups?

—Ravi S.

DPM is indeed the solution for tape backups, as the new solution in Windows Server 2008 is optimized for disk-based storage. DPM will officially support Windows Server 2008 in the next couple of months.

—Karandeep Anand, Senior Program Manager Lead, Microsoft

Survey Workflows

In the February 2008 article "Building a Powerful Survey Infrastructure" (technet.microsoft.com/magazine/cc194407), the following statement is in the Working with WSS Alone section: "You also have the option of assigning a workflow to the survey."

It is my understanding that Windows® SharePoint® Services 3.0 (WSS) and Microsoft Office SharePoint Server 2007 (MOSS) do not support workflows associated with survey responses. I have tried to associate a workflow with a survey response, and while SharePoint Designer allows the association, the workflow always has a Failed on Start error. There is a Knowledge Base article (support.microsoft.com/kb/926370) that clearly states that workflows associated with survey responses are not supported.

I understand that it is possible to link an event receiver to a survey and then initiate some other process, but this really is not a workflow as commonly referenced in SharePoint. Was this statement just made in error, or is there something I am missing here?

—Matt B.

The paragraph referenced talks about how WSS provides a wizard for a step-by-step process to create surveys. There is also a discussion about the various options (branching logic, open/closed questions, and so on).

One of the options that the wizard really provides is assigning a workflow; so, in a way, it's not exactly incorrect to say "you have the option of assigning a workflow to a survey." You are able to assign it. However, as you point out, workflows in surveys just don't work, even though for some reason that option is included. Let me try to explain why this is.

After associating a workflow with a survey and trying to start it, you will receive the Failed on Start error. The logs for this activity show this:

RunWorkflow: System.ArgumentException: Invalid field name.
{<<< GUID>>>} at ...

That GUID represents the workflow instance. It seems like a great way to make sure the right workflow is triggered, except that the "survey" list type does not support the workflow attribute. It's just not coded in. So when the workflow tries to activate with the MakeActivation method and does something like this:

internal static void MakeActivation(SPWorkflow workflow, SPWorkflowEvent e)
{e.EventData = new object[ ] { workflow.InstanceId, new SPWorkflowActivation 
Properties(workflow, e.RunAsUserId, associationData, initiationData) };
...
}

it calls SPWorkflowActivationProperties, which looks like this:

internal SPWorkflowActivationProperties(SPWorkflow workflow, 
int runAsUserId, string associationData, string initiationData)
{
...
this.m_itemGuid = new Guid((string) 
this.Item[SPBuiltInFieldId.GUID]);
...
}

So if it expects the GUID string as an attribute in the survey (which is apparently supposed to be built-in), and the survey does not have the attribute for workflow GUID, it can never work.

There is a possible workaround, so you are on the right track in your thinking about this. The workaround involves creating a custom list that triggers a workflow and linking an event receiver to the survey with ItemEventReceiver. This event receiver creates an item in the custom list, which then triggers a workflow. But you are correct; this isn't really the same thing. To make a long story short—yes, that was a good catch on your part; it does not actually work.

—Pav Cherny, Columnist, Inside SharePoint, TechNet Magazine

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.