2010-07-15 96 views
3

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

您会如何向用户展示尽可能有用的大量信息?只是显示整个图表就像蛮力解决方案。但它很大,当我们做更多事情时它可能会变得更大。更不用说在HTML中编码整个图表所需的复杂性。

alt text

+0

当你说“托管”你是什么意思。是否期望这些用户将被要求修改工作流或仅监视/报告工作流组件? – Kane 2010-07-15 14:42:16

+0

这只是监视状态并重新启动失败的步骤。当步骤失败时,用户会修复此应用以外的问题,然后他们会回到这里并重新运行失败的步骤。 – Plutor 2010-07-15 14:44:14

回答

1

这听起来像的排序应用程序的针对BPEL是适合的。

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

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

+0

关于BPEL的所有信息似乎都是从中级开始的。有没有“所以,你是一个BPEL新手”教程? – Plutor 2010-08-27 12:58:04

5

我假设您不想仅为了娱乐或嘲笑而展示这些内容,而是帮助沿途的用户,尽可能自动化,记录流程等。如果您明确定义目标或你的应用程序的目的。

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

如果你的目标是帮助用户做他们的工作,我会提出了“工程”的状态(或其他项更适合的)是,并可能转变到其他国家。

该州可能是多个主要独立变量,例如,人们可能会描述内容的进展 - 例如“不完整”/“完成”/“由第二职员审查”/“由第二职员签名”,其他人可能包含并行开发的时间表,例如, “测试打印日期=未预定”,“打印日期=未预定”,“最终交付=明天,优选昨天”。

过渡可能是“Seint客户审查”,“标记为内容的完整”,“修改内容”等

这就是你有什么想法?

+1

+1,从我阅读Plutor的问题听起来不错。我会补充一下,假设流程有一个最终目标/状态,则显示某种“您通过整个流程的程度”指标。作为用户执行一步一步的操作可能令人沮丧,不知道你正在做什么,如果有的话。 – 2010-09-01 03:45:36

+0

+1为“进步”;)我自己正在考虑这个,但想确认这是Plutor寻找的东西。某些节点可能被标记为“里程碑”或具有分配给某些州的“完成点”。 – peterchen 2010-09-01 05:00:14

+0

除此之外,如果他们确实想要查看整个工作流程,那么您可以简单地将流程图作为PDF或图像下载,以供他们查看是否愿意。更容易尝试在HTML中完成它... – Paddy 2010-09-03 09:37:16

0

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

1

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

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

3

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

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

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

输入是执行评估布尔条件的活动所需的东西。这可能是一个文件,一个数据,一个信号...

输出东西从任务产生:信息,文档,信号...

足够的定义是什么?

然后,只需将您的工作流程转换为LADDER LOGIC,并且您拥有自己的国家!
See Ladder Logic definition on Wikipedia

你只显示活动状态:

  • 活动任务(或多个)用于模块所需
  • 输入/输入确认
  • 所需输出/输出实现
  • 条件继续

似乎是抽象的?

这是一个小例子...

珍妮特在系统中输入数据。她管理图表的绿色任务。我们只关注她的工作,而不是其他任务。她知道如何在工作流程中完成16项任务。我们正在等待她继续执行以下操作,并且她的Intranet控制面板显示:

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

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

优先级2:您必须进入金融体系由生产

012拒绝橡皮擦的数量
  • 任务:数据录入
  • 输入:从生产
  • 输出拒绝计数:不合格品数
  • 条件完成日期:输入和确认

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

祝你好运!

2

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

  • 分割并呈现工作流成阶段,使得最终用户能够容易地识别相他目前在。
  • 显示为许多数量的相作为输入的数目。工作流程始于6个不同的输入,因此在屏幕上显示六个不同的按钮,使用户可以选择他想要的输入。
  • 选择按钮缩放到工作流程中描述下一步骤。这也可以帮助用户验证他迄今为止已经完成的行动以达到目前的状态。

这也有助于用户验证他迄今为止所做的操作以达到当前状态。但是,随着他完成的步骤数量增加,这种呈现方式对于用户来说可能变得麻烦。假设用户差不多已经到达工作流程的末尾。为了检查下一步,他应该经历可能使用户感到挫败的所有步骤。

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

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

0

如何显示工作流程场景示例,即显示可能通过工作流程的一种可能情况?您可以将这个功能应用于特定的用户配置文件,并突出显示相关状态,从而为其他用户调光。这使他们能够通过看到一个真实的例子来清楚地了解转换过程。