全部产品
Search
文档中心

DataWorks:Format yang didukung untuk parameter penjadwalan

更新时间:Feb 04, 2026

Parameter penjadwalan adalah fitur inti DataWorks yang secara dinamis menggantikan nilai berbasis waktu dalam kode Anda selama eksekusi tugas otomatis. Fitur ini menghilangkan kebutuhan untuk menyematkan tanggal secara langsung (hard-code) dalam tugas berulang, sehingga alur kerja Anda dapat secara otomatis menyesuaikan diri dengan berbagai tanggal bisnis dan waktu eksekusi. Topik ini menjelaskan format yang didukung untuk nilai parameter dan cara menggunakannya.

Penting

Sebelum membaca topik ini, pastikan Anda memahami cara mengonfigurasi parameter penjadwalan. Untuk informasi lebih lanjut, lihat Konfigurasikan dan gunakan parameter penjadwalan.

Konsep inti: Garis dasar waktu

Parameter waktu merupakan kasus penggunaan utama dari parameter penjadwalan. Parameter ini digunakan untuk menggantikan berbagai string waktu secara dinamis saat tugas dijalankan. Semua parameter waktu dinamis di DataWorks didasarkan pada dua garis dasar waktu inti berikut.

Konsep

Definisi

Nilai parameter default

Format kustom

Presisi waktu

Tanggal bisnis

Tanggal data yang sedang diproses, yaitu hari sebelumnya dari tanggal jadwal eksekusi tugas. Dalam skenario komputasi offline T+1, ini merepresentasikan tanggal terjadinya data bisnis.

Misalnya, jika hari ini Anda menghitung pendapatan penjualan kemarin, maka kemarin adalah tanggal transaksi terjadi, yang merupakan tanggal bisnis.

${yyyymmdd}

${...}

Tahun, bulan, hari

Waktu penjadwalan

scheduling time yang ditetapkan dalam konfigurasi penjadwalan. Saat tugas dijalankan, sistem menggantinya dengan tanggal eksekusi instans tugas tersebut (hari ini). Ini adalah waktu eksekusi teoretis tugas dan tidak berubah meskipun terjadi antrian sumber daya atau penundaan selama eksekusi aktual.

$[yyyymmddhh24miss]

$[...]

Tahun, bulan, hari, jam, menit, detik

Rangkuman kesetaraan konsep:

  • Tanggal bisnis ≈ Kemarin (tanggal data)

  • Waktu penjadwalan ≈ Hari ini (saat tugas dijalankan)

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

Ekspresi nilai parameter

Parameter penjadwalan mendukung beberapa jenis penugasan, termasuk yang berikut:

  • Parameter waktu kustom: Seperti ${...} dan $[...], yang dapat ditransformasikan berdasarkan dua garis dasar waktu (tanggal bisnis dan waktu penjadwalan). Untuk informasi lebih lanjut, lihat Parameter waktu kustom.

  • Parameter sistem bawaan: Seperti $bizdate, $bizmonth, dan $jobid, yang dapat Anda gunakan untuk mengambil tanggal bisnis, bulan bisnis, ID alur kerja, dan informasi lainnya. Parameter ini tidak terbatas pada nilai berbasis waktu. Untuk informasi lebih lanjut, lihat Parameter sistem bawaan.

  • Konstanta: Seperti '123' dan 'abc'.

Penting

Pembatasan karakter khusus: Ekspresi parameter tidak mendukung spasi atau karakter =.

Prinsip penggunaan dasar

image

Anda dapat menentukan logika penugasan untuk parameter penjadwalan dengan mengatur nama parameter dan nilai parameter di bagian Scheduling > Scheduling Parameters. Setelah menentukan parameter, Anda dapat mereferensikannya dalam kode menggunakan format ${parameter_name}. Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter, lihat Konfigurasikan dan gunakan parameter penjadwalan.

  • Anda dapat langsung menggunakan parameter sistem bawaan $bizdate dan $cyctime masing-masing untuk tanggal bisnis dan waktu penjadwalan. Keduanya setara dengan yang berikut:

    • $bizdate = ${yyyymmdd}

    • $cyctime = $[yyyymmddhh24miss]

      image

      image

      Gambar berikut membandingkan definisi parameter untuk $bizdate dan ${yyyymmdd}, serta untuk $cyctime dan $[yyyymmddhh24miss]. Gambar tersebut juga menunjukkan hasil pratinjau ketika tanggal bisnis adalah 16 Oktober 2025.
  • Jika nilai yang dikembalikan oleh parameter garis dasar waktu tidak memenuhi kebutuhan Anda, Anda dapat membuat parameter waktu kustom menggunakan ${...} dan $[...]. Parameter waktu kustom merupakan transformasi berdasarkan dua garis dasar waktu tersebut.

