Zamanlama parametreleri, yinelenen iş akışlarında tarihleri kodun içine sabit olarak yazma ihtiyacını ortadan kaldırarak çalışma zamanında koddaki zamana dayalı değerlerin dinamik olarak değiştirilmesini sağlar. Bu konuda parametre değerlerinin desteklenen biçimleri ve kullanımı açıklanmaktadır.
Zamanlama parametrelerini nasıl yapılandıracağınızı bildiğinizden emin olun. Ayrıntılar için bkz. Zamanlama parametrelerini yapılandırma ve kullanma.
Temel kavramlar: Zaman temel çizgileri
Zaman parametreleri, çalışma zamanında zaman dizelerini dinamik olarak değiştirir. DataWorks'teki tüm zaman parametreleri aşağıdaki iki temel zaman çizgisine dayanır.
Kavram | Açıklama | Varsayılan | Özel biçim | Hassasiyet |
İş tarihi | Bir görevin planlanan çalıştırma tarihinden önceki gün. T+1 çevrimdışı hesaplama senaryolarında, iş verilerinin oluşturulduğu tarihi temsil eder. Örneğin, dünün satış gelirini hesaplamak için bugün bir görev çalıştırırsanız "dün", işlemlerin gerçekleştiği tarihi yani iş tarihini ifade eder. |
|
| Yıl-ay-gün |
Planlanan zaman | Görevin zamanlama yapılandırmasında ayarlanan planlanan zaman. Çalışma zamanında sistem bunu geçerli güne çözümler. Görevin teorik çalıştırma zamanını temsil eder ve kaynak kuyruğa alma veya gecikmeler nedeniyle kaymaz. |
|
| Yıl-ay-gün-saat-dakika-saniye |
Özet:
İş tarihi ≈ Dün (verinin tarihi)
Planlanan zaman ≈ Bugün (görevin çalıştığı zaman)
Tipik bir T+1 görevi, dünden (iş tarihi) gelen verileri işlemek üzere bugün (planlanan zaman) erken saatlerde başlar.
Parametre değeri ifadesi
Zamanlama parametreleri aşağıdaki türde değerleri destekler:
Özel zaman parametreleri: İki zaman temel çizgisine (iş tarihi ve zamanlama zamanı) dayalı olarak değerleri dönüştüren
${...}ve$[...]gibi ifadeler. Daha fazla bilgi için bkz. Özel zaman parametreleri.Yerleşik sistem parametreleri: İş tarihi, iş ayı veya iş akışı kimliği gibi değerler döndüren
$bizdate,$bizmonthve$jobidgibi önceden tanımlanmış değişkenler. Bunlar yalnızca zamana dayalı değerlerle sınırlı değildir. Daha fazla bilgi için bkz. Yerleşik sistem parametreleri.Sabitler:
'123've'abc'gibi değişmez değerler.
Özel karakter kısıtlamaları: Parametre ifadeleri boşluk veya eşittir işaretini (=) içeremez.
Kullanım
Bir zamanlama parametresi için atama mantığını, belirterek tanımlarsınız. Parametreyi tanımladıktan sonra kodunuzda ${parameter name} sözdizimini kullanarak buna başvurabilirsiniz. Ayrıntılı talimatlar için bkz. Zamanlama parametrelerini yapılandırma ve kullanma.
-
İş tarihini ve planlanan zamanı temsil etmek için sistem yerleşik parametrelerini
$bizdateve$cyctimekullanın. Bu parametreler aşağıdaki değerlere çözülür:$bizdate=${yyyymmdd}-
$cyctime=$[yyyymmddhh24miss]

