设计复杂的工作流程图

时间:2010-07-15 14:39:19

标签: user-interface flowchart

我们有一个令人惊讶的复杂工作流程,需要由具有内部Web应用程序的准技术员工进行监控。大约有30个步骤,其中一些是手动(编辑),一些是半自动停止点(如“已收到文件”或某些模板的客户批准),有些是完全自动化的(文件转换,搜索索引,等等)。所有这些步骤的流程图都很庞大而且复杂,三个人可能同时在三个完全不同的步骤上工作。

您如何尽可能向用户提供大量信息?只显示整个图表似乎是蛮力解决方案。但它很大,随着我们做更多的事情,它可能会变大。更不用说用HTML编码整个图表所需的复杂性。

alt text

7 个答案:

答案 0 :(得分:5)

我认为你不想仅仅为了娱乐或嘲弄而展示这些,而是​​在整个过程中帮助用户,尽可能自动化,记录过程等。如果你明确定义目标或目的,这可能会有所帮助你的应用程序。

除了“调试业务规则”或客户希望看到它之外,我没有看到显示整个工作流程的重点。

如果您的目标是帮助用户完成工作,我会显示“项目”的状态(或者更适合的任何术语),和可能的转换到其他州。

国家可能是多个独立的变量,例如:人们可能会描述内容的进展 - 例如“不完整”/“完成”/“由第二名职员审核”/“由第二名职员签字”,其他人可能包含并行开发的时间表,例如: “测试打印日期=未安排”,“打印日期=未安排”,“最终交付=明天,最好是昨天”。

过渡可能是“Seint to customer for review”,“标记为内容完整”,“内容已修改”等。

这是你的想法吗?

答案 1 :(得分:3)

我建议将您的工作流程划分为模块,并代表每个模块的活动状态

模块是主要工作流程的子集。例如,它可以按任务,人员,角色,部门等划分。这将极大地简化工作流的表示。让我们说有人负责在很多关键时刻输入数据。我们可以将他的所有任务分组到一个包含相同活动,输入,输出和条件的模块(或子工作流)中。模块可以是相互依存和相关的。

是我们在模块中的位置。在简单的工作流程中,只有一个活动任务。在现实生活中,我们是多线程的!因此,在一个模块中,许多州可能同时处于活动状态。状态还包括有效输入,输出和存储位。

输入是执行评估布尔条件的活动所必需的。它可以是文档,数据,信号......

输出是由任务产生的:信息,文档,信号......

足够的定义?

然后只需将您的工作流程转换为 LADDER LOGIC 即可获得状态! See Ladder Logic definition on Wikipedia

您只显示活动状态:

  • 模块的活动任务
  • 确认输入/输入已确认
  • 实现输出/输出
  • 条件继续

似乎抽象?

这是一个小例子......

Janet在系统中输入数据。她负责管理图表的绿色任务。我们只关注她的工作,而不是其他任务。她知道如何在工作流程中完成16项任务。我们正在等待她的以下行动继续,她的Intranet仪表板说:

优先级1 :您必须根据销售报告发送采购订单,以便在下个月订购足够的铅笔。

  • 任务:发送采购订单
  • 输入:营销部门的预测报告
  • 输出:采购订单,供应商,项目,数量
  • 完成条件:已发送PO并从供应商收到订单确认

优先级2 :您必须在金融系统中输入生产拒绝的橡皮擦数量

  • 任务:数据输入
  • 输入:拒绝生产计数
  • 输出:拒绝次数
  • 完成条件:输入并确认数据

我们对具有数十万个梯级步骤的自动化生产系统进行了大量故障排除(工作流程太复杂,无法整体表示)。当系统被阻止时,我们会查看每个模块并确定激活任务完成时缺少哪些输入。

祝你好运!

答案 2 :(得分:2)

您可以使用Prezi以清晰的方式向用户展示此信息。

  • 拆分并将工作流程分阶段呈现,以便最终用户能够轻松识别他当前所处的阶段。
  • 显示与输入数量一样多的阶段数。工作流程以6个不同的输入开始,因此在屏幕上显示六个不同的按钮,使用户可以选择他想要的输入。
  • 选择按钮放大描述后续步骤的工作流程。这也有助于用户验证他到目前为止已完成的操作以达到当前状态。

这也有助于用户验证他到目前为止已完成的操作以达到当前状态。但是这种呈现方式对于用户而言可能变得麻烦,因为他已完成的步骤数量增加。假设用户几乎已到达工作流程的末尾。为了检查下一步,他应该完成可能会使用户感到沮丧的所有步骤。

为避免这种情况,您可以按时间顺序将完整的工作流程拆分为3-5个阶段。阶段应该逻辑分裂。最终目标不是用完整的工作流程压倒用户。就个人而言,如果以您展示的方式呈现,我会尝试避免涉及此工作流程的任务。没有冒犯的意思。我打赌你也有同感。

如果您可以在用数字替换州名后重新发布图片,可以为您提供更好的图片。

答案 3 :(得分:1)

这听起来像BPEL适合的那种应用程序。

当然,您现在不想重新构建系统。但是有很多BPEL实现,其中一些包括图形编辑工具。其中一个可能对您目前的情况有所帮助,因为他们善于处理范围和隐藏细节。因此,我认为即使您不使用该语言执行任何其他操作,您也可以从将工作流绘制为BPEL图中获益。

维基百科页面列出了several of the available implementations。此外,Oracle的JDeveloper IDE还包含一个BPEL Diagrammer作为其SOA套件的一部分;不幸的是,它不再是标准安装的一部分,但它仍然可用。 Find out more

答案 4 :(得分:1)

尝试分层进行。您已完成最详细的层,现在添加隐藏详细信息的其他文档,并将其分组到更高级别的业务流程中。用户应该能够安全地忽略其中的一些细节,但是他们可以了解他们的部分如何适应整体。

您可能需要多个更高级别的文档。

答案 5 :(得分:0)

我建议将整个流程记录在某个地方,但就分发给用户的内容而言,如何专注于面向任务的流程?任何人都不会对我想象的整个过程负责 例如,假设我有2个角色,A和B,以及6个任务,1到6,按顺序执行。每个任务可能有多个步骤但是是自包含的(例如,下载文件,查看,运行过程,再次查看,上传)。 A执行偶数任务,B执行奇怪的任务 A需要知道包含任务2,4和6的那些详细步骤,而不是关于1,3和5中发生的事情。因此,为他负责的任务提供一组详细的流程,以及将每个任务视为黑匣子的图表。 如果无法以这种方式使流程模块化,您可能需要查看流程本身,以了解它为何如此复杂。

答案 6 :(得分:0)

如何显示工作流场景的示例,即显示一个可能通过工作流程的转换?您可以将其提供给特定的用户配置文件,并突出显示相关状态,使其他状态变暗。这使他们能够通过看到真实的例子来清楚地了解过渡。