A process is an activity that has to be carried out to complete a project. Not every activity is registered as a process. Usually only the critical activities, or those that have to be followed separately, are. An example is an activity that several people have to perform. The processes of the product serve several uses: following up the work in a project, the workflow for approving an incoming or outgoing invoice, a sales process for units, and support requests. A process category tells which use a process has. The following picture shows the list of processes of the demonstration database, with the category and the status of each process: ![[20261025-estate-processes-list.png]] ## A Process A process holds: - a unique code and a short description; - the project it belongs to and, optionally, the unit it relates to; - the person responsible, the person who reported it and the organisation on whose behalf it was created; - the origin, the category, the impact and the status; - the planned hours and the prognosis of the hours to go, with the date on which that forecast was made; - a deadline, a planned start and the date of the next review; - the progress as a percentage; - a fixed price, if that applies; - references of the customer and of the supplier; - notes, classifications and documents. A process can be the template for new processes. See the generation below. ## Process Notes Notes belong to a process and have a category such as telephone conversation, email or steering group meeting. A note can be published or kept back. Only users whose role may see all process notes see the notes that are not published. ## Process Units A process unit records which unit is used to complete the process, with the number of units, the unit sales price, a payment schedule and a status. Process unit statuses show how far the sale of a unit is, for example "Entered", "Sold", "Billable" and "Invoiced". Groups let the units of a process be added up per theme, such as the terms of a payment schedule. ## Status and Workflow A process status describes the condition of a process. A status can be marked as: - the start status, with which the process begins; - an end status, with which it ends; - "Parked", when the work is postponed, or "Work in progress"; - "Ready for Invoicing" or "Booked"; - "Accepted", when the process is approved for implementation. A status also controls whether hours may be written to the process, whether hours may be changed, and whether an email is sent to the holder when the deadline passes. A status transition lists a valid change from one status to another, for a process category. Transitions make workflow possible: - A transition can need a role, or an involvement role, with minimal and maximal limits of the involvement of the user in the process, project or organisation. - A transition has a period in which it is valid. - A transition can name a PL/SQL function that returns true when the transition is allowed. A result of false or null refuses the transition. - A transition can be tried automatically. The system then takes the next status as long as only one step is possible. The steps taken, including the automatic ones, can be found in the logging. The demonstration database holds the statuses of several uses, among them a support process with the statuses "Gemeld", "In behandeling", "Wachtstand", "Facturabel" and "Afgesloten", a sales process of units with "Optie", "Reservering", "Koopcontract getekend" and "Notarieel getransporteerd", and an approval process for incoming invoices. ## Generation From Contracts Some processes return on a fixed basis, such as changing backup tapes or monthly billing. A contract process generation says that a process is generated from a template process for a contract, on the basis of a repeat generator. It holds a start, an end, the next generation, the initial status and the initial category. The generation is independent of the system time and continues until processes have been generated for the whole period. The description of the template and the explanation of the process units can hold variables, for example the project code, the cost type code, the contract code and dates relative to the date of generation. They are replaced by the current value when the process is generated. ## Relations Processes can be related to each other with a relation type. Processes can be copied, and a process can have people involved in it with an involvement role. ## See Also - [[Invantive Estate/Concepts/Hours|Hours]] - [[Invantive Estate/Concepts/Invoices|Invoices]]