01 March, 2012

How to register a workflow in FIM 2010

Sometimes it really kills you to setup a (technical) 3.5 workflow in FIM 2010. You get an error like: “FIM was unable to deserialize the xoml…

Okay – what can I use that for?
So to generate (not write!) the xoml that actually will work; a simple trick can be used as seen below.

Create a console application with these simple lines of code, and you are having the needed xoml presented to you directly into a text-file. This code will generate a file (customWF.xoml) containing the working xoml that you can next paste into FIM 2010 to register the workflow.

static void Main(string[] args)
{
//instance of my workflow to go into FIM
var owb = new KMD.FimNativeWF.Contractor.StartContractorOWB();

//parent = special FIM SeqWF!
var seqWorkflow = new SequentialWorkflow();
seqWorkflow.Activities.Add(owb); //add owb as childworkflow

//generate xoml using the WorkflowMarkupSerializer
var settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using (var xmlWriter = XmlWriter.Create("CustomWF.xoml", settings))
{
var ser = new WorkflowMarkupSerializer();
ser.Serialize(xmlWriter, seqWorkflow);
xmlWriter.Flush();
}
}

image


That’s what it takes ;-)



StackOverflow Tags: ,

No comments:

iPhone/XCode - not all cases are equal!

This bit me! Having made some changes to an iPhone application (Obj-C); everything worked fine in the simulator. But, when deploying the s...