All Products
Search
Document Center

DataWorks:Format parameter penjadwalan

Last Updated:Jul 11, 2026

Parameter penjadwalan secara dinamis menggantikan nilai berbasis waktu dalam kode Anda pada waktu proses, sehingga menghilangkan kebutuhan untuk menyematkan tanggal secara langsung dalam alur kerja berulang. Topik ini menjelaskan format dan penggunaan yang didukung untuk nilai parameter.

Penting

Pastikan Anda memahami cara mengonfigurasi parameter penjadwalan. Untuk detailnya, lihat Konfigurasi dan gunakan parameter penjadwalan.

Konsep inti: Garis dasar waktu

Parameter waktu secara dinamis menggantikan string waktu pada waktu proses. Semua parameter waktu di DataWorks didasarkan pada dua garis dasar waktu inti berikut.

Konsep

Deskripsi

Bawaan

Format kustom

Presisi

Tanggal bisnis

Hari sebelum tanggal jadwal eksekusi task. Dalam skenario komputasi offline T+1, tanggal ini merepresentasikan tanggal data bisnis dihasilkan.

Misalnya, jika Anda menjalankan task hari ini untuk menghitung pendapatan penjualan kemarin, "kemarin" merujuk pada tanggal transaksi terjadi, yaitu tanggal bisnis.

${yyyymmdd}

${...}

Tahun-bulan-hari

Waktu terjadwal

scheduled time yang ditetapkan dalam konfigurasi penjadwalan task. Pada waktu proses, sistem menyelesaikannya menjadi hari saat ini. Ini merepresentasikan waktu teoretis eksekusi task dan tidak bergeser akibat antrian sumber daya atau keterlambatan.

$[yyyymmddhh24miss]

$[...]

Tahun-bulan-hari-jam-menit-detik

Rangkuman:

  • Tanggal bisnis ≈ Kemarin (tanggal data)

  • Waktu terjadwal ≈ Hari ini (waktu task dijalankan)

Task T+1 tipikal dimulai pada dini hari hari ini (waktu terjadwal) untuk memproses data dari kemarin (tanggal bisnis).

Ekspresi nilai parameter

Parameter penjadwalan mendukung jenis nilai berikut:

  • Parameter waktu kustom: Ekspresi seperti ${...} dan $[...] yang mentransformasi nilai berdasarkan dua garis dasar waktu: tanggal bisnis dan waktu terjadwal. Untuk informasi lebih lanjut, lihat Parameter waktu kustom.

  • Parameter sistem bawaan: Variabel yang telah ditentukan sebelumnya, seperti $bizdate, $bizmonth, dan $jobid, yang mengembalikan nilai seperti tanggal bisnis, bulan bisnis, atau ID alur kerja. Nilai-nilai ini tidak terbatas pada nilai berbasis waktu. Untuk informasi lebih lanjut, lihat Parameter sistem bawaan.

  • Konstanta: Nilai literal, seperti '123' dan 'abc'.

Penting

Batasan karakter khusus: Ekspresi parameter tidak boleh mengandung spasi atau tanda sama dengan (=).

Penggunaan

Anda menentukan logika penugasan untuk parameter penjadwalan dengan menetapkan nama parameter dan nilai parameter di bagian Scheduling Parameter > scheduling configuration. Setelah menentukan parameter tersebut, Anda dapat mereferensikannya dalam kode menggunakan sintaks ${nama parameter}. Untuk instruksi lengkap, lihat Konfigurasi dan gunakan parameter penjadwalan.

  • Gunakan parameter sistem bawaan $bizdate dan $cyctime untuk merepresentasikan tanggal bisnis dan waktu terjadwal. Parameter-parameter ini diselesaikan menjadi nilai berikut:

    • $bizdate=${yyyymmdd}

    • $cyctime=$[yyyymmddhh24miss]

      image

      image

      Contoh di atas menunjukkan definisi parameter untuk $bizdate (diselesaikan menjadi ${yyyymmdd}) dan $cyctime (diselesaikan menjadi $[yyyymmddhh24miss]), serta hasil pratinjau mereka ketika tanggal bisnis adalah 2025-10-16.
  • Jika nilai waktu dasar bawaan tidak memenuhi kebutuhan Anda, gunakan sintaks ${...} dan $[...] untuk mentransformasi dua waktu dasar tersebut menjadi parameter waktu kustom.

Parameter waktu kustom

