Activiti7 ---さまざまな段階でのデータベーステーブルの内容の変更

1.説明

この記事は、immort.Liuのブログ投稿を参照しています。

2. Activiti7の各段階でのデータベーステーブルの変更

2.1プロセスの展開フェーズ

2.1.1コード

	/**
     * 部署流程
     */
    @Test
    public void testDeployProcess() {
    
    
        Deployment deploy = repositoryService.createDeployment()
                .addClasspathResource("processes/test.bpmn")
                .addClasspathResource("processes/test.png")
                .name("测试数据库内容变化-1")
                .deploy();
        System.out.println("流程部署ID:"+deploy.getId());
        System.out.println("流程部署名称:"+deploy.getName());
    }

2.1.2変更された表

展開フェーズ中に変更されたテーブルは次のとおりです。

  • act_ge_bytearray (资源表)
  • act_re_deployment (流程定义部署表,存储流程部署信息)
  • act_re_procdef (流程定义表,记录流程定义信息)

2.1.3表のデータの内容

  • act_ge_bytearray

ここに画像の説明を挿入

  • 最初の行はbpmnのxmlファイルを格納します

  • 2行目にはPNG画像ファイルが保存されています

  • act_re_deployment
    ここに画像の説明を挿入
    上の図はこれらのデータのソースを説明しており、展開中にテーブル内の他のフィールドを設定することもできます。

  • act_re_procdef
    ここに画像の説明を挿入
    上記の表のキーフィールドを使用してプロセスを開始できます。この記事では、キーを使用してプロセスを開始します。

2.2プロセスインスタンスを開始する

2.2.1コード

	/**
     * 启动流程
     */
    @Test
    public void  testStartProcess(){
    
    
        securityUtil.logInAs("salaboy");
        //启动流程实例,同时还要指定业务标识businessKey
        //第一个参数:是指流程定义key
        //第二个参数:业务标识businessKey
        ProcessInstance test = runtimeService.startProcessInstanceByKey("test","1001");
        System.out.println("流程实例id:"+test.getId());
        System.out.println("流程部署id:"+test.getProcessDefinitionId());
    }

2.2.2変更されたテーブル

  • act_hi_actinst
  • act_hi_identitylink
  • act_hi_procinst
  • act_hi_taskinst
  • act_ru_execution
  • act_ru_identitylink
  • act_ru_task

注:通常、act_hi_の先頭のレコードは、プロセスインスタンスの実行後に削除されません。

2.2.3表のデータの内容

  • act_hi_actinst
    英語のスペル:activiti_history_action_instance
    変換:activiti_史_活动_instance
    アクティビティインスタンス:個人的には、購入申請の説明など、プロセス内のノードだと思います。処理された
    タスク(アクティビティインスタンス)ごとに、レコードがテーブルに追加されます。
    ここに画像の説明を挿入
  • act_hi_identitylink
    英語の完全なスペル:activiti_history_identity_link
    翻訳:activiti_historical_identity_contact

ここに画像の説明を挿入
各プロセスインスタンスのタスク参加者の履歴情報を記録します(各参加者の1つを記録します)。

  • act_hi_procinst
    英語の完全なスペル:activiti_history_process_instence
    変換:activiti_史_process_instance
    説明:プロセスが開始されるたびに、プロセスインスタンスが生成されます。表にはもう1つの情報があります。

ここに画像の説明を挿入

  • act_hi_taskinst
    英語の完全なスペル:activiti_history_task_instence
    変換:activiti_historical_task_instance
    テーブルは、実行された(保留中を含む)タスクインスタンスをそれぞれ記録します

