Core · プラグインを使う

承認(商用版)

機能

@nocobase/app-plugin-approval は、人の判断をレコードのライフサイクルに組み込み、参加者、タスク、根拠、内容のスナップショットを管理します。休暇、購買、契約に使います。商用のプラグインなので、インストールの前にパッケージへのアクセスとライセンスを確認してください。

プラグインは承認の取りまとめと読み取り用のモデルを提供し、ページ、API、認可、タイマーはアプリが組み立てます。

シナリオと例

例:購買申請

下書きは提出するとマネージャーのレビューに移ります。マネージャーは承認するか、却下するか、下書きに差し戻します。最終的な判断と業務の遷移は同じトランザクションで行われます。差し戻された内容は、保護された業務操作で編集してから再提出します。

進捗と実行可能な操作には、runViewsFor、upcomingStagesFor、previewRoute を使います。UI Library の approval-ui のソースは、対応付けた進捗、タイムライン、プレビュー、操作の部品をレンダリングできます。

API は、身元、業務上のアクセス、タスクの資格、内容のバージョンを確認し直します。ボタンが見えるだけでは認可として不十分で、内容が変わると改めてのレビューが必要になることがあります。

開発用のプロンプト(アプリのディレクトリで作業するコーディングエージェント向け):

プレーンテキスト
ライセンスのある Approval プラグインを使って、購買申請のマネージャーによるレビューを追加してください。
業務レコードのライフサイクルは保ち、下書き、レビュー、差し戻し、最終の状態と、資格のある
レビュー担当者を定義してください。進捗と操作には公開の読み取り用のモデルと承認の画面を使い、
API で資格と内容のバージョンを確認し直してください。最終的な判断と業務の状態は一緒にコミットし、
ホストの Jobs による定期の掃除を組み込んでください。担当者がいない場合、重複、差し戻し、競合、
トランザクションの失敗をテストしてください。

完了の条件購買申請を提出、承認、差し戻しでき、資格のない操作は拒否され、トランザクションの失敗で不整合な最終状態が残らないこと。

主な仕組みと実装

以下は、この例での組み込みの領域と、想定される画面の変化です。開発作業を記述したもので、実際のファイル構成はアプリに合わせてください。

組み込みの領域コードまたは設定の変更画面と動作の変化
業務のライフサイクル、承認の設定、トランザクションの保存段階、レビュー担当者、結果を組み立てる購買の状態を判断と一致させる
業務の API と詳細ページ読み取り用のモデル、進捗、保護された操作を組み込む申請者とレビュー担当者に適切な操作が表示される
Jobs と後続の実行定期の掃除、刈り込み、実行の状態を組み込む予定の作業と業務の失敗を明示的に扱う

前提条件

Server の入口はマイグレーションと取りまとめの API を提供します。Client はロケールと読み取り用のモデルのヘルパーを提供します。承認センター、業務のエンドポイント、ワークフローのデザイナーは生成しません。

アプリが用意するもの:

  • 業務のコレクション、ライフサイクル、トランザクションの保存。
  • 認証、業務上の権限、人の名簿。
  • 承認の定義、API、ページ。
  • 定期のチェック、通知、業務上の副作用。

段階は、defineApproval、stagesFor、approvalState などの公開の API で定義します。ライフサイクルはホストの LifecycleRuntime に、その承認の設定は ApprovalService に登録します。1 つの業務レコードがプロセスを識別します。

判断を設定する

下書き、レビュー、修正、最終の状態を定義し、次に参加者、判断の方針、許可する操作を定義します。方針には、単独、全員、いずれか、順番、しきい値、独自の集約があります。転送と承認者の追加には、資格のある受け取り側の範囲が必要です。

疑問設定
だれがレビューするか参加者の解決、資格、担当者のいない段階での動作
いつ通過するか判断の方針と結果の遷移
差し戻しや転送はできるか明示的な操作、差し戻し先、受け取り側の範囲
内容は変更できるか固定するフィールド、内容のハッシュ、バージョンのチェック
承認のあとに何が起きるか業務の状態と副作用

AI 開発の制約と検証

プラグイン固有の開発の制約

  • 切り離された 2 つ目の状態ではなく、業務レコードをプロセスの識別子として使ってください。
  • 操作が見えても承認は認可されません。ユーザー、レコード、タスクの資格、内容のバージョンを確認し直してください。
  • 分離したデータで、重複、並行性、最終的なトランザクションの失敗をテストしてください。外部の実行の復旧は、人の判断の繰り返しではなく、業務の再試行の状態で行ってください。

予定の作業と検証

プラグインはタイマーを開始しません。createLifecycleJobs でホストの Jobs を組み込み、その定期の掃除のコールバックから ApprovalService.sweep() と runtime.prune() を呼び出します。

担当者がいない場合、判断のルール、重複した操作、差し戻し、内容の競合、トランザクションの失敗を検証します。外部の実行の失敗と再試行は業務の状態でモデル化し、復旧で人の承認が繰り返されないようにします。

関連:権限管理、バックグラウンドジョブ、トランザクション、プラグインを管理する。

このガイドは、商用プラグインの公開のエクスポートと例に従っています。パッケージへのアクセスと利用は、ライセンスによって異なります。

これらはあなたの組み込みの検収の要件であり、実機での検証が完了したことを示すものではありません。実際の変更、実行したチェック、未検証の項目をエージェントに報告させてください。プロジェクトのガイダンス、スキル、共通のチェックについては アプリの開発を続ける と テスト を参照してください。

NocoBase ドキュメントアシスタント

NocoBase について何を知りたいですか?

質問は個別に回答され、過去の質問や回答は参照されません。必要な背景をすべて含めてください。