GS2-StateMachine Transaction Actions

Specification of verify/consume/acquire transaction actions

AcquireAction

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.

Whether the action allows quantity specification: NO

Whether the action is reversible: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Set #{userId} to replace the currently logged in user ID.
argsstring“{}”~ 4096 charsArguments to be passed to the state machine
ttlint1 ~ 525600Validity period (minutes)
timeOffsetTokenstring~ 1024 charsTime 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",
})