设计复杂的工作流程图

发布于 2024-09-10 05:09:58 字数 327 浏览 5 评论 0原文

我们的工作流程极其复杂,需要由准技术员工使用内部网络应用程序进行监控。大约有 30 个步骤,其中一些是手动的(编辑),一些是半自动的停止点(例如“文件已收到”或客户批准某些模板),还有一些是完全自动化的(文件转换、搜索索引、 ETC)。所有这些步骤的流程图又大又复杂,三个人可能同时处理三个完全不同的步骤。

您将如何向用户尽可能有用地呈现如此大量的信息?仅显示整个图表似乎是蛮力解决方案。但它很大,而且随着我们做的事情越来越多,它可能会变得更大。更不用说用 HTML 编码整个图表所需的复杂性了。

替代文本

We've got a surprisingly complex workflow that needs to be monitored by a quasi-technical employees with an in-house webapp. There's about 30 steps, some of which are manual (editing), some are semi-automated stop points (like "the files have been received" or customer approval of certain templates), and some are completely automated (file conversion, search indexing, etc). The flowchart for all of these steps is large and complicated, and three people might be working on three completely different steps at any one time.

How would you present this vast amount of information as usefully as possible to your users? Just showing the whole diagram seems like the brute force solution. But it's big, and it'll likely get bigger as we do more things. Not to mention the complexity necessary to encode this entire diagram in HTML.

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

说好的呢 2024-09-17 05:09:58

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

我不认为展示整个工作流程有什么意义,除了“调试业务规则”或者客户可能希望看到它。

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

状态可能是多个主要独立的变量,例如一个可能描述内容的进度 - 例如“不完整”/“完整”/“由第二名工作人员审核”/“由第二名工作人员签署”,其他可能包含制定的时间表同时,例如“测试打印日期=未安排”、“打印日期=未安排”、“最终交付=明天,最好是昨天”。

转换可能是“交给客户审核”、“标记为内容完整”、“内容已修改”等。

这是您想要的吗?

I assume you don't want to show these just for entertainment or mockery, but help the users along the way, automating as much as possible, document the process etc. It would probably help if you clearly define the goals or purpose of your app.

I don't see a point in showing the entire workflow, except for "debugging the business rules" or maybe the clients want to see it.

If your goal is to help users do their job, I would present the state of the "project" (or whatever term fits better) is at, and possible transitions to other states.

The State might be multiple mostly independent variables, e.g. one might describe the progress of content - e.g. "incomplete" / "complete" / "reviewed by 2nd staffer" / "signed off by 2nd staffer", others might contain a schedule that is developed in parallel, e.g. "test print date = not scheduled", "print date = not scheduled", "final delivery = tomorrow, preferredly yesterday".

A transition might be "Seint to customer for review", "mark as content-complete", "content modified", etc.

Is this what you have in mind?

蝶…霜飞 2024-09-17 05:09:58

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

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

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

输入是执行评估布尔条件的活动所需的东西。它可以是一个文档、一段数据、一个信号...

输出是任务产生的结果:一个信息、一个文档、一个信号...

定义够了吗?

然后只需将您的工作流程转换为LADDER LOGIC,您就拥有了自己的状态!
请参阅 Wikipedia 上的梯形逻辑定义

您仅显示活动状态:

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

看起来很抽象?

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

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

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

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

优先级 2:您必须输入财务系统 生产中不合格的橡皮擦数量

  • 任务:数据输入
  • 输入:生产中的不合格品计数 输出
  • :不合格品数量
  • 完成条件:输入并确认数据

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

祝你好运!

I propose to divide your workflow in modules and represent the active state for each module.

A module is a subset of your main workflow. For example it could be divided by tasks, person, roles, department, etc. This will greatly simplify the representation of the workflow. Let's says someone is responsible for data entry at many critical moments. We can group all his tasks in one module (or sub-workflow) containing the same activities, inputs, outputs and conditions. Modules could be inter-dependants and related.

A state is where we are located in a module. In simple workflows there is only one active task. In real life we are multi-threaded! So maybe in one module many states could be active at the same time. The state also includes active inputs, outputs and memory bits.

An input is something required to perform an activity for evaluation a boolean condition. It could be a document, a piece of data, a signal...

An output is something resulting from a task: an information, a document, a signal...

Enough definitions?

Then simply convert your workflow into a LADDER LOGIC and you have your states!
See Ladder Logic definition on Wikipedia

You display only active states:

  • Active task(s) for the module
  • Inputs required / inputs confirmed
  • Output required / output realized
  • Conditions to continue

Seems abstract?

Here is a small example...

Janet enters data in the system. She manages the green tasks of the diagram. We focus only on her work, not other tasks. She knows how to do 16 tasks in the workflow. We are waiting the following actions from her to continue, and her Intranet dashboard says:

