Not sure if it will help. According to code, ViewId is generated from workflowId. Since that part of api is internal, you can can only build get one with reflection:
private string GetViewId(Guid workflowId)
{
var flowToken = new WorkflowFlowToken(workflowId);
FlowHandle flowHandle = new FlowHandle(flowToken);
string serializedFlowHandle = flowHandle.Serialize();
var type = typeof (Composite.Data.IData).Assembly.GetType("Composite.Core.WebClient.FlowMediators.ViewTransitionHelper");
var method = type.GetMethod("MakeViewId", BindingFlags.Static | BindingFlags.NonPublic);
return method.Invoke(null, new object[] {serializedFlowHandle}) as string;
}
private void ListFormWorkflows()
{
var loadedWorkflows = WorkflowFacade.WorkflowRuntime.GetLoadedWorkflows();
foreach (var workflowInstance in loadedWorkflows)
{
var activity = workflowInstance.GetWorkflowDefinition();
if (activity is FormsWorkflow)
{
var formWorkflow = activity as FormsWorkflow;
var formData = WorkflowFacade.GetFormData(workflowInstance.InstanceId);
// From form data you can get bindings, not sure how to get EntityToken in general case
}
}
}