# BPM Model

&#x20;**BPM Core**\
&#x20;The following diagram depict elements created at definition time when modeling a **BPM Process**.

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHEnC4kq7wvGsELcMjz%2F-LHEl6Anya6ciiVKag2f%2FbpmCore.jpg?alt=media\&token=649043a4-39c7-42ee-b817-9e6dc651d49c)

&#x20;**BPM Runtime**\
&#x20;The following diagram depict elements created at runtime when a process is being executed. The runtime elements are directly related to definition elements.

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHEnC4kq7wvGsELcMjz%2F-LHElARJjVnh54LS2ioy%2FbpmRuntime.jpg?alt=media\&token=654ff7c8-7890-4653-918e-31c6fdcb0bea)

**BPM Process Definition**\
Each **BPMProcessDefinition** belongs to **anApplication**. And each **Application** can have more that one **BPMProcessDefinition**. A BPMProcessDefinition can have more than one version as is depicted in the following diagram:

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHEnC4kq7wvGsELcMjz%2F-LHElHeh0l0A_xqNCCrt%2Fbpm-process-definition-class.jpg?alt=media\&token=49893123-9a34-44f3-b02c-d7ff18935c78)

&#x20;A **BPMProcessDefinition** can have **N** **Forms** and each **Form** can have **N Fields**.\
&#x20;The value of each field is stored in the same indexable collection for fast access.

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHEnC4kq7wvGsELcMjz%2F-LHElQ02csKuoXoM_p1Q%2Fbpm-process-definition.jpg?alt=media\&token=7b4c4332-7a7b-4d47-bc30-534b340d75ff)

How to reuse a **BPM Process Definition** across multiple **Applications** ?

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHEnC4kq7wvGsELcMjz%2F-LHEld-BuXSwxQ7dyZas%2FexecutionContext.jpg?alt=media\&token=c3352fb3-1cdc-457e-a759-c3b358a192be)

Example:\
Each user has a role in "Public Processes" application. In this application are all shared processes of the Organization.\
At Process creation time an execution context can defined. In this case a Public Process has been created but only users with roles in "Hardware" and/or in "Systems" will have access to the process. The "and" and "or" between applications depend on the selected execution context.\
The following diagram depicts how high performance is achieved in searching free tasks for users.

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHEnC4kq7wvGsELcMjz%2F-LHElhGsjQSauXvjpiVg%2Fmatrix.jpg?alt=media\&token=f89e5a1a-4352-479b-8ea6-a4ce7c57dc89)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bpmflow.gitbook.io/project/engineering-models/4+1-architecture-models/logical-view/bpm-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
