Leo Yeh's Blog

SAS Viya (115)

教學目標

初步了解 SAS Workflow Manager 中服務任務的基本概念。

重點概念

首先許多產業的企業透過採用企業流程管理 (Business Process Management,BPM) 實務來管理應用程式,資料和人員的整合,其是營運管理中的一門學科,人們使用各種方法來發現,建模,分析,測量,改進,優化和自動化商業流程,以致力於透過管理業務流程來提高企業績效,並且用於管理業務流程的任何方法組合皆是企業流程管理,其中流程能夠為結構化的和可重複的,也能夠為非結構化的和可變的。簡單來說需要人工處理任務的系統皆會自動觸發服務,而我們在 SAS Viya 平台中主要透過 SAS Workflow Manager 提供了將基礎工作流程管理快速整合至企業營運和商業產品中的工具,此外 SAS Workflow Manager 2.2 主要提供基於符合企業流程模型和符號 (Business Process Model and Notation,BPMN) 之 2.0 標準的開放源始碼引擎,其支援視覺化表示和行為的產業標準,並且為已建立的工作流程模式提供支援,因此能夠達到高效率和可擴展性,以及與其它標準業務流程工具軟體進行整合。

接著使用 SAS Workflow Manager 開發和啟用工作流程定義,主要會先製訂工作流程定義的草稿,我們能夠建立新的工作流定義或導入現有定義,並且對其進行修改和儲存定義的工作草案,並且將草稿保存為當前版本,僅有我們能夠查看和編輯當前版本,並且建立工作流程的編號版本。而具有相對應權限的任何使用者皆能夠查看工作流程定義的編號版本,並且啟用特定版本的工作流程,以及為了使最終使用者的客戶端應用程式能夠建立工作流程的執行實體,您必須啟用特定版本的工作流程定義。此外在工作流程定義中主要能夠定義「服務任務」,其主要是調用可進行業務操作的任務,當工作流程執行到達服務任務時,將會自動觸發這些操作,像是我們能夠使用服務任務執行以下四大類型的操作:

  1. 向流程參與者和群組發送有關截止日期或狀態更改的電子郵件。
  2. 透過執行網路服務與其他應用程式進行通訊。
  3. 執行企業專屬的業務邏輯或規則。
  4. 將系統與其它後端系統進行整合。

再來我們在定義網路服務任務時,可以選擇以下不同類型的操作,分別為調用 REST 或 SOAP 網路服務、發送電子郵件或向單個使用者或群組發送通以及調用作業執行服務中已定義的作業,請注意我們必須先設定執行工作流程中的服務性帳號,主要透過 SAS Environment Manager 設定在「sas.workflow.client.sasmodelmanager 」中的「defaultServiceAccount 」欄位設定授權使用者,若沒有進行設定將會在執行服務任務時發生以下錯誤訊息,此錯誤訊息主要是我們透過服務任務調用 REST 網路服務時,發生無法正常執行的錯誤訊息,並且在「/var/log/sas/viya/workflow/default/sas-workflow_2019-08-20_06-59-04.log」的記錄檔中所發現「No account configured to execute Service Tasks.」關鍵字。

1
2
3
4
5
2019-08-20 08:47:13.601 ERROR 12994 --- [o-auto-1-exec-8] c.s.w.s.d.m.s.WorkflowOAuth2Service      : sasdemo01(69acc283) [886378ce2d2b4a80] [SERVICE_TASK_NO_SERVICE_ACCOUNT_CONFIGURED] No account configured to execute Service Tasks.
2019-08-20 08:47:13.602 ERROR 12994 --- [o-auto-1-exec-8] c.s.w.s.d.m.s.WorkflowServiceTask : sasdemo01(69acc283) [886378ce2d2b4a80] [SERVICE_TASK_EXCEPTION] ServiceTask exception: processId=WFacd20190-3e1f-434d-b58b-5456013540ad, processDefinitionId=WF6a7ce2ce-a372-4030-8bf2-6a3c29c6100d, executionId=WFe38e644e-7651-4f42-ae35-53d2b0cf12ff, activityId=WF3A1150B6-9ECD-4868-BE95-03770DF5E35E
2019-08-20 08:47:13.628 ERROR 12994 --- [o-auto-1-exec-8] c.s.c.r.e.CompleteExceptionHandler : sasdemo01(69acc283) [886378ce2d2b4a80] [INTERNAL_SERVER_ERROR] Internal server error. Request: uri=/workflow/processes;client=203.66.12.194;session=A085E8290055EF0EC4D8C8C45241FC08.workflow-10-140-0-9;user=sasdemo01. Error details: org.flowable.engine.common.api.FlowableException - 'No account configured to execute Service Tasks.'
2019-08-20 08:47:13.638 ERROR 12994 --- [o-auto-1-exec-8] com.sas.commons.rest.ExceptionLog : sasdemo01(69acc283) [886378ce2d2b4a80] org.flowable.engine.common.api.FlowableException: No account configured to execute Service Tasks.
2019-08-20 08:47:13.638 ERROR 12994 --- [o-auto-1-exec-8] com.sas.commons.rest.ExceptionLog : sasdemo01(69acc283) [886378ce2d2b4a80] caused by: com.sas.workflow.service.domain.model.WorkflowRuntimeException: No account configured to execute Service Tasks.

最後當我們設定完成設定執行工作流程中服務任務的服務性帳號之後,建議透過「/etc/init.d/sas-viya-workflow restart」指令重新啟動 Workflow 服務,並且重新登入 SAS Viya 平台啟用工作流程,此時就能夠正常執行服務任務,以利與企業內部的流程和系統進行整合應用。此外我們更能編輯畫面右上方的定義屬性,進行定義屬性的相關設定,並且在服務任務中,以「${屬性名稱}」的方式動態替換為工作流程中對應屬性的內容,這對於後續維運人員來說將會是一個非常棒的實用功能,僅需要修改一個屬性就能夠同時更新多個服務任務中執行的內容。

相關內容

⬅️ Go back