GS2-Distributor 트랜잭션 액션
검증/소비/입수 각 트랜잭션 액션의 사양
Verify Action
검증 액션
Gs2Distributor:IfExpressionByUserId
조건을 검증하고 소비 액션의 내용을 전환
검증 액션을 조건으로 평가하고, 결과에 따라 trueActions 또는 falseActions의 소비 액션 목록을 실행합니다.
이를 통해 트랜잭션 내에서 조건 분기가 가능해지며, 검증 결과에 따라 서로 다른 소비 액션을 실행할 수 있습니다.
multiplyValueSpecifyingQuantity가 활성화된 경우, 검증에 사용되는 값도 지정된 수량만큼 곱해집니다.
수량 지정 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| condition | VerifyAction | ✓ | 조건 | |||
| trueActions | List<ConsumeAction> | 0 ~ 10 items | 조건이 참일 때 실행되는 소비 액션 목록 | |||
| falseActions | List<ConsumeAction> | 0 ~ 10 items | 조건이 거짓일 때 실행되는 소비 액션 목록 | |||
| multiplyValueSpecifyingQuantity | bool | true | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 | |||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"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]타임 오프셋 토큰"
}
}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]타임 오프셋 토큰"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
여러 검증 액션을 실행하여 모두 참인지 판정
여러 검증 액션을 실행하고, 모두 참으로 평가된 경우에만 성공합니다(AND 논리).
검증 액션 중 하나라도 실패하면 전체 표현식이 실패합니다.
트랜잭션 실행 전에 모두 충족해야 하는 여러 전제 조건을 조합할 때 유용합니다.
수량 지정 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| actions | List<VerifyAction> | 0 ~ 10 items | 검증 액션 목록 | |||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Distributor:AndExpressionByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"actions": [
{
"action": "[string]검증 액션에서 실행할 액션의 종류",
"request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
}
],
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Distributor:AndExpressionByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
actions:
- action: "[string]검증 액션에서 실행할 액션의 종류"
request: "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("distributor").verify.and_expression_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
actions={
{
action="[string]검증 액션에서 실행할 액션의 종류",
request="[string]액션 실행 시 사용되는 요청의 JSON 문자열"
}
},
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Distributor:OrExpressionByUserId
여러 검증 액션을 실행하여 하나라도 참인지 판정
여러 검증 액션을 실행하고, 그중 하나라도 참으로 평가되면 성공합니다(OR 논리).
모든 검증 액션이 실패한 경우에만 표현식이 실패합니다.
그중 하나만 충족해도 되는 대체 조건을 정의할 때 유용합니다.
수량 지정 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| actions | List<VerifyAction> | 0 ~ 10 items | 검증 액션 목록 | |||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Distributor:OrExpressionByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"actions": [
{
"action": "[string]검증 액션에서 실행할 액션의 종류",
"request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
}
],
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Distributor:OrExpressionByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
actions:
- action: "[string]검증 액션에서 실행할 액션의 종류"
request: "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("distributor").verify.or_expression_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
actions={
{
action="[string]검증 액션에서 실행할 액션의 종류",
request="[string]액션 실행 시 사용되는 요청의 JSON 문자열"
}
},
timeOffsetToken="[string]타임 오프셋 토큰",
})