Training
Training
Welcome
Guided Paths
Build an App
Training Planner
Courses
Developer Schools
Boot Camps
Certifications
Tech Talks
Documentation
Documentation
Overview
ODC
O11
Forums
Forge
Get Involved
Get Involved
Home
Jobs
Ideas
Members
Mentorship
User Groups
Downloads
Platforms
OutSystems.com
My Platform
Community
Resources
Support
Search in OutSystems
Log in
Sign Up
Community
›
Forge
›
Assets list
›
StateMachine_BP
StateMachine_BP
Stable version
1.0.0
(Compatible with
OutSystems 11
)
Uploaded
on
07 September 2022
by
5.0
(3 ratings)
Overview
Reviews
Versions
Documentation
There's no documentation for this asset yet
Support
StateMachine_BP
Details
StateMachine is a combination of States and Decision-Making Logic based on which the status of a request or case is changed. It has predefined source and target states. This Sample application can be used as a Demo or Boilerplate with minimal changes.
Read more
StateMachine is a combination of States and Decision Making Logic based on which the status of a request or case is changed. It has predefined source and target states.
Below given is the process flow that is implemented in this demo using StateMachine
Entities
Three Core Entities are used to Acheive the StateMachine.
1) Status
2) Action
3) Event History
4) Request
Status
Status is a Static Entity which provides the list of statuses used to transition the Requests from Start to Finish
The Primary Key Id of the Status entity is not set to auto-number to prevent the change of ID value during Migration
There is a RequestStatus reusable web block to show the status of each request. We have 2 Color attrubutes in the Status entity to provide the Status Color and the Text Color
Action
Action is a static entity that provides list of actions performed by user in the screen like Approve, Reject, Rerun, Confirm etc.
Based on the current request status, relevant buttons are provided in the screen for the users to perform applicable actions.
Event History
Event history is an entity is like an audit table to save all the actions and status changes performed by used for each request.
Request
Request is a Business entity to store the request related data and it has the reference to Status Entity.
Server Actions
The following are the actions used in the application
1) CreateEvent
2) CreateRequestWrapper
3) Update_RequestStatus
4) UpdateRequestWrapper
5) StateMachine_BL
CreateEvent
Create event action is called when some action has been performed in the screen and a record need to be inserted into EventHistory entity.
CreateRequestWrapper
A wrapper action to create new record in the Request entity with the submitted data.
UpdateRequestWrapper
A wrapper action to update an existing record in the Request entity with the submitted data. In this demo application, users are allowed to update only when the request is returned by the Reviewer.
Update_RequestStatus
A wrapper action to update status of the request. As and when the user perform an action like approve, reject, or confirm, the current status of the request id in question will be updated to the new status received as input.
StateMachine_BL
A Server action with business logic to handle the StateMachine.
The Switch in the action decides the next status based on the following parameters
1) Current Status
2) Current User's Role
3) the Action performed in the screen (button clicked in the screen)
Roles
Roles has to be defined based on the personas
In this demo we have 3 roles
1) Requester
2) Reviewer
3) Approver
Screens
Following are the screens needed to implement a simple StateMachine
1) Requests
2) RequestDetail
3) Tasks
Requests
Screen to display requests raised by the user.
2 Types of list are displayed in the screen.
1) Requests raised by self
2) Self requests returned by the reviewer
Tasks
Screen to display the Tasks that are assigned to Reviewers and Approvers.
Reviewers get to see 2 list
1) New Requests Submitted by Requester
2) Returned Requests resubmitted by Requester
Approvers get to see 1 list with reviewed requests from Reviewers.
RequestDetail
A Screen to view the details of the selected requests and perform some action on the request.
The list of actions that can be performed in the RequestDetails Screen are
1) Confirm
2) Return
3) Approve
4) Reject
5) Complete
6) Save
7) Submit
8) Back
Requester can create a new request (save), resubmit a returned request (submit), close a request after approver approves the request (Complete) or go back to the previous screen (Back)
Reviewer can review the request and send to Approver (confirm), return the request back to requester (return) or go back to the previous screen (Back)
Approver can approve the request and send to Requester (Approve), reject the request (reject) or go back to the previous screen (Back).
WebBlock
For now there is only one web block used in the Demo.
RequestStatus is a block with tag to display the status of each request.
Status Label, Status Color and Text Color are the inputs.
Release notes
(1.0.0)
Reviews
(1)
by
2022-09-12
in version 1.0.0
Thank you for the brief documentation!
Team
Other assets in this category
Demos & samples, Process management (BPT)
Field Services Mobile
OutSystems Lab
This app is a demo application with dummy data and should be used only for demonstration/test purposes. Field Services mobile app supports telecom technicians in performing field services. It’s specially designed for iPads, works completely offline, as it allows the technician to perform all tasks offline and synchronizes all data when connected. Uses mobile plugins to integrate location and barcode scanning with the device, and can be used as PWA (Progressive Web Application).
953
BPTExample
JitendraYadav
Business Process Technology
312
Decision Tree
ROKODO.IO
Decision trees are powerful and popular tools for classification and prediction. A Decision tree is a flowchart like tree structure, where each internal node denotes a test on an attribute, each branch represents an outcome of the test, and each leaf node (terminal node) holds a class label.
57
More from Kavinilammurugu (Kavin)
Shortcut Keys Reactive
Rafael Fantato
Add shortcut keys to your reactive screen. It triggers an event on key press
141
Calendly API
Kavinilammurugu (Kavin)
This asset has 2 modules Calendly_IS - to integrate with Calendly live server CalendlyApp - for the Frontend Based on https://developer.calendly.com/api-docs/4b402d5ab3edd-calendly-developer
10
Loading...
Loading