我正在尝试为请求提交/批准/完成方案建模。我正在使用WorkflowServiceHost在控制台应用程序中托管作为服务的流程图工作流程。工作流具有对IIS中托管的WCF服务的服务引用,第二个服务与应用程序数据库交互。我有一个aspnet前端,其中包含对托管工作流服务的服务引用,并从代理客户端调用其方法。
工作流使用的是我使用提供的脚本创建的持久性数据库。
场景是用户提出服务请求。该请求必须由特定的人批准一次(我在一个分支中使用一个延迟的提示,如果没有决定到达则提醒该人,另一个分支是接收决定)。对于某些服务,请求必须具有第二个批准,可以由批准者池中的任何一个批准。一旦批准全部完成,请求将转到另一个人群中完成。
我有它工作,但有3个问题:
- 在aspnet主页中,我有一个请求列表,其中包含指向要批准/完成的页面的链接,并在代理上调用方法,之后它们重定向,但因为它全部是异步的,我不得不手动刷新主页查看更改后的列表。我是否坚持强迫页面每x秒刷新一次以解决这个问题,或者有没有办法让它同步/检查工作流状态/等待消息回来?只是点击按钮并且不知道动作是否成功,它不是非常互动。
- 有没有办法在游泳池中的其他人批准之后阻止某人批准请求?目前第二个人按下按钮时没有任何反应(这很好)。在工作流持久性数据库中,我可以看到阻塞书签是下一个活动(可能是由首先到达那里的人设置的),所以看起来好像第二次接收不会发生。我在WCF数据服务中有并发检查代码,但这从未触发,因为没有尝试更新数据库。我希望能够警告第二个人,其他用户首先到达那里。
- 我在Web应用程序中的主页列表是通过查询应用程序数据库构建的,但是是否可以查询工作流程以查找每个项目的状态,传递项目的ID(我使用id作为关联句柄) ?这样做是正常的还是人们通常只是查询应用程序数据库?
醇>