ここに画像の説明を挿入

  • act_ru_execution
    英語の完全なスペル:activiti_run_execution
    変換:activiti_跑_exec
    テーブルに格納されているデータ構造はツリー構造です。つまり、テーブルには親フィールドがあります。
    説明:プロセスインスタンスの実行。現在、ブランチが1つしかない場合、プロセスインスタンスにはレコードが1つだけあり、実行テーブルの主キーIDはプロセスインスタンスIDと同じです。現在実行中のブランチが複数ある場合、実行テーブルには複数のレコードがあります。実行テーブルの主キーがプロセスインスタンスIDと異なるレコード。現在ブランチがいくつあるかに関係なく、実行テーブルには、プロセスインスタンスIDと同じ主キーを持つレコードが常に存在します。プロセスインスタンスが実行されて完了すると、このテーブル内のプロセスインスタンスに関連するレコードが削除されます。

ここに画像の説明を挿入

  • act_ru_identitylink
    英語の完全なスペル:activiti_run_identity_linkの
    翻訳:activiti_execution_identity_link
    説明:プロセスインスタンスに2人の参加者zhangsanとlisiが存在する場合、zhangsanの実行を待機しているときに、参加者を未完了のプロセスインスタンスに格納します。このプロセスインスタンスには1つのレコードしかありません。shangsanの実行が完了し、lisiが実行する番である場合、このプロセスインスタンスには2つのレコードがあります。このプロセスインスタンスの実行が完了すると、この表では、完了したプロセスインスタンスに対応するすべての参加者が削除されact_hi_identitylinkますが、テーブルは削除されませんテーブル名がわかります。

ここに画像の説明を挿入

  • act_ru_task
    英語の完全なスペル:activiti_run_task
    翻訳:activiti_execute_task
    説明:テーブルは、未完了のプロセスインスタンスで保留中のタスク(処理されるノード)を格納します。一般的に言えば、各プロセスインスタンスのテーブル内のレコードは1つだけです。

ここに画像の説明を挿入

2.3タスク処理

2.3.1コード

	/**
     * 查询及完成任务
     */
    @Test
    public void testTaskProcess(){
    
    

        List<Task> list = taskService.createTaskQuery()
                .taskAssignee("user1")
                .list();
        for (Task task : list) {
    
    
            System.out.println("任务id:"+task.getId());
            System.out.println("任务处理人:"+task.getAssignee());
            System.out.println("流程实例id:"+task.getProcessInstanceId());
            //完成任务
            taskService.complete(task.getId());
        }

    }

2.3.2変更されたテーブル

  • act_hi_actinst
  • act_hi_identitylink
  • act_hi_taskinst
  • act_ru_execution
  • act_ru_identitylink
  • act_ru_task

注:通常、act_hi_の先頭のレコードは、プロセスインスタンスの実行後に削除されません。

2.3.3表のデータの変更

表の特定の変更は、セクション2.2.3の表と比較できます。

  • act_hi_actinst
    英語の
    フルスペル:activiti_history_action_instanceが翻訳:activiti_史_活动_instance
    アクティビティインスタンス:個人的には、これは購入リクエストなどのプロセス内のノードだと思います。
    タスク(アクティビティインスタンス)が処理されるたび、レコードがテーブルに追加されます。
    テーブルの変更:タスクが処理された後、このテーブルにレコードが追加されます。タスクが処理されたため。

ここに画像の説明を挿入

  • act_hi_identitylink
    英語のフルスペル:activiti_history_identity_link
    変換:activiti_historical_identity_contactこれ
    は、各プロセスインスタンスのタスク参加者の履歴情報を記録します(各参加者について、1つ記録します)。
    テーブルの変更:テーブルにレコードが追加されました。その理由は、現時点でlisiがタスクを処理するのを待っているからです。もう一つのアイデンティティ。

ここに画像の説明を挿入

  • act_hi_taskinst
    英語の完全なスペル:activiti_history_task_instence
    変換:activiti_historical_task_instance
    テーブルは、毎回実行さ
    れたタスクインスタンステーブルの変更を記録します(実行されるものを含む):プロセスが1つ完了したため、テーブルにレコードが追加されましたタスクインスタンス、2番目のタスクインスタンスを処理する時が来ました。したがって、追加のレコードがあります。

