All Products
Search
Document Center

CloudFlow:Langkah-langkah Pilihan

Last Updated:Jun 29, 2025

Topik ini menjelaskan dasar-dasar dan contoh langkah pilihan, serta ekspresi kondisional terkait.

Parameter

Langkah pilihan memungkinkan eksekusi langkah yang berbeda dalam alur kerja berdasarkan kondisi, mirip dengan switch-case dalam bahasa pemrograman. Langkah pilihan mencakup beberapa pilihan dan default. Setiap pilihan memiliki ekspresi kondisional, beberapa langkah, dan instruksi goto. Default hanya mencakup beberapa langkah dan instruksi goto. Ketika alur kerja mencapai langkah pilihan, sistem mengevaluasi apakah ekspresi kondisional mengembalikan True sesuai urutan yang telah ditentukan.

  • Jika mengembalikan True, langkah-langkah dan kemudian instruksi goto yang didefinisikan dalam pilihan tersebut akan dieksekusi.

  • Jika tidak ada pilihan yang mengembalikan True, langkah-langkah dan instruksi goto yang didefinisikan dalam default akan dieksekusi.

  • Jika tidak ada default yang didefinisikan, langkah pilihan berakhir.

Langkah pilihan mencakup atribut berikut:

  • tipe: Wajib. Jenis langkah. Nilai choice menentukan langkah pilihan.

  • nama: Wajib. Nama langkah.

  • pilihan: Wajib. Beberapa pilihan bertipe array. Setiap elemen sesuai dengan satu pilihan.

    • kondisi: Wajib. Ekspresi kondisional. Ekspresi kondisional merujuk pada input langkah berdasarkan JSONPath ($.key).

    • langkah-langkah: Opsional. Beberapa langkah serial yang didefinisikan untuk sebuah pilihan.

    • goto: Opsional. Nama langkah target, yang harus sejajar dengan langkah pilihan.

  • default: Wajib. Default.

    • langkah-langkah: Opsional. Beberapa langkah serial yang didefinisikan untuk default.

    • goto: Opsional. Nama langkah target, yang harus sejajar dengan langkah pilihan saat ini.

  • end: Opsional. Menentukan apakah akan melanjutkan ke langkah-langkah berikutnya setelah langkah saat ini berakhir.

  • inputMappings: Opsional. Pemetaan input.

  • outputMappings: Opsional. Pemetaan output. $local dari langkah ini menunjukkan hasil eksekusi cabang pilihan.

    Catatan

    Jika tidak ada pemetaan output yang ditentukan, $local digunakan sebagai output langkah ini secara default.

Contoh

Alur kerja sampel berikut mendefinisikan langkah pilihan.

  • Jika nilai status dalam input adalah ready, langkah pass1, pass3, dan final dari pilihan pertama dijalankan secara berurutan.

  • Jika nilai status dalam input adalah failed, instruksi goto dari pilihan kedua dijalankan, langkah pilihan berakhir, dan langkah final dijalankan.

  • Jika nilai status dalam input bukan ready atau failed, default dijalankan. Dengan kata lain, langkah pass2 dan final dijalankan.

version: v1
type: flow
steps:
  - type: choice
    name: mychoice
    choices:
      - condition: $.status == "ready"
        # choice with steps
        steps:
          - type: pass
            name: pass1
      - condition: $.status == "failed"
        # choice with goto
        goto: final
    default:
      # choice with both steps and goto
      steps:
        - type: pass
          name: pass2
      goto: final
  - type: pass
    name: pass3
  - type: pass
    name: final            

Ekspresi Kondisional

Ekspresi kondisional terdiri dari operasi dan variabel berikut:

  • Operasi perbandingan: >, >=, <, <=, ==, !=. Mereka berlaku untuk string dan angka.

  • Operasi logika: ||, &&.

  • Konstanta string: Konstanta string diapit oleh tanda kutip ganda (") atau aksen grave (`). Contoh: "foobar" atau `foobar`.

  • Konstanta numerik: 1, 12.5.

  • Konstanta Boolean: true atau false.

  • Awalan: !, -.

  • Mengandung: in, yang digunakan untuk menentukan apakah array berisi nilai tertentu atau apakah objek berisi nilai kunci.

Contoh berikut menunjukkan hasil eksekusi langkah-langkah untuk ekspresi kondisional yang berbeda.

{
  "a": 1,
  "b": {
    "b1": true,
    "b2": "ready"
  },
  "c": [1, 2, 3],
  "d": 1,
  "e": 1,
  "f": {
    "f1": false,
    "f2": "inprogress"
  }
}           

Ekspresi Kondisional

Hasil

$.a==1

true

$.a==2

false

$.a>0

true

0<$.a

true

$.a>=1

true

$.a!=2

true

$.b.b1

true

$.b.b1==true

true

$.b.b1==false

false

$.b.b2=="ready"

true

$.b.b2==`ready`

true

$.b.b2=="inprogress"

false

$.a==1 && $.b.b1

true

$.a==1 || $.b.b1

true

$.a==2 && $.b.b1

false

$.a==2 || $.b.b1

true

$.c[0]==1

true

$.c[0]==$.a

true