プロセスエンティティを使用する
プロセスエンティティは、プロセスに関するクエリなどで使用できる、プロセスのランタイム情報を保持している特別なエンティティです。
プロセスエンティティを追加する
プロセスプロパティを編集して、Expose Process Entity
プロパティを[Yes]に設定します。
プロセスエンティティ識別子
プロセスエンティティは、プロセス識別子により一意に識別できます。これは、各プロセスインスタンスに存在できるプロセスエンティティは1つのみであることを意味しています。
プロセスエンティティの使用
プロセスエンティティを使用して、プロセスのランタイム情報を取得し、たとえば、プロセスがサスペンドされているかどうかを確認する、あるいはプロセスエンティティのプロセス識別子アトリビュートを使用してプロセスの実行をターミネートするなど、アプリケーションロジックで使用できます。
例
ドキュメントを管理するプロセスを持つアプリケーションがあり、ドキュメントが削除されたときに対応するドキュメントプロセスを終了させる場面を考えます。また、プロセスインスタンスが新しく作成されたドキュメントに対してそれぞれ開始される場合についても考えます。ここでは、ドキュメント識別子はプロセスの入力パラメータであり、プロセスエンティティのアトリビュートでもあります。
ここで、プロセスを終了するため、ドキュメントが削除されたときに画面アクションが実行されるように設計し、ProcessTerminateシステムアクションを実行します。プロセス識別子を取得するには、プロセスエンティティのドキュメント識別子アトリビュートが削除するドキュメントの識別子と一致している必要があるという条件の下でプロセスエンティティを使用し、Aggregateを追加します。次に、システムアクションで取得したプロセスエンティティのプロセス識別子アトリビュートを使用します。
プロセスを削除すると、そのプロセスエンティティは自動的に削除されます。
プロセスエンティティに何百万ものレコードが存在するシナリオでは、プロセスエンティティに対してクエリのサイズを変更するのベストプラクティスの使用を検討してください。
プロセスエンティティ参照の使用
OutSystemsには、eSpacesの中でプロセスエンティティを再利用する仕組みが用意されています。プロセスを公開すると、そのプロセスエンティティは自動的に公開されます。また、他のeSpaceで定義されたプロセスを使用するときは、そのプロセスエンティティも使用できます。