ここに画像の説明を挿入

  • act_ru_execution
    英語のすべてのスペル:activiti_run_execution
    変換:activiti_exec_execution
    注:テーブルに格納されるデータ構造はツリー構造です。つまり、テーブルには親フィールドがあります。
    注:プロセスインスタンスが実行されます。現在ブランチが1つしかない場合、プロセスインスタンスにはレコードが1つだけあり、実行テーブルの主キーIDはプロセスインスタンスIDと同じです。現在実行中のブランチが複数ある場合、実行テーブルには複数のレコードがあります。実行テーブルの主キーがプロセスインスタンスIDと異なるレコード。現在ブランチがいくつあるかに関係なく、実行テーブルには、プロセスインスタンスIDと同じ主キーを持つレコードが常に存在します。プロセスインスタンスが実行されて完了すると、このテーブル内のプロセスインスタンスに関連するレコードが削除されます。
    テーブルの変更:プロセスインスタンスの2番目のレコードがテーブルで更新されます。前のタスクインスタンスが処理され、処理される現在のタスクインスタンスが変更されたため、テーブルの対応するレコードが更新されました(以下)写真の方が表示が優れています)
    上記のレコードはタスク処理前であり、後者はタスク処理後です。

ここに画像の説明を挿入

  • act_ru_identitylink
    英語の完全なスペル:activiti_run_identity_linkの
    翻訳:activiti_execution_identity_link
    説明:プロセスインスタンスに2人の参加者zhangsanとlisiが存在する場合、zhangsanの実行を待機しているときに、参加者を未完了のプロセスインスタンスに格納します。このプロセスインスタンスには1つのレコードしかありません。shangsanの実行が完了し、lisiが実行する番である場合、このプロセスインスタンスには2つのレコードがあります。このプロセスインスタンスの実行が完了すると、この表では、完了したプロセスインスタンスに対応するすべての参加者が削除されact_hi_identitylinkますが、テーブルは削除されませんテーブル名がわかります。
    テーブルの変更:レコードが追加されました。

ここに画像の説明を挿入

  • act_ru_task
    英語の完全なスペル:activiti_run_task
    翻訳:activiti_execute_task
    説明:テーブルは、未完了のプロセスインスタンスで保留中のタスク(処理されるノード)を格納します。一般的に言えば、各プロセスインスタンスのテーブル内のレコードは1つだけです。
    テーブルの変更:このプロセスインスタンスに対応するレコードがテーブルで更新されます。現在処理が必要なタスクの例を常に表示します。

ここに画像の説明を挿入

2.4プロセスの終了

すべてのタスクが完了すると、プロセスが終了します。

2.4.1コード

 	/**
     * 查询及完成任务
     */
    @Test
    public void testTaskProcess(){
    
    

        List<Task> list = taskService.createTaskQuery()
                .taskAssignee("user2")
                .list();
        for (Task task : list) {
    
    
            System.out.println("任务id:"+task.getId());
            System.out.println("任务处理人:"+task.getAssignee());
            System.out.println("流程实例id:"+task.getProcessInstanceId());
            //完成任务
            taskService.complete(task.getId());
        }

    }

2.4.2変更されたテーブル

セクション2.3の表と同じ

  • act_hi_actinst
  • act_hi_identitylink
  • act_hi_taskinst
  • act_ru_execution
  • act_ru_identitylink
  • act_ru_task

注:通常、act_hi_の先頭のレコードは、プロセスインスタンスの実行後に削除されません。

2.4.3表のデータの変更

  • act_hi_actinst
    英語の
    フルスペル:activiti_history_action_instanceが翻訳:activiti_史_活动_instance
    アクティビティインスタンス:個人的には、これは購入リクエストなどのプロセス内のノードだと思います。
    タスク(アクティビティインスタンス)が処理されるたび、レコードがテーブルに追加されます。
    テーブルの変更:タスクの処理後、このテーブルはレコードを追加します。タスクのため。

