Parameter penjadwalan adalah fitur inti DataWorks yang secara dinamis menggantikan nilai berbasis waktu dalam kode Anda selama tugas otomatisasi. Fitur ini menghilangkan kebutuhan untuk mengkodekan tanggal secara langsung dalam tugas berulang, memungkinkan alur kerja Anda beradaptasi secara otomatis dengan tanggal bisnis dan waktu eksekusi yang berbeda. Topik ini menjelaskan format yang didukung untuk nilai parameter penjadwalan dan penggunaannya.
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
Semua parameter waktu dinamis di DataWorks didasarkan pada dua garis dasar waktu inti berikut:
Konsep | Definisi | Nilai Parameter | Format Kustom | Presisi Waktu |
Tanggal Bisnis | Tanggal dari data yang sedang diproses, biasanya sehari sebelum tanggal jadwal tugas. Dalam skenario pemrosesan batch T+1 (di mana tugas hari ini memproses data kemarin), ini mewakili tanggal ketika data bisnis terjadi. Misalnya, jika Anda menghitung pendapatan penjualan kemarin hari ini, kemarin adalah tanggal ketika transaksi terjadi, yang merupakan tanggal bisnis. |
|
| Tahun, bulan, hari |
Waktu Penjadwalan | scheduling time yang dikonfigurasi di Scheduling untuk tugas tersebut. Saat instans dibuat, nilai ini ditetapkan dan tetap tetap. Nilai ini akurat hingga detik dan independen dari waktu eksekusi aktual tugas. Ini mewakili waktu eksekusi yang diharapkan dari tugas dan mungkin tidak identik dengan waktu mulai aktual. Waktu mulai aktual dipengaruhi oleh beberapa faktor. |
|
| Tahun, bulan, hari, jam, menit, detik |
Ringkasan konsep:
Tanggal Bisnis ≈ Kemarin (tanggal data)
Waktu Penjadwalan ≈ Hari ini (saat tugas berjalan)
Tugas T+1 tipikal dimulai di pagi hari hari ini (waktu penjadwalan) untuk memproses data dari kemarin (tanggal bisnis).
Prinsip
Anda dapat mengonfigurasi parameter dan menetapkan nilai di , serta melihat pratinjau nilai penggantian untuk instans tugas di masa mendatang menggunakan fitur pratinjau parameter. Untuk informasi lebih lanjut tentang proses konfigurasi parameter, lihat Konfigurasikan dan Gunakan Parameter Penjadwalan.
Anda dapat menggunakan parameter sistem bawaan
$bizdatedan$cyctimeuntuk langsung menetapkan nilai untuk tanggal bisnis dan waktu penjadwalan. Dalam hal nilai,$bizdatesetara dengan${yyyymmdd}, dan$cyctimesetara dengan$[yyyymmddhh24miss].

