一:Slickflow 开发配置说明:

1. 复制database目录里有数据库生成SQL,并执行;
2. Slickflow.WebApi为工作流WebApi项目,可以用FireFox插件RestClient进行接口测试;
3. Slickflow.WebDemo, Slickflow.Winform 为工作流示例代码项目;
4. 查看以上项目的Web.Config文件或App.config文件数据库链接配置,修改步骤1创建的数据库名称和登录信息;
5. Xml目录有流程定义示例文件;
6. 查看以上项目的Web.config文件或App.congig文件的<appSettings>节点配置<WorkflowFileServer>目录指向xml文件路径的主目录。
7. 设计器项目
1) 设计器界面,先按“打开”按钮,会读取流程记录表WfProcess表;
2) 打开流程记录,会显示出图形。如果没有显示,打开firebug看是否有异常;
3) 图形示例文件在文件夹: xml\graphy下,请改名为price.xml, 并放在流程对应的文件夹里面。默认是d:\xml\price\price.xml

其它示例说明:
比如应用程序中嵌入Price Process流程:ProcessGUID为:072af8c3-482a-4b1c-890b-685ce2fcc75d,工作流引擎根据ProcessGUID值查找流程定义表WfProcess, 然后根据appSetting配置的WorkflowFileServer值和表中字段XmlFilePath组合生成xml文件路径。


完整路径为:

<WorkflowFileServer> WfProcess表中的XmlFilePath字段 WfProcess表中的XmlFileName


一个实际数据的例子:
<WorkflowFileServer>: d:\xml
XmlFilePath: price\price.xml
完成的流程定义文件指向为:d:\xml\price\price.xml。

二:接口调用示例:

TestMethod
public void StartupRunEnd()
{
////StarterA:
////UserID":"10","UserName":"Long","AppName":"SamplePrice","AppInstanceID":"100","ProcessGUID":"072af8c3-482a-4b1c-890b-685ce2fcc75d
var initiator = new WfAppRunner();
initiator.AppName = "SamplePrice";
initiator.AppInstanceID = 100;
initiator.ProcessGUID = Guid.Parse("072af8c3-482a-4b1c-890b-685ce2fcc75d");
initiator.UserID = 10;
initiator.UserName = "Long";

IWorkflowService service = new WorkflowService();

//流程开始->业务员提交
service.StartProcess(initiator);

//业务员提交->计划部签字
var banFangNodeGuid = "fc8c71c5-8786-450e-af27-9f6a9de8560f";
PerformerList pList = new PerformerList();
pList.Add(new Performer(20, "Zhang"));

initiator.NextActivityPerformers = new Dictionary<Guid, PerformerList>();
initiator.NextActivityPerformers.Add(Guid.Parse(banFangNodeGuid), pList);
service.RunProcessApp(initiator);

//计划部签字->业务员签字
//办理用户身份
initiator.UserID = 20;
initiator.UserName = "Zhang";

var salesGuid = "39c71004-d822-4c15-9ff2-94ca1068d745";
pList.Clear();
pList.Add(new Performer(10, "Long"));

initiator.NextActivityPerformers.Clear();
initiator.NextActivityPerformers.Add(Guid.Parse(salesGuid), pList);
service.RunProcessApp(initiator);

//业务员签字->结束
//办理用户身份
initiator.UserID = 10;
initiator.UserName = "Lhang";

var endGuid = "b70e717a-08da-419f-b2eb-7a3d71f054de";
pList.Clear();
pList.Add(new Performer(10, "Long"));

initiator.NextActivityPerformers.Clear();
initiator.NextActivityPerformers.Add(Guid.Parse(endGuid), pList);
service.RunProcessApp(initiator);
}

Last edited Jan 13, 2015 at 2:52 AM by besley, version 4