Activitiワークフロー戦闘要約の使用

など出席、金融、契約、など特にシステムでは、かなり普及する必要が内部管理システム、と私たちの毎日の仕事のワークフローは、それから切っても切れないです。金融技術の私達の分野では、融資承認、リスク管理や監査の他の側面を中心にワークフロー。ワークフローが一定のしきい値を持っているので、まだエンタープライズアプリケーションのためのワークフローのオープンソースのフレームワークを満たすことができないで、それはできない、サポートのワークフローに知られているいくつかの国内CMSのオープンソースプロジェクトもActivitiの単に導入であるか、比較的単純なワークフローを実現するためにされています完全に満たす一般的なエンタープライズアプリケーション。

Activitiは、最も人気のあるオープンソースのワークフローフレームワークですが、西洋で異なる文化や組織の違いにより、中国風のエンタープライズアプリケーションを実行するより困難な高Activitiを取り、変換がかかります。

ここで発生した問題を解決するための考え方やアイデアのActivitiワークフロー共通点を記録することは、より実用的でより複雑になります。

1は、TO-DO、需要がプロセス指向タスク指向Activiti関連のAPIであるされて行う必要があります

例えば、需要下図
ここに画像を挿入説明
Activitプロセスでは、複数のタスクで構成されている、と私たちの中国の需要は、あなたがより多くの承認プロセスの二倍承認タスクよりも、このプロセスに関与している場合でも、プロセスは一度だけ許可されている型式承認され、また、あなたは一度だけ表示するようにする必要があります。

ここでは、タスクTaskServiceプロセス・インスタンスIDをチェックアウトする必要があるその後、デエンファシス、クエリAPIの呼び出しに重いタスクが使用できなく、治療になるとより良い終わり、一般的にはデータの無い量を、それをする必要はありません後場合は、偽のページング技術とメモリのページングには大きすぎるだろう。以上を経て過去のデータの蓄積がそれを行う方法を、次に使用する偽のページングには適していません、累積され、かつますので?我々のアプローチは、特定のテーブルを記録するために、プロセスの最後に、すべての参加者のこのプロセスと承認をPROCESS_COMPLATEのイベントリスナーを追加することです。このテーブルでのスタートは、クエリをページングする場合、クエリのフィールドの完了にActivitiのAPIを呼び出すページフローで見つかりました。

2、動的な実行時には、追加または削除するノード

これは、BPMN仕様と完全に矛盾しているが、それはまた、広範な需要があるが、中国風のケースの承認のシーンは、多くの場合、運転中に発生する動的に追加または削除誰かにこの作業をしたい気まぐれな指導者としてのノードは、(それを副署しましたあなたは、ユーザー定義のタスクを設計しているとき、人として定義されているすべてのタスクは、タスクを起動した場合)、それは、シングルプレイヤーミッションになることで、コストが高すぎます。私は、それはあなたがActivitiを達成することがハックするために、これを行うことが推奨されていない、これを行うことができないActivitiであることを後悔します

生成された後スキームActivitiプロセス定義は、フロー実行中のインスタンスで、ノードは、定義により、「静的」で動的に生成され、多くの異なるワークフローで構成されている欠失、することができません。この点が唯一の顧客のニーズを管理しようとすることができます。

3、プロセスは非常に重要なタイトルスポンサーであります

プロセスとタイトルスポンサーは中国の型式承認要件で極めて重要であり、タイトルは一般的に、二つの変数の追加をサポートするために必要な変数をデフォルトで生成することができ、Activitiにカスタマイズすることができなされる必要があるときに、プロセスが開始する、などapplyUserIdとタイトル。

4、重要な双方向のマッピング

承認は常に、このような融資承認プロセスは、融資申請プロセスから、融資申請番号をマップとして、業務に関連しているが、見つけることができ、また、プロセスからの融資申請を見つけることができるようにする必要があります。通常、指定されたbusinessKeyをbusinessTable +スタートアッププロセスとして、テーブル内のビジネスプロセスインスタンスIDフィールドに増加する「:」+ businessId、従って双方向のマッピングを確立します。

5、看板

予定タスクは、それらのいずれかの3に表示されるユーザー・グループが受領した後、タスクの方法クレームによって処理され、その後に署名となり、概念は、金融コングとして、一般的にタスクチームを処理するために使用Acvitiサイン、看板と呼ばれ、3人がいるがありますタスクは、他の2つは、削除を行うになります。あなたが看板の概念を公開したくない場合は、署名した後、complate請求方法を、強調することで、同じ時間を、適用されますが、同時承認の問題に注意を払うが存在してもよいことができます。