DataWorks mendukung pengambilan tanggal bisnis dan waktu terjadwal menggunakan format ${...} dan $[...] masing-masing. Format-format ini memungkinkan Anda mentransformasi nilai waktu sesuai kebutuhan bisnis. Contoh berikut mengasumsikan sebuah node dijadwalkan berjalan setiap hari pukul 02:30:45 dan tanggal bisnis adalah 20251031. Waktu dasar adalah:

  • Tanggal bisnis: Nilai ${yyyymmdd} adalah 20251031.

  • Waktu terjadwal: Nilai $[yyyymmddhh24miss] adalah 20251101023045.

Perbedaan utama antara ${...} dan $[...]

Format ${...} dan $[...] berbeda dalam garis dasar waktu dan kemampuan perhitungan mereka. Menggabungkan keduanya dapat menyebabkan kesalahan data.

Perbandingan

${...} (Tanggal bisnis)

$[...] (Waktu terjadwal)

Garis dasar waktu

Tanggal bisnis (T-1)

Waktu terjadwal (T)

Presisi waktu

Hari (tahun, bulan, hari)

Detik (tahun, bulan, hari, jam, menit, detik)

Offset yang didukung

Mendukung perhitungan offset untuk tahun, bulan, minggu, dan hari.

Mendukung perhitungan offset untuk hari, jam, dan menit.

Batasan utama

Tidak mendukung pemformatan atau perhitungan offset untuk satuan waktu yang lebih kecil seperti jam, menit, atau detik.

Offset tahun atau bulan langsung menggunakan sintaks seperti $[yyyy±N] atau $[mm±N] tidak didukung. Anda harus menggunakan fungsi add_months untuk offset tersebut.

Parameter sistem ekuivalen

${yyyymmdd} ekuivalen dengan $bizdate

$[yyyymmddhh24miss] ekuivalen dengan $cyctime

Pemformatan waktu

Gunakan format ${...} atau $[...] untuk menghasilkan parameter waktu. Gabungkan kode format seperti yyyy, yy, mm, dan dd untuk menghasilkan tanggal yang N tahun, bulan, atau hari sebelum atau sesudah tanggal bisnis.

Kode

Deskripsi

${...} (Tanggal bisnis)

$[...] (Waktu terjadwal)

Contoh

Hasil

Contoh

Hasil

yyyy

Tahun 4 digit

${yyyy}

2025

$[yyyy]

2025

mm

Bulan 2 digit

${mm}

10

$[mm]

11

dd

Hari 2 digit

${dd}

31

$[dd]

01

hh24

Jam dalam format 24 jam

Tidak didukung (presisi tingkat hari)

-

$[hh24]

02

hh / hh12

Jam dalam format 12 jam

-

$[hh]

02

mi

Menit

-

$[mi]

30

ss

Kedua

-

$[ss]

45

yyyymm

Tahun dan bulan

${yyyymm}

202510

$[yyyymm]

202511

yyyy-mm-dd

Tanggal diformat dengan tanda hubung

${yyyy-mm-dd}

2025-10-31

$[yyyy-mm-dd]

2025-11-01

yyyy-mm-dd hh24:mi:ss

Tanggal dan waktu diformat dengan tanda hubung dan titik dua

Tidak didukung (presisi tingkat hari)

-

Format ini dapat dicapai dengan menggunakan penggabungan string. Lihat Penggabungan string: Kasus 2.

Perhitungan offset

