2010-07-15 97 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

如何顯示工作流程場景示例,即顯示可能通過工作流程的一種可能情況?您可以將這個功能應用於特定的用戶配置文件,並突出顯示相關狀態,從而爲其他用戶調光。這使他們能夠通過看到一個真實的例子來清楚地瞭解轉換過程。