GS2-StateMachine Transaction Actions

Specification of verify/consume/acquire transaction actions

Acquire Action

Gs2StateMachine:StartStateMachineByUserId

Start state machine by specifying a user ID

Starts a new state machine instance for the specified user using the latest master version. Arguments are passed as JSON and parsed into state machine variables. An optional TTL (in minutes) can be set; if omitted, the state machine remains valid for approximately 10 years.

Supports quantity specification: NO

Whether the action is reversible: NO

Type Condition Required Default Value Limits Description
namespaceName string
~ 128 chars Namespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userId string
~ 128 chars User ID
Specify #{userId} to substitute the currently logged-in user’s ID.
args string “{}” ~ 4096 chars Arguments to be passed to the state machine
ttl int 1 ~ 525600 Validity period (minutes)
timeOffsetToken string ~ 1024 chars Time offset token
{
    "action": "Gs2StateMachine:StartStateMachineByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "args": "[string]Arguments to be passed to the state machine",
        "ttl": "[int]Validity period (minutes)",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2StateMachine:StartStateMachineByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  args: "[string]Arguments to be passed to the state machine"
  ttl: "[int]Validity period (minutes)"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stateMachine").acquire.start_state_machine_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    args="[string]Arguments to be passed to the state machine",
    ttl="[int]Validity period (minutes)",
    timeOffsetToken="[string]Time offset token",
})