Gambar-gambar menunjukkan definisi parameter dan hasil pratinjau ketika tanggal bisnis adalah 16 Oktober 2025 untuk
$bizdatevs.${yyyymmdd}dan$cyctimevs.$[yyyymmddhh24miss].Jika nilai balik parameter waktu dasar tidak memenuhi kebutuhan Anda, Anda dapat membuat parameter waktu kustom menggunakan
${...}dan$[...]. Parameter waktu kustom adalah transformasi berdasarkan dua nilai waktu dasar dan mendukung metode berikut:
Saat menetapkan nilai ke parameter penjadwalan menggunakan metode kustom, perhatikan perbedaan antara dua format kurung {...} dan [...]. Kedua format menggunakan nilai dasar waktu yang berbeda dan menghasilkan nilai parameter yang sepenuhnya berbeda. Mencampuradukkan keduanya dapat menyebabkan kesalahan data dalam produksi.
Jenis Penugasan Nilai
Parameter penjadwalan mendukung beberapa jenis penugasan, termasuk:
Parameter Sistem Bawaan: Seperti
$bizdate,$bizmonth, dan$jobid, yang dapat digunakan untuk mendapatkan tanggal bisnis, bulan bisnis, ID alur kerja, dan lainnya. Mereka tidak terbatas pada nilai berbasis waktu. Untuk informasi lebih lanjut, lihat Parameter Sistem Bawaan.Parameter Waktu Kustom: Seperti
${...}dan$[...], yang dapat ditransformasi berdasarkan dua nilai waktu dasar. Untuk detailnya, lihat Parameter Waktu Kustom.Konstanta: Seperti
'123'atau'abc'.
Parameter Waktu Kustom
DataWorks mendukung penggunaan ${...} dan $[...] untuk mengambil tanggal bisnis dan waktu penjadwalan. Ini juga mendukung transformasi untuk menyesuaikan waktu. Contoh-contoh berikut mengasumsikan node dikonfigurasi dengan penjadwalan harian dan waktu penjadwalan pukul 02:30:45. Dengan asumsi tanggal bisnis adalah 31 Oktober 2025, berikut adalah waktu dasar:
Tanggal Bisnis: ${yyyymmdd}, yaitu 20251031 dalam contoh ini.
Waktu Penjadwalan: $[yyyymmddhh24miss], yaitu 20251101023045 dalam contoh ini.
PentingWaktu penjadwalan adalah nilai preset yang tetap saat instans tugas dibuat. Jika instans tertunda karena faktor seperti kendala sumber daya atau status node upstream, waktu penjadwalannya tidak berubah; itu independen dari waktu eksekusi aktual.
Perbedaan Inti antara ${...} dan $[...]
Memahami perbedaan inti antara format ${...} dan $[...] sangat penting, karena mereka memiliki perbedaan mendasar dalam garis dasar waktu dan kemampuan perhitungan mereka. Mencampuradukkan keduanya dapat menyebabkan kesalahan data.
Perbandingan |
|
|
Garis Dasar Waktu | Tanggal Bisnis (T-1) | Waktu Penjadwalan (T) |
Presisi Waktu | Hari (tahun, bulan, hari) | Detik (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 | Tidak mendukung pemformatan atau perhitungan offset untuk unit yang lebih kecil seperti jam, menit, atau detik. | Tidak mendukung offset tahun atau bulan langsung menggunakan sintaks seperti |
Ekuivalensi Default |
|
|
Pemformatan Waktu
Anda dapat memformat dua garis dasar waktu dengan menggunakan ${...} atau $[...] dikombinasikan dengan spesifikasi format waktu seperti yyyy, mm, dan dd.
Kode | Deskripsi |
|
| ||
Penugasan | Hasil | Penugasan | Hasil | ||
| Tahun 4 digit |
|
|
|
|
| Bulan 2 digit |
|
|
|
|
| Hari 2 digit |
|
|
|
|
| Jam dalam format 24 jam | Tidak didukung (presisi hari) | - |
|
|
| Jam dalam format 12 jam | - |
|
| |
| Menit | - |
|
| |
| Kedua, | - |
|
| |
| Dapatkan tahun dan bulan |
|
|
|
|
| Format dengan tanda hubung |
|
|
|
|
| Format dengan tanda hubung | Tidak didukung (presisi hari) | - | Lihat Penggabungan String: Kasus 2 untuk metode yang didukung. | |
Perhitungan Offset
Perhitungan offset adalah inti dari parameter dinamis, memungkinkan Anda menambah atau mengurangi waktu dari tanggal bisnis atau waktu penjadwalan. Misalnya, dapatkan tanggal N tahun, bulan, atau hari sebelum atau setelah garis dasar, atau N jam atau menit (jam dan menit hanya didukung untuk waktu penjadwalan). ${...} dan $[...] mendukung rentang yang berbeda karena presisi garis dasar waktu mereka yang berbeda.
Perhitungan offset dalam mode
${...}Kemampuan inti: Mendukung offset integer untuk tahun, bulan, minggu, dan hari.
PentingTidak mendukung offset jam atau menit. Sintaks seperti
${yyyy-mm-dd-1/24}tidak didukung.Sintaks:
${<format_waktu><±N>}, di mana N sesuai dengan unit terkecil dari format waktu. Misalnya, jika formatnya adalahyyyymm, N mewakili bulan (mm); jika formatnya adalahyyyymmdd, N mewakili hari (dd).Periode offset tanggal
Unit offset
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 sebelumnya:
${yyyymmdd-1}
Perhitungan offset dalam mode
$[...]Kemampuan inti: Mendukung offset pecahan untuk hari, jam, dan menit.
PentingFormat
$[...]tidak mendukung offset tahun atau bulan menggunakan format seperti$[yyyy-N]atau$[mm-N]. Untuk melakukan perhitungan offset pada tahun atau bulan, gunakan fungsiadd_monthssebagai gantinya.Sintaks:
$[<format_waktu><±N>], di mana offset jam ditentukan sebagaiN/24dan offset menit ditentukan sebagaiN/24/60.Nadalah jumlah jam atau menit untuk offset.Persyaratan
Unit 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*1)]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
Gunakan format seperti
$[hh24miss±N/24],$[hh24±N/24], dan$[<format_waktu_kustom>±N/24].Jam sebelumnya dalam format berbeda:
$[mm-1/24],$[yyyy-1/24],$[yyyymm-1/24],$[yyyymmdd-1/24],$[yyyymmdd-1-1/24].N menit sebelum/setelah
Menit
Gunakan format seperti
$[hh24miss±N/24/60],$[yyyymmddhh24miss±N/24/60],$[mi±N/24/60], atau$[<format_waktu_kustom>±N/24/60].15 menit sebelum waktu penjadwalan dalam format berbeda:
$[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], di mana N adalah offset hari dan M adalah offset jam.Contoh: Dapatkan hari sebelumnya dan jam sebelumnya →
$[yyyymmdd-1-1/24]CatatanSaat Anda melakukan perhitungan offset untuk jam dan menit, masalah lintas hari mungkin terjadi. Untuk detail tentang cara menangani penggantian parameter lintas hari, lihat Bagaimana cara menangani penggantian parameter lintas hari ketika saya mengurangi satu jam dari parameter penjadwalan?.
Transformasi sekunder menggunakan fungsi mesin
Jika fitur bawaan tidak dapat menghasilkan nilai yang Anda butuhkan (misalnya, mendapatkan hariterakhir dari bulan sebelumnya), gunakan 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 tipikal untuk pemrosesan sekunder nilai balik parameter penjadwalan.
Penggabungan String
Metode ini digunakan untuk membangun string tanggal tertentu yang tidak didukung oleh sintaksis bawaan. Ini menggabungkan bagian tanggal yang dihasilkan oleh parameter penjadwalan dengan string konstan tetap.
Contoh 1: Mengambil hari pertama setiap bulan secara dinamis.
Kasus: Terlepas dari hari mana tugas berjalan, Anda memerlukan string yang mewakili hari pertama bulan saat ini dalam format
yyyymm01.Implementasi:
Ekstrak tahun dan bulan: Gunakan
${yyyymm}untuk mendapatkan tahun dan bulan dari tanggal bisnis saat ini (misalnya, jika tanggal bisnis adalah20231027, hasilnya adalah202310).Gabungkan tahun dan bulan yang diekstraksi dengan string
'01'.Penugasan parameter:
first_day_of_month=${yyyymm}01
Hasil: Saat tugas berjalan, panggilan ke
${first_day_of_month}mengembalikan20231001.
Contoh 2: Ambil waktu dalam format yyyy-mm-dd hh24:mi:ss.
Kasus: Ambil waktu dalam format
yyyy-mm-dd hh24:mi:ss, seperti2023-11-01 02:30:45.Implementasi:
Tetapkan dua parameter:
datetime1dandatetime2, serta tetapkan nilai mereka sebagaidatetime1=$[yyyy-mm-dd]dandatetime2=$[hh24:mi:ss-1/24/60], masing-masing.Gabungkan parameter: Tentukan parameter ketiga yang menggabungkan
datetime1dandatetime2dengan spasi.Penugasan parameter:
pt=${datetime1} ${datetime2}.
Hasil: Saat tugas berjalan, panggilan ke
${pt}mengembalikan2023-11-01 02:29:45.
Parameter Sistem Bawaan
DataWorks mendukung parameter sistem yang tercantum dalam tabel di bawah ini, yang dapat digunakan untuk menetapkan nilai parameter penjadwalan. Namun, metode ini menawarkan fleksibilitas yang lebih rendah dan menggunakan format waktu tetap. Kami merekomendasikan penggunaan parameter waktu kustom, yang mendukung transformasi fleksibel.
Parameter bawaan | Definisi |
$bizdate | Tanggal bisnis, dalam format Parameter ini banyak digunakan. Dalam penjadwalan harian, tanggal bisnis defaultnya adalah sehari sebelum waktu eksekusi yang diharapkan dari tugas. |
$cyctime | Waktu penjadwalan tugas, dalam format |
$gmtdate | Tanggal saat ini, dalam format Parameter ini defaultnya adalah hari saat ini. Saat Anda melakukan operasi pengisian ulang data, nilainya adalah |
$bizmonth | Bulan bisnis, dalam format
|
$jobid | ID alur kerja tempat tugas tersebut termasuk. |
$nodeid | ID node. |
$taskid | ID instans yang dihasilkan oleh node. |
Lampiran
Penggantian parameter selama pengisian ulang data
Setelah Anda mengirimkan tugas ke Pusat Operasi, Anda dapat melakukan pengisian ulang data untuk membuat dan menjalankan instans tugas historis secara batch untuk rentang tanggal tertentu guna menyelesaikan perbaikan data, pengisian ulang, atau analisis retrospektif.
Tanggal Bisnis: Tanggal bisnis yang dipilih untuk pengisian ulang data konsisten dengan hasil penggantian $bizdate. Jika parameter penjadwalan menggunakan format kustom
${...}, garis dasarnya adalah tanggal yang dipilih, ditransformasi oleh ekspresi waktu yang ditentukan.Waktu Penjadwalan: Saat Anda melakukan pengisian ulang data, hasil penggantian untuk $cyctime adalah
tanggal bisnis yang dipilih + 1hari. Misalnya, jika tanggal bisnis yang dipilih untuk pengisian ulang data adalah20250315, nilai untuk parameter$cyctimeakan menjadi20250316000000. Jika parameter penjadwalan menggunakan format$[...], garis dasarnya adalahtanggal bisnis yang dipilih + 1hari, ditransformasi oleh ekspresi waktu yang ditentukan.
Hubungan antara parameter penjadwalan, tanggal bisnis, waktu penjadwalan, dan waktu eksekusi aktual
Hubungan | Deskripsi dan contoh |
Hubungan antara parameter penjadwalan dan waktu eksekusi aktual | Nilai parameter penjadwalan ditetapkan saat instansnya dibuat dan tidak berubah jika waktu eksekusi aktual instans tertunda. |
Hubungan antara parameter penjadwalan dan waktu penjadwalan tugas | Ketika parameter penjadwalan ditetapkan ke Misalnya, jika sebuah node dijadwalkan setiap jam dari |
Hubungan antara parameter penjadwalan, tanggal bisnis, dan waktu penjadwalan |
Tentang waktu daylight saving
DataWorks memastikan bahwa tugas berjalan dengan benar pada hari ketika waktu daylight saving (DST) dimulai dan berakhir. Untuk detail tentang cara produk menangani transisi DST, lihat Skenario: Dampak transisi waktu daylight saving pada eksekusi tugas terjadwal. Jika Anda berada di wilayah yang mengamati DST, tinjau dokumen ini untuk menghindari kebingungan selama periode transisi.