Parameter waktu kustom

DataWorks memungkinkan Anda menggunakan ${...} dan $[...] untuk mengambil waktu bisnis dan waktu penjadwalan. Fitur ini juga mendukung transformasi untuk menyesuaikan waktu sesuai kebutuhan. Contoh berikut mengasumsikan node dikonfigurasi dengan penjadwalan harian dan waktu penjadwalan pukul 02:30:45. Jika tanggal bisnis adalah 20251031, garis dasar waktunya adalah sebagai berikut:

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

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

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

Format ${...} dan $[...] memiliki perbedaan mendasar dalam garis dasar waktu dan kemampuan perhitungan. Menggunakan format yang salah akan menyebabkan error data.

Perbandingan

${...} (berdasarkan tanggal bisnis)

$[...] (berdasarkan waktu penjadwalan)

Garis dasar waktu

Tanggal bisnis (T-1)

Waktu penjadwalan (T)

Presisi waktu

Hari (tahun, bulan, hari)

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

Kemampuan perhitungan offset

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

Mendukung offset untuk hari, jam, dan menit.

Batasan inti

Anda tidak dapat memformat atau menghitung offset untuk unit waktu yang lebih kecil seperti jam, menit, atau detik.

Tidak mendukung offset tahun atau bulan langsung menggunakan sintaks seperti $[yyyy±N] atau $[mm±N]. Gunakan fungsi add_months.

Parameter sistem ekuivalen

${yyyymmdd} setara dengan $bizdate

$[yyyymmddhh24miss] setara dengan $cyctime

Pemformatan waktu

Anda dapat menggunakan kurung kurawal ${...} atau kurung siku $[...] yang dikombinasikan dengan kombinasi kustom yyyy, yy, mm, dan dd untuk menghasilkan parameter waktu. Hal ini memungkinkan Anda mengambil tanggal N tahun, bulan, atau hari sebelum atau sesudah tanggal bisnis.

Kode

Deskripsi

${...} (berdasarkan tanggal bisnis)

$[...] (berdasarkan waktu penjadwalan)

Metode penugasan

Hasil

Metode penugasan

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 hari)

-

$[hh24]

02

hh / hh12

Jam dalam format 12 jam

-

$[hh]

02

mi

Menit

-

$[mi]

30

ss

Kedua

-

$[ss]

45

yyyymm

Ambil tahun dan bulan

${yyyymm}

202510

$[yyyymm]

202511

yyyy-mm-dd

Format dengan tanda hubung

${yyyy-mm-dd}

2025-10-31

$[yyyy-mm-dd]

2025-11-01

yyyy-mm-dd hh24:mi:ss

Format dengan tanda hubung, termasuk waktu

Tidak didukung (presisi hari)

-

Untuk metode yang didukung, lihat Penggabungan String: Kasus 2.

Perhitungan offset

