全部产品
Search
文档中心

DataWorks:Format yang Didukung untuk Parameter Penjadwalan

更新时间:Oct 24, 2025

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.

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

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.

${yyyymmdd}

${...}

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.

$[yyyymmddhh24miss]

$[...]

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 Scheduling > Scheduling Parameters, 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 $bizdate dan $cyctime untuk langsung menetapkan nilai untuk tanggal bisnis dan waktu penjadwalan. Dalam hal nilai, $bizdate setara dengan ${yyyymmdd}, dan $cyctime setara dengan $[yyyymmddhh24miss].

    image

    image

    Gambar-gambar menunjukkan definisi parameter dan hasil pratinjau ketika tanggal bisnis adalah 16 Oktober 2025 untuk $bizdate vs. ${yyyymmdd} dan $cyctime vs. $[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:

Penting

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.

    Penting

    Waktu 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 $[yyyy±N] atau $[mm±N]. Gunakan fungsi add_months sebagai gantinya.

Ekuivalensi Default

${yyyymmdd} setara dengan $bizdate

$[yyyymmddhh24miss] setara dengan $cyctime

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

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

Dapatkan 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

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.

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

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

      Penting

      Tidak 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 adalah yyyymm, N mewakili bulan (mm); jika formatnya adalah yyyymmdd, 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}

  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 sebagai gantinya.

    • Sintaks: $[<format_waktu><±N>], di mana offset jam ditentukan sebagai N/24 dan offset menit ditentukan sebagai N/24/60. N adalah 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]

      Catatan

      Saat 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:

    1. Ekstrak 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 '01'.

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

  • Hasil: Saat tugas berjalan, panggilan ke ${first_day_of_month} mengembalikan 20231001.

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

  • Kasus: Ambil waktu dalam format yyyy-mm-dd hh24:mi:ss, seperti 2023-11-01 02:30:45.

  • Implementasi:

    1. Tetapkan dua parameter: datetime1 dan datetime2, serta tetapkan nilai mereka sebagai datetime1=$[yyyy-mm-dd] dan datetime2=$[hh24:mi:ss-1/24/60], masing-masing.

    2. Gabungkan parameter: Tentukan parameter ketiga yang menggabungkan datetime1 dan datetime2 dengan spasi.

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

  • Hasil: Saat tugas berjalan, panggilan ke ${pt} mengembalikan 2023-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 yyyymmdd. Nilainya sama dengan parameter kustom ${yyyymmdd}.

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 yyyymmddhh24miss. Nilainya sama dengan parameter kustom $[yyyymmddhh24miss].

$gmtdate

Tanggal saat ini, dalam format yyyymmdd.

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

$bizmonth

Bulan bisnis, dalam format yyyymm.

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

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

$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 + 1 hari. Misalnya, jika tanggal bisnis yang dipilih untuk pengisian ulang data adalah 20250315, nilai untuk parameter $cyctime akan menjadi 20250316000000. Jika parameter penjadwalan menggunakan format $[...], garis dasarnya adalah tanggal bisnis yang dipilih + 1 hari, 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 $[...], nilai penggantinya ditentukan oleh waktu penjadwalan Instans, yang diperoleh dari Scheduling Time dalam konfigurasi penjadwalan node.

Misalnya, jika sebuah node dijadwalkan setiap jam dari 00:00 hingga 23:59, instans pertama dan kedua memiliki waktu penjadwalan pukul 00:00 dan 01:00, menghasilkan nilai parameter jam 00 dan 01, masing-masing.

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.

Referensi