GS2-StateMachine Script Trigger Reference
Reference of event triggers that call extended scripts
Trigger
start
Start state machine
Synchronous Execution Script
The script is executed synchronously before the start state machine process.
Request
| Type | Description | |
|---|---|---|
| namespace | Namespace | Namespace |
| stateMachineMaster | StateMachineMaster | State machine master data |
| status | Status | Status |
| userId | string | User ID |
| parameters | string | Arguments to be passed to the state machine |
Result
| Type | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|
| permit | bool | ✓ | Whether to allow start |
Implementation Example
-- Request
local namespace = args.namespace
local stateMachineMaster = args.stateMachineMaster
local status = args.status
local userId = args.userId
local parameters = args.parameters
-- Business logic:
local permit = true
-- Result
result = {
permit=permit
}Asynchronous Execution Script
The script is executed asynchronously after the start state machine process.
Request
| Type | Description | |
|---|---|---|
| namespace | Namespace | Namespace |
| stateMachineMaster | StateMachineMaster | State machine master data |
| status | Status | Status |
| userId | string | User ID |
| parameters | string | Arguments to be passed to the state machine |
Implementation Example
-- Request
local namespace = args.namespace
local stateMachineMaster = args.stateMachineMaster
local status = args.status
local userId = args.userId
local parameters = args.parameters
-- Asynchronous scripts typically do not affect the API response.
-- Use for logging, analytics, external notifications, etc.
result = {
}pass
Pass state machine
Synchronous Execution Script
The script is executed synchronously before the pass state machine process.
Request
| Type | Description | |
|---|---|---|
| namespace | Namespace | Namespace |
| stateMachineMaster | StateMachineMaster | State machine master data |
| status | Status | Status |
| userId | string | User ID |
Result
| Type | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|
| permit | bool | ✓ | Whether to allow the state machine to finish normally |
Implementation Example
-- Request
local namespace = args.namespace
local stateMachineMaster = args.stateMachineMaster
local status = args.status
local userId = args.userId
-- Business logic:
local permit = true
-- Result
result = {
permit=permit
}Asynchronous Execution Script
The script is executed asynchronously after the pass state machine process.
Request
| Type | Description | |
|---|---|---|
| namespace | Namespace | Namespace |
| stateMachineMaster | StateMachineMaster | State machine master data |
| status | Status | Status |
| userId | string | User ID |
Implementation Example
-- Request
local namespace = args.namespace
local stateMachineMaster = args.stateMachineMaster
local status = args.status
local userId = args.userId
-- Asynchronous scripts typically do not affect the API response.
-- Use for logging, analytics, external notifications, etc.
result = {
}error
Error state machine
Synchronous Execution Script
The script is executed synchronously before the error state machine process.
Request
| Type | Description | |
|---|---|---|
| namespace | Namespace | Namespace |
| stateMachineMaster | StateMachineMaster | State machine master data |
| status | Status | Status |
| userId | string | User ID |
Result
| Type | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|
| permit | bool | ✓ | Whether to allow an error state machine termination |
Implementation Example
-- Request
local namespace = args.namespace
local stateMachineMaster = args.stateMachineMaster
local status = args.status
local userId = args.userId
-- Business logic:
local permit = true
-- Result
result = {
permit=permit
}Asynchronous Execution Script
The script is executed asynchronously after the error state machine process.
Request
| Type | Description | |
|---|---|---|
| namespace | Namespace | Namespace |
| stateMachineMaster | StateMachineMaster | State machine master data |
| status | Status | Status |
| userId | string | User ID |
Implementation Example
-- Request
local namespace = args.namespace
local stateMachineMaster = args.stateMachineMaster
local status = args.status
local userId = args.userId
-- Asynchronous scripts typically do not affect the API response.
-- Use for logging, analytics, external notifications, etc.
result = {
}