Perhitungan offset merupakan fitur inti dari parameter dinamis yang memungkinkan Anda menambah atau mengurangi waktu dari tanggal bisnis atau waktu penjadwalan. Misalnya, Anda dapat mengambil tanggal N tahun, bulan, atau hari sebelum atau sesudah garis dasar. Anda juga dapat mengambil waktu N jam atau menit sebelum atau sesudah garis dasar, tetapi ini hanya didukung untuk waktu penjadwalan. Format ${...} dan $[...] mendukung rentang yang berbeda karena memiliki presisi garis dasar waktu yang berbeda.

  1. Perhitungan offset dalam mode ${...}

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

      Penting

      Offset jam atau menit tidak didukung. Misalnya, sintaks seperti ${yyyy-mm-dd-1/24} tidak valid.

    • Sintaks: ${<format_waktu><±N>}. Dalam format ini, N berkorespondensi dengan unit terkecil dari format waktu. Misalnya, jika formatnya adalah yyyymm, N merepresentasikan offset dalam bulan (mm). Jika formatnya adalah yyyymmdd, N merepresentasikan offset dalam hari (dd).

      Periode offset tanggal

      Offset Unit

      Metode

      Contoh

      N tahun sebelum/setelah

      Tahun

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

      Tahun sebelumnya: ${yyyy-1}

      N bulan sebelum/setelah

      Bulan

      ${yyyymm±N}

      Bulan sebelumnya: ${yyyymm-1}

      N minggu sebelum/setelah

      Minggu

      ${yyyymmdd±7*N}

      Minggu sebelumnya: ${yyyymmdd-7*1}

      N hari sebelum/setelah

      Hari

      ${yyyymmdd±N}

      Hari sebelum kemarin: ${yyyymmdd-1}

  2. Perhitungan offset dalam mode $[...]

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

      Penting

      Format $[...] tidak mendukung offset tahun atau bulan menggunakan format seperti $[yyyy-N] atau $[mm-N]. Untuk melakukan perhitungan offset pada tahun atau bulan, gunakan fungsi add_months.

    • Sintaks: $[<format_waktu><±N>]. Untuk menentukan offset jam, gunakan N/24. Untuk menentukan offset menit, gunakan N/24/60. Dalam ekspresi ini, N adalah jumlah jam atau menit untuk offset tersebut.

      Skenario

      Satuan Offset

      Metode

      Contoh

      N tahun sebelum/setelah

      Tahun

      $[add_months(yyyymmdd,12*N)] (N tahun setelah)
      $[add_months(yyyymmdd,-12*N)] (N tahun sebelum)

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

      N bulan sebelum/setelah

      Bulan

      $[add_months(yyyymmdd,N)] (N bulan setelah)
      $[add_months(yyyymmdd,-N)] (N bulan sebelum)

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

      N minggu sebelum/setelah

      Minggu

      $[yyyymmdd±7*N]

      Minggu sebelumnya: $[yyyymmdd±7*1]

      N hari sebelum/setelah

      Hari

      $[yyyymmdd±N]

      Kemarin: $[yyyymmdd-1]

      N jam sebelum/setelah

      Jam

      Format yang tersedia:

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

      • $[Custom time format±N/24].

      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]

      • $[custom time format±N/24/60]

      15 menit sebelum waktu penjadwalan 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 kompleks

      Hari + Jam

      $[yyyymmdd±N±M/24], dengan N sebagai offset hari dan M sebagai offset jam.

      Contoh: Ambil hari sebelumnya dan jam sebelumnya → $[yyyymmdd-1-1/24]

      Catatan
      • Saat melakukan perhitungan offset untuk jam dan menit, masalah lintas hari (cross-day) dapat terjadi. Untuk informasi lebih lanjut tentang cara menangani penggantian parameter lintas hari, lihat Bagaimana cara menangani penggantian parameter lintas hari saat saya mengurangi satu jam dari parameter penjadwalan?.

      • Saat melakukan perhitungan offset bulan pada tanggal akhir bulan, jika bulan tujuan tidak memiliki tanggal tersebut, hasilnya secara otomatis dikalibrasi ke tanggal terakhir bulan tujuan. Misalnya, jika tanggal saat ini adalah 2025-03-31 dan Anda mengurangi satu bulan, hasilnya adalah 2025-02-28 karena Februari tidak memiliki tanggal 31.

Transformasi sekunder menggunakan fungsi engine

Jika fitur pemformatan dan offset bawaan tidak dapat menghasilkan nilai yang Anda butuhkan (misalnya, mengambil tanggal terakhir bulan sebelumnya), Anda dapat menggunakan fungsi bawaan dari mesin komputasi node target atau node penugasan untuk melakukan transformasi sekunder pada parameter waktu saat memanggilnya.

Untuk informasi lebih lanjut, lihat Skenario khas untuk pemrosesan sekunder nilai kembali parameter penjadwalan.

Penggabungan string

Anda dapat menggunakan metode ini untuk membangun string tanggal tertentu yang tidak didukung oleh sintaks bawaan tetapi mengikuti pola reguler. Metode ini menggabungkan bagian tanggal yang dihasilkan oleh parameter penjadwalan dengan string konstan tetap.