6、ユーザーとユーザーグループ

Activitiユーザーおよびユーザーグループとユーザーのニーズやシステムの役割は、ユーザー名、関連性役割をコードするユーザグループとロールに関連付けられたユーザーを使用して、ユーザとシステムを同期させます。分割する使用権システムの観点からシステムの役割とワークフローの役割、システムの役割、及びワークフロー承認ワークフローの観点からロールである。役割は、2つのカテゴリに分けます。仕事_ストリームの先頭:それは簡単にロールが命名されているワークフローの役割のミックスを、発生していない状況のこれらの2つのタイプを区別できるようにすること。たとえば、次のワークフロー_会長、ワークフロー_コーポレートファイナンス。

7.戻ります

次の図の需要:

ここに画像を挿入説明

中国のスタイルは、多くの場合、シーンの承認はまだ、そのような第四承認における現在のノードとして、ノードに戻るには、第一、第二、第三項にノードを返すことができるようにする必要性を必要とするが必要です。私を信じて、あなたは設計プロセスに設計アプローチを使用する勇気があるなら、複数の線を描く、プロセスは設計が非常に複雑になったことを保証します。このActiviti主なタスクは、彼がジャンプしなかった理由であるが、幸いそれはジャンプにJumpTaskCmdの方法で達成されました。また、クエリ返金ノードで、重複ノードをフィルタリング、再度処理を繰り返しバウンスケースの承認を検討します。

8、不可欠なプロセス介入

条件付きクエリ処理を含む、タスクが任意のプロセスに割り当てられ、タスクが他のノードにジャンプ、必要な機能であり、フローラインはROMSポイント。愚か者としてユーザーを配置しようとすると、私も繰り返し、管理者の介入を必要に応じて機能せず、それができるだけで、唯一誤っ特定の事業分野の状況を見つけることを通じて、承認プロセスの後にいくつかの不注意なユーザーに会いました変化を達成するために、データベースのテーブル。具体的には介入機能を必要とし、この状況はそれに自分のビジネスと組み合わせてどのようなものです。

9、統合されたダイアグラムビューア

図ビューアプラグインフローチャートを表示するためである、ネイティブは使用で間に合わせるにはあまりにも醜い美しいではないではありません。

10、図モデラー集積:
ここに画像を挿入説明
11、およびオンラインバージョン管理プロセス

モデル管理する必要があるが、統合Modelerは、新規および変更されたモデルであってもよいが、また、彼らは新しいプロセスの設計を使用する前にモデルを公開します。ラインがどのようにオンライン環境に同期させるように設計モデル?これは、モデルのエクスポートおよびインポート機能を提供する必要になります。直接望ましいへのさらなる使用のSQL、プロセス定義であるため、バイナリデータ、使用SQL導入後のトランスコード処理は、データの損失を引き起こす可能性があります。もちろん、非常にシンプルな展開シナリオは、直接一緒にワークフロープロセスとコードを指すことも可能です。

12、業務データベースのテーブルの設計ポイントの承認

通常、新しいプロセスがアップデート、新しいクラスの必要性だけで純粋なデザインに加えて、インスタンスへのプロセス・インスタンスに関連する通常のプロセスIDフィールドを持つ純粋なクラスまたはビジネスクラスで見て。ビジネスの更新クラスの場合は、ドラフトビジネステーブルと同じ構造を持つテーブルを設計することが最善である承認プロセスが完了すると、その後、ドラフトを通してリスナーは、ビジネステーブルにアプリケーションのバックを更新します。

図13に示すように、拡張されたプロセス設計の譲受人

Activitiユーザタスクは、人間の条件のいずれかの候補者や治療をかなり単純な割り当て、またはユーザーグループを指定し、中国ではこのタイプの承認が全く不十分である、それはまた、デザインに拡張する必要があり、この方法は、JSONに設定されている譲受人のフィールドを使用することですイベントがTASK_CREATED、JSONの動的解像度を発生した場合、それぞれの実際のJSON拡張条件は、この変数算出JSON構成と人の流れは、実際のプロセスを取得します。さて、ときに、このプロセス設計入力文字列JSONはあなたにもモデラーを向上させるために、さらに、JSONのこの文字列を生成した条件に応じて、UIを提供する必要があるので、人類に対してとなります。

最初のタスクを完了するために14、

