Activtivitiクイック・エントリー・ガイド(Javaによるサービス・タスクの作成)

3859 ワード

Javaによるサービスタスクの作成
前述したように、デルのプロセスには、「Generic and Automated Data Entry」アクティビティ(仮想バックエンドコール)があり、入社経験が3年未満の場合、提供されるように、「スクリプトタスク」として条件付きで実行されます.この場合、Javascriptを実行してシステム処理手順を説明します.このスクリプトタスクをJavaに移行し、Javaの強力な機能がさまざまなプロセス要件を満たす方法を説明します.
次のように新しいJavaクラスを作成します.
ファイル:$mvnProject/src/main/java/com/example/automatedDataDelegate.java
package com.example;

import java.util.Date;

import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;

public class AutomatedDataDelegate implements JavaDelegate {

  @Override
  public void execute(DelegateExecution execution) throws Exception {
    Date now = new Date();
    execution.setVariable("autoWelcomeTime", now);
    System.out.println("Faux call to backend for [" 
    + execution.getVariable("fullName") + "]");
  }

}

スクリプト・タスクをAutomatedDataDelegateのサービス・タスクに変更します.
ファイル:$mvnProject/src/main/resources/onboarding.bpmn 20.xml


  
...
    
      <![CDATA[var dateAsString = new Date().toString();
execution.setVariable("autoWelcomeTime", dateAsString);]]>
    
...

置換:


  
...
   

「mvn package」を実行してコードをパッケージ化します.
以前のようにJavaプログラムを実行し、次の例の出力に注意します.
ProcessEngine [default] Version: [5.22.0.0]
Found process definition [Onboarding] with id [onboarding:1:4]
Onboarding process started with process instance id [5] key [onboarding]
Active outstanding tasks: [1]
Processing Task [Enter Data]
Full Name?
John Doe
Years of Experience? (Must be a whole number)
3
Faux call to backend for [John Doe]
BEGIN Onboarding [onboarding] Sun Nov 27 22:57:32 EST 2016
-- Start [startOnboarding] 4 ms
-- Enter Data [enterOnboardingData] 10153 ms
-- Years of Experience [decision] 2 ms
-- Generic and Automated Data Entry [automatedIntro] 0 ms
-- End [endOnboarding] 0 ms
COMPLETE Onboarding [onboarding] Sun Nov 27 22:57:42 EST 2016

出力「Faux call to backend for[John Doe]」を見て、以前に設定したフロー変数へのアクセス方法を説明します.
この簡単な例では、アプリケーションにプロセスドライバを追加する抽象的な簡便性と強力な機能について説明します.
下一篇:プロセスインスタンスの実行