It was a really nice happening out in Saltjöbaden last friday. It was fun to meet some of you engaged EPiServer developer out there and get some feedback on the product.
I held two sessions one about Migration tool which you can download here.
The other session was about how you can use workflows as building blocks for certain functions when creating your web application. In this presentation (which you can download here) I showed two examples on how workflows can be used.
Translation sample
The first sample was how workflows could be used to perform translation of content. In this sample I built a custom activity which made it possible to transfer pages between EPiServer sites using Content Channel. You can download the sourcecode for the sample project here. Compile the project and deply it to the bin directories for your sites (source site and translation site).
On the source site I had a workflow defintion configured like

And a content channel configured like

And on the translation/target site we have a workflow definition like
And on target/translation site we also have a channel defined as

Other configuration that you should do on both sites to get the web service communication to work is
- Enable HttpModule BasicAuthentication
- In IIS configure the file WebServices/ContentChannelService.asmx to not allow anonymus requests and enable basic authentication
- Edit web.config so the user that should be used for communication have access in location tag for path WebServices.
- In Admin mode in tab Config on function "Permissions for functions" allow the user to act as a webservice.
Unpublished pages sample
The other sample I showed was to use workflow as a scheduled job where it should keep track over pages that are about to be unpublished and for those pages creates task for the "page owner" and offer them a chance to extend the publish time for the page. The source code for the project is found here.
Compile the project and deploy the assembly to the bin directory for the site. Also deploy the files /templates/workflow/UnpublishHandler.ascx and /templates/workflow/UnpublishStart.ascx to your site.
Then create a workflow definition for the workflow in admin mode.
You have also to register the custom service UnpublishService with the workflow runtime. That is done by adding following to the web.config file
<episerver>
...
<workflowSettings workflowDelayedLoading="false">
<workflowHost type="EPiServer.WorkflowFoundation.AspNetWorkflowManager,EPiServer.WorkflowFoundation" />
<externalServices>
...
<
externalService type="UnpublishReminder.UnpublishService,UnpublishReminder" />
</
externalServices>
</
workflowSettings>
</
episerver>