Priority 1: You must send a PO to order enough pencils for the next month based on the sales report.

  • Task: Send a purchase order
  • Inputs: Forecast report from the marketing department
  • Outputs: PO, vendor, item, quantity
  • Condition for completion: PO sent and order confirmation received from supplier

Priority 2: You must enter into the financial system the number of erasers rejected by production

  • Task: Data entry
  • Inputs: Reject count from production
  • Outputs: Number of rejects
  • Condition for completion: data entered and confirmed

We do a lot of troubleshooting on automated production systems having hundreds of thousands ladder steps (the workflow is too complex to be represented in a whole). When the system is blocked we look at each module and determine what inputs are missing to activation task completion.

Good luck!

凌乱心跳 2024-09-17 05:09:58

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

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

维基百科页面列出了几个可用的实现。此外,Oracle 的 JDeveloper IDE 还包括一个 BPEL 制图工具,作为其 SOA 套件的一部分;不幸的是,它不再是标准安装的一部分,但仍然可用。 了解更多

This sounds like the sort of application for which BPEL is suited.

Of course you don't want to re-architect your system right now. But there are a number of BPEL implmentations out there, some of which include graphical editing tools. One of these might help you in your current situation, because they are good at handling scope and hiding detail. So I think you might derive benefit from drawing your workflow as a BPEL diagram even if you don't do anything else with the language.

The Wikipedia page lists several of the available implementations. In addition, Oracle's JDeveloper IDE includes a BPEL Diagrammer as part of its SOA suite; unfortunately it is no longer part of the standard install but it is still available. Find out more.

祁梦 2024-09-17 05:09:58

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

您可能需要不止一份更高级别的文档。

Try doing it in layers. You have the most detailed layer done, now add additional docs with the details hidden, grouped into higher-level business processes. Users should be able to safely ignore some of those details, but it's good for them to have visibility of how their part fits in to the whole.

You may need more than one higher-level document.

两个我 2024-09-17 05:09:58

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

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

这也将帮助用户验证他迄今为止为达到当前状态所做的操作。但随着用户完成的步骤数量的增加,这种呈现方式可能会变得很麻烦。假设用户几乎已经到达工作流程的末尾。为了检查下一步,他应该完成所有可能让用户感到沮丧的步骤。

为了避免这种情况,您可以将整个工作流程按时间顺序分为 3-5 个阶段。应按逻辑划分阶段。最终目标是不让用户因完整的工作流程而不知所措。就我个人而言,如果按照您所展示的方式呈现,我会尽力避免涉及此工作流程的任务。无意冒犯。我敢打赌你也有同样的感觉。

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

You can use Prezi to present this information to users in a lucid manner.

  • Split and present the work flow into phases such that the end user is easily able to identify the phase he is currently in.
  • Display as many number of phases as the number of inputs. The workflow starts with 6 different inputs so display the six different buttons on screen enabling the user to select the input that he wants.
  • On selecting the button zoom into the workflow depicting the next steps. This would also help the user to verify the actions that he has done so far to reach the current states.

This would also help the user to verify the actions that he has done so far to reach the current states. But this way of presenting could become cumbersome for the users as the number of steps that he has completed goes up. Say the user has almost reached the end of the workflow. To check for the next step he should go through all the steps which might frustrate the user.

To avoid this you can split the complete work flow chronologically into 3-5 phases. The phases should be split logically. The ultimate aim would be not to overwhelm the users with the full work flow. Personally i would try to avoid the task involving this workflow if presented the way you have shown. No offense. I bet you also feel the same.

Could give you a better picture if you could re-post the image after replacing the state names with numbers.

琉璃繁缕 2024-09-17 05:09:58

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

I'd recommend having the whole flow documented somewhere, but in terms of what is distributed to users, how about focusing on task-oriented flows? No one user will be responsible for the entire process I would imagine.
For example, let's say I have 2 roles, A and B, and 6 tasks, 1 through 6, executed in order. Each task may have multiple steps but is self-contained (e.g. download the file, review, run process, review again, upload). A does the even tasks and B does the odd tasks.
A would need to know about those detailed steps that comprise tasks 2, 4, and 6 but not about what goes on in 1, 3, and 5. So hand A a detailed set of flows for the tasks he is responsible for, along with a diagram that treats each task as a black box.
If the flow can't be made modular in this way, you may want to review the process itself to see why it's so complex.

甜嗑 2024-09-17 05:09:58

展示一个工作流程场景的示例(即展示一次可能通过工作流程的转换)怎么样?您可以将其迎合特定的用户配置文件,并突出显示相关状态,使其他状态变暗。这使他们能够通过查看现实生活中的示例来清楚地了解转换。

How about showing an example of a workflow scenario, that is, showing the transitions in one possible passing through the workflow? You could cater this to a specific user profile and highlight the pertinent states, dimming the others. This allows them to get a clear idea of the transitions by seeing a real-life example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文