Perhitungan offset memungkinkan Anda menambah atau mengurangi waktu dari tanggal bisnis atau waktu terjadwal. Anda dapat menerapkan offset sebesar N tahun, bulan, hari, jam, atau menit relatif terhadap garis dasar waktu. Offset jam dan menit hanya didukung untuk waktu terjadwal. Kemampuan offset ${...} dan $[...] berbeda karena mereka mendukung tingkat presisi waktu yang berbeda.

  1. ${...} perhitungan offset

    • Kemampuan inti: Mendukung offset bilangan bulat untuk tahun, bulan, minggu, dan hari.

      Penting

      Offset untuk jam dan menit tidak didukung. Misalnya, ${yyyy-mm-dd-1/24} adalah sintaks yang tidak valid.

    • Sintaks: ${<format_waktu><±N>}, di mana satuan N adalah satuan terkecil dalam format tersebut, seperti yyyymm atau yyyymmdd.

      Kebutuhan

      Satuan offset

      Sintaks

      Contoh

      N tahun sebelum/setelah

      Tahun

      ${yyyy±N} atau ${yy±N}

      Dapatkan tahun sebelumnya: ${yyyy-1}

      N bulan sebelum/setelah

      Bulan

      ${yyyymm±N}

      Dapatkan bulan sebelumnya: ${yyyymm-1}

      N minggu sebelum/setelah

      Minggu

      ${yyyymmdd±7*N}

      Dapatkan minggu sebelumnya: ${yyyymmdd-7*1}

      N hari sebelum/setelah

      Hari

      ${yyyymmdd±N}

      Dapatkan hari sebelumnya: ${yyyymmdd-1}

  2. $[...] perhitungan offset

    • Kemampuan inti: Mendukung offset pecahan untuk hari, jam, dan menit.

      Penting

      Format $[...] tidak dapat menggunakan ekspresi seperti $[yyyy-N] atau $[mm-N] untuk mengambil tanggal N tahun atau bulan lalu. Untuk melakukan offset tahun atau bulan, Anda harus menggunakan fungsi add_months.

    • Sintaks: $[<format_waktu><±N>] , di mana N merepresentasikan pecahan hari: gunakan N/24 untuk offset N jam dan N/24/60 untuk offset N menit.

      Kebutuhan

      Satuan offset

      Sintaks

      Contoh

      N tahun sebelum/setelah

      Tahun

      N tahun kemudian: $[add_months(yyyymmdd,12*N)]
      N tahun sebelumnya: $[add_months(yyyymmdd,-12*N)]































      Dapatkan tahun sebelumnya: $[add_months(yyyymmdd,-12)]

      N bulan sebelum/setelah

      Bulan

      N bulan kemudian: $[add_months(yyyymmdd,N)]
      N bulan sebelumnya: $[add_months(yyyymmdd,-N)]































      Dapatkan bulan sebelumnya: $[add_months(yyyymmdd,-1)]

      N minggu sebelum/setelah

      Minggu

      $[yyyymmdd±7*N]

      Dapatkan minggu sebelumnya: $[yyyymmdd-7*1]

      N hari sebelum/setelah

      Hari

      $[yyyymmdd±N]

      Dapatkan hari sebelumnya (kemarin): $[yyyymmdd-1]

      N jam sebelum/setelah

      Jam

      Format yang tersedia:

      • $[hh24miss±N/24], $[hh24±N/24]

      • $[<format_waktu_kustom>±N/24]

      Dapatkan jam sebelumnya dalam berbagai format:

      • Bulan: $[mm-1/24]

      • Tahun: $[yyyy-1/24]

      • Tahun dan bulan: $[yyyymm-1/24]

      • Tahun, bulan, dan hari: $[yyyymmdd-1/24]

      • Hari sebelumnya dan jam sebelumnya: $[yyyymmdd-1-1/24]

      N menit sebelum/setelah

      Menit

      Format yang tersedia:

      • $[hh24miss±N/24/60]

      • $[yyyymmddhh24miss±N/24/60]

      • $[mi±N/24/60]

      • $[<format_waktu_kustom>±N/24/60]

      Dapatkan waktu 15 menit sebelum waktu terjadwal dalam berbagai format:

      • $[yyyy-15/24/60]

      • $[yyyymm-15/24/60]

      • $[yyyymmdd-15/24/60]

      • $[hh24-15/24/60]

      • $[mi-15/24/60]

      Offset gabungan

      Hari + Jam

      $[yyyymmdd±N±M/24], di mana N adalah offset hari dan M adalah offset jam.

      Contoh: Dapatkan waktu untuk hari sebelumnya dan jam sebelumnya → $[yyyymmdd-1-1/24]

      Catatan
      • Penanganan lintas hari: Offset jam dan menit dapat menghasilkan waktu yang melewati batas hari. Untuk detail cara menanganinya, lihat Cara menangani penggantian parameter lintas hari saat mengoffset satu jam.

      • Kalibrasi akhir bulan: Saat Anda menerapkan offset bulan ke tanggal akhir bulan, jika bulan target memiliki jumlah hari lebih sedikit, hasilnya secara otomatis dikalibrasi ke hari terakhir bulan tersebut. Misalnya, mengurangi satu bulan dari 2025-03-31 menghasilkan 2025-02-28 karena Februari tidak memiliki 31 hari.

Transformasi sekunder menggunakan fungsi engine

Jika kemampuan pemformatan dan offset bawaan tidak dapat menghasilkan nilai yang Anda butuhkan (misalnya, hari terakhir bulan sebelumnya), terapkan transformasi sekunder menggunakan fungsi engine node atau node penugasan.

Lihat: Skenario khas untuk pemrosesan sekunder nilai kembali parameter penjadwalan.

Penggabungan string

Gunakan penggabungan string untuk membuat string tanggal terstruktur yang tidak didukung oleh sintaks bawaan. Metode ini menggabungkan bagian tanggal yang dihasilkan oleh parameter penjadwalan dengan string konstan.

