Status Choice mengarahkan alur ke cabang berbeda berdasarkan logika kondisional. Topik ini menjelaskan konsep dasar status Choice, memberikan contoh penggunaannya, serta cara menggunakan ekspresi kondisional untuk mengontrol alur.
Ikhtisar
Status Choice adalah sebuah node dalam alur yang mengeksekusi status berbeda berdasarkan kondisi tertentu. Status ini berisi beberapa pilihan dan satu opsi default. Setiap pilihan memiliki ekspresi kondisional (Condition) dan instruksi transisi (Next). Mirip dengan pernyataan switch-case dalam bahasa pemrograman, status Choice menggunakan ekspresi kondisional untuk menentukan jalur eksekusi alur.
Ketika alur mencapai Negara Pilihan, sistem mengevaluasi apakah ekspresi kondisional dari cabang-cabang pilihan mengembalikan nilai True sesuai urutan yang ditentukan.
Jika ekspresi kondisional suatu pilihan menghasilkan nilai
True, alur akan mengeksekusi status dan transisi yang didefinisikan untuk pilihan tersebut.Jika tidak ada ekspresi kondisional yang menghasilkan nilai
True, alur akan mengeksekusi status dan transisi yang didefinisikan dalam opsi default.
Tabel berikut menjelaskan atribut yang dimiliki oleh Negara Pilihan.
Atribut | Tipe | Diperlukan | Deskripsi | Contoh |
Nama | string | Ya | Nama dari negara tersebut. | negara saya |
Deskripsi | string | Tidak | Deskripsi dari negara tersebut. | jelaskan di sini |
Tipe | string | Ya | Tipe dari negara tersebut. | Pilihan |
InputConstructor | map[string]any | Tidak | Konstruktor input. | Untuk informasi selengkapnya, lihat Inputs and Outputs. |
Default | string | Ya | Cabang default. | tugas berikutnya saya |
Cabang | ChoiceBranch | Ya | Cabang-cabang pilihan. | Lihat ChoiceBranch. |
ChoiceBranch
Atribut | Tipe | Diperlukan | Deskripsi | Contoh |
Kondisi | string | Ya | Ekspresi kondisional. Untuk informasi selengkapnya, lihat Expression examples. | $Input.status=="ready" |
Next | string | Ya | Nama status berikutnya tempat Alur kerja bertransisi jika kondisi terpenuhi. | tugas berikutnya saya |
Negara Pilihan tidak mendukung atribut End dan Next. Atribut Default dari Negara Pilihan menentukan negara yang dialihkan secara default ketika tidak ada kondisi dalam cabang-cabang Pilihan yang terpenuhi. Fungsinya sama dengan atribut Next. ChoiceBranch dapat berisi atribut Next.
Contoh
Alur sampel berikut mencakup Negara Pilihan.
Jika nilai input
statusadalahready, statusPass2pada pilihan pertama akan dieksekusi.Jika nilai input
statusbukanready, opsi defaultPass1akan dieksekusi.
Type: StateMachine
Name: MyWorkflow
SpecVersion: v1
StartAt: Choice
States:
- Type: Choice
Name: Choice
Branches:
- Condition: $Input.data == "ready"
Next: Pass1
Default: Pass2
- Type: Pass
Name: Pass2
End: true
- Type: Pass
Name: Pass1
End: trueEkspresi kondisional
Ekspresi kondisional yang didukung oleh sistem terdiri dari operasi dan variabel berikut. Anda dapat menentukan apakah kondisi yang ditentukan oleh ekspresi kondisional terpenuhi berdasarkan nilai Boolean yang dikembalikan oleh ekspresi.
Operasi perbandingan:
>,>=,<,<=,==, dan!=. Operasi ini berlaku untuk string dan angka.Operasi logika:
||dan&&.Konstanta string: Konstanta string diapit oleh tanda kutip ganda (") atau aksen grave (`). Contoh: "foobar" atau `foobar`.
Konstanta numerik:
1dan12.5.Konstanta Boolean:
truedanfalse.Awalan:
!dan-.Keanggotaan:
in. Digunakan untuk menentukan apakah sebuah array berisi suatu nilai atau objek berisi suatu kunci.
Contoh ekspresi
Tabel berikut menunjukkan hasil berbagai ekspresi kondisional berdasarkan input status contoh $Input. Anda dapat menggunakan variabel $Context dan $Input dalam ekspresi kondisional. Untuk informasi selengkapnya, lihat Data passing.
{
"a": 1,
"b": {
"b1": true,
"b2": "ready"
},
"c": [1, 2, 3],
"d": 1,
"e": 1,
"f": {
"f1": false,
"f2": "inprogress"
}
}Ekspresi kondisional | Hasil eksekusi |
| true |
| false |
| true |
| true |
| true |
| true |
| true |
| true |
| false |
| true |
| false |
| true |
| false |
| true |
| true |
| true |
| false |
| true |