> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Distributor トランザクションアクション

検証/消費/入手の各トランザクションアクションの仕様




## Verify Action

検証アクション

### Gs2Distributor:IfExpressionByUserId

条件を検証し、消費アクションの内容を切り替える<br>

検証アクションを条件として評価し、結果に基づいて trueActions または falseActions の消費アクションリストを実行します。<br>
これによりトランザクション内で条件分岐が可能になり、検証結果に応じて異なる消費アクションを実行できます。<br>
multiplyValueSpecifyingQuantity が有効な場合、検証に使用される値も指定された数量で乗算されます。

**数量指定可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| condition | VerifyAction |  | ✓|  |  | 条件 |
| trueActions | List&lt;ConsumeAction&gt; |  | |  | 0 ~ 10 items | 条件が真のときに実行される消費アクションリスト |
| falseActions | List&lt;ConsumeAction&gt; |  | |  | 0 ~ 10 items | 条件が偽のときに実行される消費アクションリスト |
| multiplyValueSpecifyingQuantity | bool |  | | true |  | 数量指定した際に、検証に使用する値も乗算するか |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Distributor:IfExpressionByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "condition": {
            "action": "[string]検証アクションで実行するアクションの種類",
            "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
        },
        "trueActions": [
            {
                "action": "[string]消費アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
        ],
        "falseActions": [
            {
                "action": "[string]消費アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
        ],
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Distributor:IfExpressionByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  condition: 
    action: "[string]検証アクションで実行するアクションの種類"
    request: "[string]アクション実行時に使用されるリクエストのJSON文字列"
  trueActions: 
    - action: "[string]消費アクションで実行するアクションの種類"
      request: "[string]アクション実行時に使用されるリクエストのJSON文字列"
  falseActions: 
    - action: "[string]消費アクションで実行するアクションの種類"
      request: "[string]アクション実行時に使用されるリクエストのJSON文字列"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("distributor").verify.if_expression_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    condition={
        action="[string]検証アクションで実行するアクションの種類",
        request="[string]アクション実行時に使用されるリクエストのJSON文字列"
    },
    trueActions={
        {
            action="[string]消費アクションで実行するアクションの種類",
            request="[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
    },
    falseActions={
        {
            action="[string]消費アクションで実行するアクションの種類",
            request="[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
    },
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Distributor:AndExpressionByUserId

複数の検証アクションを実行し、全てが真かどうかを判定する<br>

複数の検証アクションを実行し、すべてが真と評価された場合にのみ成功します（AND論理）。<br>
いずれかの検証アクションが失敗すると、式全体が失敗します。<br>
トランザクションの実行前にすべて満たす必要がある複数の前提条件を組み合わせる場合に便利です。

**数量指定可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| actions | List&lt;VerifyAction&gt; |  | |  | 0 ~ 10 items | 検証アクションリスト |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Distributor:AndExpressionByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "actions": [
            {
                "action": "[string]検証アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Distributor:AndExpressionByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  actions: 
    - action: "[string]検証アクションで実行するアクションの種類"
      request: "[string]アクション実行時に使用されるリクエストのJSON文字列"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("distributor").verify.and_expression_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    actions={
        {
            action="[string]検証アクションで実行するアクションの種類",
            request="[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Distributor:OrExpressionByUserId

複数の検証アクションを実行し、いずれかが真かどうかを判定する<br>

複数の検証アクションを実行し、少なくとも1つが真と評価された場合に成功します（OR論理）。<br>
すべての検証アクションが失敗した場合にのみ式が失敗します。<br>
いずれか1つを満たせば十分な代替条件を定義する場合に便利です。

**数量指定可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| actions | List&lt;VerifyAction&gt; |  | |  | 0 ~ 10 items | 検証アクションリスト |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Distributor:OrExpressionByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "actions": [
            {
                "action": "[string]検証アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Distributor:OrExpressionByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  actions: 
    - action: "[string]検証アクションで実行するアクションの種類"
      request: "[string]アクション実行時に使用されるリクエストのJSON文字列"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("distributor").verify.or_expression_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    actions={
        {
            action="[string]検証アクションで実行するアクションの種類",
            request="[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---