Kasus 1: Secara dinamis mendapatkan hari pertama setiap bulan

  • Skenario: Anda memerlukan string yang merepresentasikan hari pertama bulan berjalan dalam format yyyymm01, terlepas dari hari eksekusi task.

  • Implementasi:

    1. Ambil bagian tahun dan bulan: Gunakan ${yyyymm} untuk mendapatkan tahun dan bulan dari tanggal bisnis saat ini. Misalnya, jika tanggal bisnis adalah 20231027, hasilnya adalah 202310.

    2. Gabungkan tahun dan bulan yang diekstraksi dengan string konstan '01'.

    3. Pemanggilan parameter: first_day_of_month=${yyyymm}01

  • Hasil: Saat task dijalankan, ${first_day_of_month} diganti dengan 20231001.

Kasus 2: Menghasilkan timestamp dalam format yyyy-mm-dd hh24:mi:ss

  • Skenario: Anda perlu menghasilkan timestamp dalam format yyyy-mm-dd hh24:mi:ss, seperti 2023-11-01 02:30:45.

  • Implementasi:

    1. Definisikan dua parameter, datetime1 dan datetime2. Tetapkan sebagai berikut: datetime1=$[yyyy-mm-dd] dan datetime2=$[hh24:mi:ss].

    2. Gabungkan parameter datetime1 dan datetime2, dipisahkan oleh spasi.

    3. Pemanggilan parameter: pt=${datetime1} ${datetime2}

  • Hasil: Saat task dijalankan, ${datetime1} ${datetime2} diganti dengan 2023-11-01 02:30:45.

Parameter sistem bawaan

DataWorks menyediakan parameter sistem bawaan berikut. Karena format waktunya tetap dan fleksibilitasnya terbatas, disarankan menggunakan parameter waktu kustom sebagai gantinya.

Parameter

Deskripsi

$bizdate

Tanggal bisnis dalam format yyyymmdd, konsisten dengan parameter kustom ${yyyymmdd}.

Umumnya bawaan ke hari sebelum waktu eksekusi task.

$cyctime

Waktu terjadwal dalam format yyyymmddhh24miss, ekuivalen dengan parameter kustom $[yyyymmddhh24miss].

$gmtdate

Tanggal saat ini dalam format yyyymmdd.

Bawaan ke tanggal saat ini. Untuk pengisian ulang data, tanggalnya adalah tanggal bisnis + 1.

$bizmonth

Bulan bisnis dalam format yyyymm.

  • Jika tanggal bisnis berada di bulan berjalan, maka $bizmonth = bulan_tanggal_bisnis - 1.

  • Jika bulan tanggal bisnis berbeda dengan bulan berjalan, maka $bizmonth = bulan tanggal bisnis.

$jobid

ID alur kerja yang berisi task tersebut.

$nodeid

ID node.

$taskid

ID instans yang dihasilkan oleh node.

Contoh penggantian parameter

Nilai penggantian untuk parameter penjadwalan ditentukan saat instans dibuat dan tidak dipengaruhi oleh waktu mulai aktual.

Skenario 1: Penjadwalan normal

Dalam penjadwalan normal, penggantian parameter didasarkan pada dua garis dasar waktu: tanggal bisnis dan waktu terjadwal.

  • ${...} (tanggal bisnis): Nilainya berasal dari tanggal bisnis instans.

  • $[...] (waktu terjadwal): Nilainya berasal dari waktu terjadwal instans.

Misalnya, pertimbangkan task harian bernama A yang dijadwalkan berjalan pukul 00:00 dengan parameter berikut:

  • yesterday=${yyyymmdd}

  • today=$[yyyymmddhh24miss]

Tabel berikut menunjukkan bagaimana parameter-parameter ini diganti untuk instans tertentu:

Waktu terjadwal

Tanggal bisnis

yesterday=${yyyymmdd}

today=$[yyyymmddhh24miss]

2025-3-15 00:00:00

2025-3-14

20250314

20250315000000

Skenario 2: Pengisian ulang data

Saat melakukan pengisian ulang data, logika penggantian parameter berubah berdasarkan tanggal bisnis yang dipilih. Hal ini terutama memengaruhi parameter yang bergantung pada waktu terjadwal.

  • ${...} (tanggal bisnis): Garis dasarnya adalah tanggal bisnis yang dipilih secara manual.

  • $[...] (waktu terjadwal): Garis dasarnya adalah tanggal bisnis yang dipilih secara manual + 1 hari.

Misalnya, jika Anda melakukan pengisian ulang task A dengan 2025-03-15 sebagai tanggal bisnis:

Tanggal bisnis yang dipilih

yesterday=${yyyymmdd}

today=$[yyyymmddhh24miss]

2025-03-15

20250315

20250316000000 (Garis dasarnya adalah 2025-03-15 + 1 hari)

FAQ

Untuk pertanyaan tentang parameter penjadwalan, lihat FAQ Parameter Penjadwalan.

Dokumen terkait