Finally! The new CAML Designer is released! I did not do this alone this time, I co-developed the tool with Andy Van Steenbergen, one of my friends at the BIWUG board.
When I developed the first version of the U2U CAML Builder back in 2004, CAML was an exotic language that nobody knew and nobody wanted to learn. In the beginning the tool lived on the blog of my dear friend Patrick Tisseghem, who unfortunately died in september 2008, far too early. Thanks to the tool, which is used all around the world, each SharePoint developer knows how to use CAML.
The user interface is completely designed in WPF. If you install the tool on a server where you have installed SharePoint 2010, you can logon using the SharePoint server object model. But if you have to use the tool remotely, you can connect to SharePoint 2010 using the .NET client object or the SharePoint web services.
For the moment you can only build queries for SharePoint 2010, but once SharePoint vNext is out, we will upgrade the tool. Once you are logged in to SharePoint, you are able to build queries from very simple to very complex. You can also view code snippets in C# for the SharePoint server object model, for the .NET client object model and for the SharePoint web services.
You can download the tool from the download section of the biwug site. You can find detailed documentation on the tool and on CAML here.
Updated: The version downloadable from the site is a click-onnce application, meaning that each time you start the application, it checks online if no newer version exists. If this is inconvenient to you (because f.e. your server is not connected to the internet) and you want to download an off-line version, you can click this link.
The tool is still in beta and I know there are still a few glitches. We are working on it and will post new versions of the tool frequently. But with the click-once way of installing it, you will be asked to update your version of the tool as soon as we release a new version of it. If you find bugs yourself or if you have ideas please do not hesitate to post a message to email@example.com.
I hope you enjoy this one!
May 12, 2012 - Posted by Karine Bosch | CAML Designer, SharePoint 2010
« Previous | Next »
A custom workflow template for Windows SharePoint Services 3.0 can be accompanied by various pages that enable administrators and users to provide values for the workflow settings. A workflow association page is one of those pages. It is displayed whenever administrators create an association between the workflow template and a container (list or document library) or a content type. This Visual How To explains and demonstrates the steps for creating this interaction by using an ASPX page.
To learn how create an ASPX page that you can use as a workflow association page, watch the video and study the following steps and code.
Code-behind an ASPX Workflow Association Page
A custom ASPX association page for a workflow is an application page that is deployed in the C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS folder. The code-behind class inherits from the Microsoft.SharePoint.WebControls.LayoutsPageBase class. You can embed all the code directly in the ASPX page, but a better approach is to encapsulate the code in a separate class. You can then associate the ASPX with the code-behind class by using the Assembly directive and the Page directive with the Inherits attribute pointing to the code-behind class within the .NET assembly.
User Interface Controls within the ASPX Workflow Association Page
Controls to be displayed to the administrators in the browser must be dropped inside the content placeholder that has the ID PlaceHolderMain. You can use various controls; this sample works with a simple page that contains two sections: InputFormSection and ButtonSection.
Working with the UI Controls in the Code-Behind Class
Handling the events and working with the UI controls in your code-behind class requires you to declare a variable for each control by using the same name and type.
Preparing the Association
Administrators use the Add a Workflow page (AddWrkfl.aspx) to select workflow templates they want to associate. In the page, they also enter various parameters settings for the workflow (such as the decision to reuse an existing task list or have one created, the choice for a history list, and the start mode for the workflow instances). All these settings need to be processed within your custom association page.
Preparing the Association Data for Processing
Data that is entered in the association form must be stored as a string. The string must be passed to the workflow engine so that the engine can make the data available for further processing within your workflow code. A best practice is to serialize and deserialize the data by using a generated .NET class that is based on an XSD schema defining the data. The following two methods of your code-behind class handle the reading and writing:
Handling the Submit
The final piece of code to discuss is the event handler that submits the form data. It must create or connect to the task list and history list and create an SPWorkflowAssociation instance, passing the appropriate parameter values. The instance must then be added to the SPWorkflowAssociationCollection object of either SPList or SPContentType.
Custom Association Page Registration in Workflow Feature
Now let's examine the definition within the element manifest file of the workflow Feature. You indicate to SharePoint that it should include your custom association ASPX page by adding the AssociationUrl attribute to the Workflow element, with the value of the attribute pointing to the URL of the page.
With a workflow association page, users can provide values for workflow settings in Windows SharePoint Services 3.0. This Visual How To showed you how to use an ASPX page to create an association between a custom workflow template and a container or a content type.