Yukarıdaki örnekler, $bizdate ( ${yyyymmdd} şeklinde çözümlenir) ve $cyctime ( $[yyyymmddhh24miss] şeklinde çözümlenir) parametre tanımlarını ve iş tarihinin 2025-10-16 olduğu durumdaki önizleme sonuçlarını göstermektedir.
Varsayılan temel zaman değerleri ihtiyaçlarınızı karşılamıyorsa, iki temel zamanı özel zaman parametrelerine dönüştürmek için
${...}ve$[...]sözdizimini kullanın.
Özel zaman parametreleri
DataWorks, sırasıyla ${...} ve $[...] biçimlerini kullanarak iş tarihini ve zamanlama zamanını almayı destekler. Bu biçimler, iş gereksinimlerini karşılamak için zaman değerlerini dönüştürmenize olanak tanır. Aşağıdaki örneklerde, bir düğümün her gün 02:30:45'te çalışacak şekilde planlandığı ve iş tarihinin 20251031 olduğu varsayılmaktadır. Temel zamanlar şunlardır:
İş tarihi: ${yyyymmdd} değeri 20251031'dir.
Zamanlama zamanı: $[yyyymmddhh24miss] değeri 20251101023045'tir.
${...} ve $[...] arasındaki temel farklar
${...} ve $[...] biçimleri, zaman temel çizgileri ve hesaplama yetenekleri açısından farklılık gösterir. Bunların karıştırılması veri hatalarına yol açabilir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Zaman biçimlendirme
Zaman parametreleri oluşturmak için ${...} veya $[...] biçimlerini kullanın. İş tarihinden N yıl, ay veya gün önceki veya sonraki tarihleri oluşturmak için yyyy, yy, mm ve dd gibi biçim kodlarını birleştirin.
Kod | Açıklama |
|
| ||
Örnek | Sonuç | Örnek | Sonuç | ||
| 4 basamaklı yıl |
|
|
|
|
| 2 basamaklı ay |
|
|
|
|
| 2 basamaklı gün |
|
|
|
|
| 24 saatlik formatta saat | Desteklenmez (gün düzeyinde hassasiyet) | - |
|
|
| 12 saatlik formatta saat | - |
|
| |
| Dakika | - |
|
| |
| Saniye | - |
|
| |
| Yıl ve ay |
|
|
|
|
| Alt çizgi ile biçimlendirilmiş yıl ve ay |
|
|
|
|
| Tire ile biçimlendirilmiş tarih |
|
|
|
|
| Tire ve iki nokta üst üste ile biçimlendirilmiş tarih ve saat | Desteklenmez (gün düzeyinde hassasiyet) | - | Bu biçime dize birleştirme kullanılarak ulaşılabilir. Bkz. Dize birleştirme: Durum 2. | |
Ofset hesaplama
Ofset hesaplama, bir iş tarihine veya zamanlama zamanına zaman eklemenizi veya çıkarmanızı sağlar. Zaman temel çizgisine göre N yıl, ay, gün, saat veya dakika ofsetleri uygulayabilirsiniz. Saat ve dakika ofsetleri yalnızca zamanlama zamanı için desteklenir. ${...} ve $[...] farklı zaman hassasiyeti düzeylerini destekledikleri için ofset yetenekleri farklıdır.
-
${...} ofset hesaplama
-
Temel yetenek: Yıl, ay, hafta ve gün için tamsayı ofsetlerini destekler.
ÖnemliSaat ve dakika ofsetleri desteklenmez. Örneğin, ${yyyy-mm-dd-1/24} geçersiz bir sözdizimidir.
-
Sözdizimi: ${<time_format><±N>}; burada N'nin birimi, biçimdeki en küçük birimdir (örneğin yyyymm veya yyyymmdd).
Gereksinim
Ofset birimi
Sözdizimi
Örnek
N yıl önce/sonra
Yıl${yyyy±N}veya${yy±N}
Önceki yılı alın:${yyyy-1}
N ay önce/sonra
Ay${yyyymm±N}
Önceki ayı alın:${yyyymm-1}
N hafta önce/sonra
Hafta${yyyymmdd±7*N}
Önceki haftayı alın:${yyyymmdd-7*1}
N gün önce/sonra
Gün${yyyymmdd±N}
Önceki günü alın:${yyyymmdd-1}
-
-
$[...] ofset hesaplama
-
Temel yetenek: Gün, saat ve dakika için kesirli ofsetleri destekler.
Önemli$[...] biçimi, N yıl veya ay öncesine ait tarihleri almak için
$[yyyy-N]veya$[mm-N]gibi ifadeleri kullanamaz. Yıl veya ay ofsetleri uygulamak içinadd_monthsişlevini kullanmanız gerekir. -
Sözdizimi: $[<time_format><±N>] ; burada N bir günün kesrini temsil eder: N saatlik ofset için **N/24 ve N dakikalık ofset için N/24/60** kullanın.
Gereksinim
Ofset birimi
Sözdizimi
Örnek
N yıl önce/sonra
Yıl
N yıl sonra:
$[add_months(yyyymmdd,12N)]
N yıl önce:$[add_months(yyyymmdd,-12N)]Önceki yılı alın:
$[add_months(yyyymmdd,-12)]N ay önce/sonra
Ay
N ay sonra:
$[add_months(yyyymmdd,N)]
N ay önce:$[add_months(yyyymmdd,-N)]Önceki ayı alın:
$[add_months(yyyymmdd,-1)]
Sonraki ayı alın:$[add_months(yyyy_mm,1)]N hafta önce/sonra
Hafta
$[yyyymmdd±7*N]Önceki haftayı alın:
$[yyyymmdd-7*1]N gün önce/sonra
Gün
$[yyyymmdd±N]Önceki günü (dünü) alın:
$[yyyymmdd-1]N saat önce/sonra
Saat
Kullanılabilir biçimler:
$[hh24miss±N/24],$[hh24±N/24]$[<custom_time_format>±N/24]
Farklı biçimlerde önceki saati alın:
Ay:
$[mm-1/24]Yıl:
$[yyyy-1/24]Yıl ve ay:
$[yyyymm-1/24]Yıl, ay ve gün:
$[yyyymmdd-1/24]Önceki gün ve önceki saat:
$[yyyymmdd-1-1/24]
N dakika önce/sonra
Dakika
Kullanılabilir biçimler:
$[hh24miss±N/24/60]$[yyyymmddhh24miss±N/24/60]$[mi±N/24/60]$[<custom_time_format>±N/24/60]
Farklı biçimlerde zamanlama zamanından 15 dakika önceki zamanı alın:
$[yyyy-15/24/60]$[yyyymm-15/24/60]$[yyyymmdd-15/24/60]$[hh24-15/24/60]$[mi-15/24/60]
Birleşik ofset
Gün + Saat
$[yyyymmdd±N±M/24]; burada N gün ofseti ve M saat ofsetidir.Örnek: Önceki gün ve önceki saat için zamanı alın →
$[yyyymmdd-1-1/24]NotGün aşımı işlemesi: Saat ve dakika ofsetleri, gün sınırını aşan bir zamanla sonuçlanabilir. Bunun nasıl ele alınacağına ilişkin ayrıntılar için bkz. Bir saat ofsetlediğinde gün aşımı parametre değiştirmenin nasıl ele alınacağı.
Ay sonu kalibrasyonu: Bir ay sonu tarihine ay ofseti uyguladığınızda, hedef ay daha az güne sahipse sonuç otomatik olarak o ayın son gününe kalibre edilir. Örneğin, 2025-03-31 tarihinden bir ay çıkarmak Şubat ayında 31 gün olmadığı için 2025-02-28 sonucunu döndürür.
-
Motor işlevleri kullanılarak ikincil dönüşüm
Yerleşik biçimlendirme ve ofset yetenekleri tam olarak ihtiyacınız olan değeri üretemiyorsa (örneğin, önceki ayın son günü), düğümün motor işlevlerini veya bir atama düğümünü kullanarak ikincil bir dönüşüm uygulayın.
Bkz.: Zamanlama parametresi dönüş değerlerinin ikincil işlenmesi için tipik senaryolar .
Dize birleştirme
Yerleşik sözdizimi tarafından desteklenmeyen yapılandırılmış tarih dizeleri oluşturmak için dize birleştirmeyi kullanın. Bu yöntem, bir zamanlama parametresi tarafından oluşturulan bir tarih parçasını sabit bir dizeyle birleştirir.
Durum 1: Her ayın ilk gününü dinamik olarak alma
Senaryo: Görevin hangi günde çalıştığından bağımsız olarak, geçerli ayın ilk gününü
yyyymm01biçiminde temsil eden bir dizeye ihtiyacınız var.-
Uygulama:
Yıl ve ay kısmını çıkarın: Geçerli iş tarihinin yıl ve ayını almak için
${yyyymm}kullanın. Örneğin, iş tarihi20231027ise sonuç202310olur.Çıkarılan yıl ve ayı sabit dize
'01'ile birleştirin.Parametre çağrısı:
first_day_of_month=${yyyymm}01
Sonuç: Görev çalıştığında,
${first_day_of_month}yerine20231001gelir.
Durum 2: yyyy-mm-dd hh24:mi:ss biçiminde zaman damgası oluşturma
Senaryo:
2023-11-01 02:30:45gibi yyyy-mm-dd hh24:mi:ss biçiminde bir zaman damgası oluşturmanız gerekir.-
Uygulama:
datetime1vedatetime2olmak üzere iki parametre tanımlayın. Bunları şu şekilde ayarlayın:datetime1=$[yyyy-mm-dd]vedatetime2=$[hh24:mi:ss].datetime1vedatetime2parametrelerini bir boşlukla ayırarak birleştirin.Parametre çağrısı: pt=
${datetime1}${datetime2}
Sonuç: Görev çalıştığında,
${datetime1}${datetime2}yerine2023-11-01 02:30:45gelir.
Yerleşik sistem parametreleri
DataWorks aşağıdaki yerleşik sistem parametrelerini sağlar. Sabit zaman biçimlerine ve sınırlı esnekliğe sahip olduklarından, bunun yerine özel zaman parametreleri kullanılması önerilir.
Parametre | Açıklama |
$bizdate |
Genellikle görevin planlanan çalıştırma zamanından önceki güne varsayılan olarak ayarlanır. |
$cyctime |
|
$gmtdate |
Varsayılan olarak geçerli tarihtir. Bir veri geri doldurma için tarih iş tarihi + 1 şeklindedir. |
$bizmonth |
|
$jobid | Görevi içeren iş akışının kimliği. |
$nodeid | Düğümün kimliği. |
$taskid | Düğümün oluşturduğu örneğin kimliği. |
Parametre değiştirme örnekleri
Bir zamanlama parametresi için değiştirme değeri, bir örnek oluşturulduğunda belirlenir ve gerçek başlangıç zamanından etkilenmez.
Senaryo 1: normal zamanlama
Normal zamanlamada, parametre değiştirme iki zaman temel çizgisine dayanır: iş tarihi ve zamanlama zamanı.
${...}(iş tarihi): Değer, örneğin iş tarihinden türetilir.$[...](zamanlama zamanı): Değer, örneğin zamanlama zamanından türetilir.
Örneğin, A adlı ve 00:00 saatinde çalışacak şekilde planlanan günlük bir görevi ve aşağıdaki parametreleri ele alalım:
yesterday=${yyyymmdd}today=$[yyyymmddhh24miss]
Aşağıdaki tabloda, bu parametrelerin belirli bir örnek için nasıl değiştirildiği gösterilmektedir:
|
|
|
|
|
|
|
|
|
|
Senaryo 2: veri geri doldurma
Veri geri doldurma sırasında, parametre değiştirme mantığı seçilen iş tarihine göre değişir. Bu durum özellikle zamanlama zamanına bağlı parametreleri etkiler.
${...}(iş tarihi): Temel çizgi, manuel olarak seçilen iş tarihidir.$[...](zamanlama zamanı): Temel çizgi, manuel olarak seçilen iş tarihi + 1 gündür.
Örneğin, A görevini iş tarihi olarak 2025-03-15 ile geri doldurursanız:
|
|
|
|
|
|
|
|
SSS
Zamanlama parametreleriyle ilgili sorular için bkz. Zamanlama Parametreleri SSS.