Kasus 1: Ambil secara dinamis tanggal pertama setiap bulan.

  • Skenario: Terlepas dari hari eksekusi tugas, Anda memerlukan string yang merepresentasikan tanggal pertama bulan berjalan dalam format yyyymm01.

  • Implementasi:

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

    2. Gabungkan dengan konstanta: Gabungkan tahun dan bulan yang diekstrak dengan string '01'.

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

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

Kasus 2: Ambil waktu dalam format yyyy-mm-dd hh24:mi:ss.

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

  • Implementasi:

    1. Atur parameter datetime1 menjadi datetime1=$[yyyy-mm-dd] dan parameter datetime2 menjadi datetime2=$[hh24:mi:ss-1/24/60].

    2. Gabungkan parameter: Gabungkan datetime1 dan datetime2 dengan spasi.

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

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

Parameter sistem bawaan

DataWorks mendukung parameter sistem berikut, yang dapat Anda gunakan untuk mengatur nilai parameter penjadwalan. Namun, metode ini menawarkan fleksibilitas yang lebih rendah dan menggunakan format waktu tetap. Kami menyarankan Anda menggunakan parameter waktu kustom karena mendukung transformasi yang fleksibel.

Parameter bawaan

Definisi

$bizdate

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

Parameter ini banyak digunakan. Dalam penjadwalan harian, tanggal bisnis secara default adalah hari sebelum waktu eksekusi tugas yang diharapkan.

$cyctime

Waktu penjadwalan tugas, dalam format yyyymmddhh24miss. Nilainya sama dengan parameter kustom $[yyyymmddhh24miss].

$gmtdate

Tanggal saat ini, dalam format yyyymmdd.

Parameter ini secara default adalah hari ini. Saat Anda melakukan operasi pengisian ulang data, nilainya adalah tanggal bisnis + 1.

$bizmonth

Bulan bisnis, dalam format yyyymm.

  • Jika bulan tanggal bisnis sama dengan bulan saat ini, maka $bizmonth = bulan tanggal bisnis - 1.

  • Jika bulan tanggal bisnis berbeda dari bulan saat ini, maka $bizmonth = bulan tanggal bisnis.

$jobid

ID alur kerja tempat tugas tersebut berada.

$nodeid

ID node.

$taskid

ID instans yang dihasilkan oleh node.

Contoh penggantian parameter dalam skenario aktual

Nilai penggantian parameter penjadwalan ditentukan saat instans dibuat dan tidak berubah berdasarkan waktu mulai aktual instans tersebut. Prinsip ini berlaku untuk semua skenario.

image

Skenario 1: Penjadwalan normal

Dalam skenario penjadwalan otomatis normal, logika penggantian parameter secara langsung berkorespondensi dengan dua garis dasar waktu: tanggal bisnis dan waktu penjadwalan.

  • ${...} (tanggal bisnis): Nilainya ditentukan oleh tanggal bisnis instans tersebut.

  • $[...] (waktu penjadwalan): Nilainya ditentukan oleh waktu penjadwalan instans tersebut.

Contoh: Asumsikan tugas penjadwalan harian A dijadwalkan berjalan pada pukul 00:00 setiap hari dan memiliki dua parameter yang dikonfigurasi:

  • yesterday=${yyyymmdd}

  • today=$[yyyymmddhh24miss]

Tabel berikut menunjukkan logika penggantian untuk salah satu instansnya.

Waktu penjadwalan instans

Tanggal Bisnis Instance

Parameter: yesterday=${yyyymmdd}

Parameter: today=$[yyyymmddhh24miss]

2025-3-15 00:00:00

2025-3-14

20250314

2025031500000000

Skenario 2: Pengisian ulang data

Saat Anda menjalankan tugas pengisian ulang data secara manual, logika penggantian parameter berubah berdasarkan tanggal bisnis yang dipilih secara manual, terutama untuk waktu penjadwalan.

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

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

Contoh: Asumsikan Anda menjalankan pengisian ulang data secara manual untuk tugas A yang sama dan memilih tanggal bisnis 2025-03-15.

Tanggal bisnis yang dipilih secara manual

Parameter: yesterday=${yyyymmdd}

Parameter: today=$[yyyymmddhh24miss]

2025-03-15

20250315

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

FAQ

Untuk jawaban atas pertanyaan umum tentang penggunaan parameter penjadwalan, lihat FAQ parameter penjadwalan.

Referensi