ここに画像の説明を挿入

  • act_hi_identitylink
    英語の完全なスペル:activiti_history_identity_link
    翻訳:activiti_historical_identity_contact
    各プロセスインスタンスのタスク参加者の履歴情報を記録します(各参加者について、1つ記録します)。
    テーブルの変更:テーブルにレコードが追加されました。その理由は、プロセスインスタンスがすでに完全に実行されているためです。非常に多くのタスクインスタンスが処理されました。したがって、テーブルにはさらに多くのレコードがあります。

    ここに画像の説明を挿入
  • act_hi_taskinst
    英語の完全なスペル:activiti_history_task_instence
    変換:activiti_historical_task_instance
    テーブルは、実行された(保留中を含む)タスクインスタンスをそれぞれ記録
    しますテーブルの変更:レコードがテーブルに追加され、プロセスインスタンスが完了しました。非常に多くのタスクインスタンスが処理されました。したがって、テーブルにはさらに多くのレコードがあります。

ここに画像の説明を挿入

  • act_ru_execution
    英語のすべてのスペル:activiti_run_execution
    変換:activiti_exec_execution
    注:テーブルに格納されるデータ構造はツリー構造です。つまり、テーブルには親フィールドがあります。
    注:プロセスインスタンスが実行されます。現在ブランチが1つしかない場合、プロセスインスタンスにはレコードが1つだけあり、実行テーブルの主キーIDはプロセスインスタンスIDと同じです。現在実行中のブランチが複数ある場合、実行テーブルには複数のレコードがあります。実行テーブルの主キーがプロセスインスタンスIDと異なるレコード。現在ブランチがいくつあるかに関係なく、実行テーブルには、プロセスインスタンスIDと同じ主キーを持つレコードが常に存在します。プロセスインスタンスが実行されて完了すると、このテーブル内のプロセスインスタンスに関連するレコードが削除されます。
    テーブルの変更:テーブルが空です。すべてのプロセスインスタンスが実行されたからです。したがって、実行中のプロセスインスタンスはありません。

ここに画像の説明を挿入

  • act_ru_identitylink
    英語の完全なスペル:activiti_run_identity_linkの
    翻訳:activiti_execution_identity_link
    説明:プロセスインスタンスに2人の参加者zhangsanとlisiが存在する場合、zhangsanの実行を待機しているときに、参加者を未完了のプロセスインスタンスに格納します。このプロセスインスタンスには1つのレコードしかありません。shangsanの実行が完了し、lisiが実行する番である場合、このプロセスインスタンスには2つのレコードがあります。このプロセスインスタンスの実行が完了すると、この表では、完了したプロセスインスタンスに対応するすべての参加者が削除されact_hi_identitylinkますが、テーブルは削除されませんテーブル名がわかります。
    テーブルの変更:テーブルが空です。すべてのプロセスインスタンスが実行されたからです。したがって、実行中のプロセスインスタンスはありません。

ここに画像の説明を挿入

  • act_ru_task
    英語の完全なスペル:activiti_run_task
    翻訳:activiti_execute_task
    説明:テーブルは、未完了のプロセスインスタンスで保留中のタスク(処理されるノード)を格納します。一般的に言えば、各プロセスインスタンスのテーブル内のレコードは1つだけです。
    テーブルの変更:テーブルが空です。すべてのプロセスインスタンスが実行されたからです。したがって、実行中のプロセスインスタンスはありません。

ここに画像の説明を挿入

3.まとめ

上記の詳細なプロセス追跡の後、単純なプロセスに関係するテーブルと、最初から最後までのテーブルの内容の変更が反映され、テストが終了します。

おすすめ

転載: blog.csdn.net/Lv_vI/article/details/108235762