スポンサーノードは、次の2つのデザインを持って、1は直接承認タスクへの次のノードStartEvent上、省略されているが、タスクは通常返されますが、最初に必要とするので、プロモーターはまた、破壊されたり、操作のために再適用され、そうでする必要がありますデザインの2種類:イニシエータUserTaskにノードを追加して、それは我々が自動的にこのタスクの最初のユーザーを後援するために覚えておく必要があるプロセスを開始します。

15、一般的なフォームデザイン

正直なところ、この重いワークロードは、あなたformKeyマップによって確立されたプロセスの設計によって生成されたHTMLフォームデザイナを格納するための最初の必要性、実行時にformKeyを通じて対応するフローを表示するフォームを見つけます。彼らはサービスデータによって行うことがしたい場合は非運用データは、通常は自動的に生成DDLフォームは、データベース・テーブルを定義し、一般的な形式で保存することができる場合には困難がまだ後に、ユーザーは、保存されたフォームデータを記入する必要がありますしかし、このアプローチは、メンテナンスや安全上の問題を引き起こしています。そのような共通のフォーマットJSON / XML、マッピングルールによって特定の処理の後、トラフィックは、指定されたテーブルにマッピングされたような別のアプローチ。

財団はフォームデザイナ、ドラッグアンドドロップフォーム開発、開発のこの形式の急速な発展のためのXJR JAVAフレームワークを試すことができます良いない場合、プログラミングベースは、開発するために、このコンポーネントを使用していないに直接公開することができ、完全なフォームを開発することができますコンパイラのないメニュー機能を使用することができます。カスタムフォーム許可制御にしています。
ここに画像を挿入説明
ここに画像を挿入説明
16、聞き上手

リスナーはあなたのtaskService、リスナーが非同期ではなく、それはあなたがTASK_COMPLATEイベントリスナーを持っている場合、異常が報告ならば、ある同じスレッドでイベントソースを生成し、非同期リスナーがありませんが、非同期ではありませんcomplateイベントは完全ではありません。また、ローカル・リスナーは、設計プロセスに見ているので、むしろローカル・リスナーを使用するよりも、グローバルなリスナーを使用することをお勧めします、どこでも散乱し、維持するのが難しいビジネスコードになります。

17、熱い展開プロセス

第一層は、ラインの熱い展開は、ファイルアップロード機能により、ラインに優れたプロセス設計、デプロイのアップデートでサポートしています。終了後の力への展開のために設計されたモデルを使用してオンラインモデラー、さらに。古いプロセスの発効後は、最新のプロセス・デザイン・フローに応じて影響を受けた、だけでなく、古いプロセスの設計フローに応じて、新しいプロセスされることはありません。

18、プロセスが破壊され、再適用されます

この排他的なデザインにケーブルを介してゲートウェイが、この時点での破壊過程がBanjieの内部で登場です後。ユーザーのニーズを完全に削除し、それにした場合もdeleteProcessInstance、deleteHistoricProcessInstanceドラフトリストと削除ビジネス関連レコード(もしあれば)

19、副署

副署それが投票に来るが、一般的に、それは一般的に両方のケースで使用されている話します。一つは、他の裁判で、彼は彼が他の人の意見を参照して、承認プロセスになります、で通過する人で、通過だけ皆です。選挙でActiviti、二complate自タスクのための最初のネイティブサポートとそのマルチミッションに参加する人々を副署。

私が選ぶ20、Activitiので、多くのバージョン、

現在、比較的より成熟したバージョンが存在中にバージョン6.x 7.xのにアップグレード非常に短いとすぐに、5.22で、2018年に6.0 alaphaの私もバグの多くを測定した試みたバージョン、そして今は、最新バージョンがされました7.1は、少し機能に変更し、主にクラウドネイティブ、弾性マイクロサービス指向とドッカーは、重要な建築アップグレードK8S支援を行いました。マイクロサービスは、あなたがActiviti-残りActiviti5は、SOAのActiviti Activitiであると近似することができ、それは、サービスのマイクロバージョン7です。前に述べたようにしかし、Activitiは、国内の使用は変換が直接ネイティブのマイクロサービスをパッケージ化することなく、今、行われる必要がある友好的ではない、実際には完全なワークフローではありませんもたらしました。FormServiceとTaskService関連するインタフェースも行われた変更のためのマイクロ・サービスのサポートだけでなく、美しい旧バージョンと最新のモデラーのバージョンではないとして良いに加えてActiviti 7。(記事の転載明鄭)

公開された16元の記事 ウォンの賞賛3 ビュー1191

おすすめ

転載: blog.csdn.net/weixin_45227226/article/details/104916667