すべてのプロダクト
Search
ドキュメントセンター

DataWorks:スケジューリングパラメーターでサポートされるフォーマット

最終更新日:Feb 04, 2026

スケジューリングパラメーターは DataWorks のコア機能であり、タスクの自動実行中にコード内の時間ベースの値を動的に置換します。これにより、定期的なタスクで日付をハードコーディングする必要がなくなり、ワークフローが異なる業務日付や実行時間に自動的に適応できるようになります。このトピックでは、サポートされているパラメーター値のフォーマットと、その使用方法について説明します。

重要

このトピックを読む前に、スケジューリングパラメーターの設定方法を理解していることを確認してください。詳細については、「スケジューリングパラメーターの設定と使用」をご参照ください。

基本概念:時間のベースライン

時間パラメーターは、スケジューリングパラメーターの主要なユースケースです。タスク実行時にさまざまな時間文字列を動的に置換するために使用されます。DataWorks のすべての動的な時間パラメーターは、以下の 2 つのコアな時間ベースラインに基づいています。

概念

定義

デフォルトのパラメーター値

カスタムフォーマット

時間精度

業務日付

処理対象データの日付であり、タスクのスケジュールされた実行日の前日です。T+1 オフラインコンピューティングのシナリオでは、これは業務データが発生した日付を表します。

例えば、今日、昨日の売上を計算する場合、トランザクションが発生した日付である昨日が業務日です。

${yyyymmdd}

${...}

年、月、日

スケジューリング時間

スケジューリング設定で設定されたスケジューリング時間。タスクが実行されると、システムはこれをタスクインスタンスが実行される日付 (本日) に置き換えます。これはタスクの理論的な実行時間であり、実際のリソースのキューイングや遅延によってシフトしません

$[yyyymmddhh24miss]

$[...]

年、月、日、時、分、秒

概念の等価性まとめ:

  • 業務日付 ≈ 昨日 (データの発生日)

  • スケジューリング時間 ≈ 本日 (タスクの実行日)

典型的な T+1 タスクは、本日 (スケジューリング時間) の早朝に開始され、昨日 (業務日付) のデータを処理します。

パラメーター値の式

スケジューリングパラメーターは、以下を含む複数の割り当てタイプをサポートしています:

  • カスタム時間パラメーター${...}$[...] など。これらは 2 つの時間ベースライン (業務日付とスケジューリング時間) に基づいて変換できます。詳細については、「カスタム時間パラメーター」をご参照ください。

  • 組み込みシステムパラメーター$bizdate$bizmonth$jobid など。これらを使用して、業務日付、業務月、ワークフロー ID などの情報を取得できます。これらは時間ベースの値に限定されません。詳細については、「組み込みシステムパラメーター」をご参照ください。

  • 定数'123''abc' など。

重要

特殊文字の制限:パラメーター式では、スペースや = 文字はサポートされていません。

基本的な使用原則

image

[スケジューリング] > [スケジューリングパラメーター] セクションでパラメーター名パラメーター値を設定することで、スケジューリングパラメーターの割り当てロジックを定義できます。パラメーターを定義した後、${parameter_name} フォーマットを使用してコード内で参照できます。パラメーターの設定方法の詳細については、「スケジューリングパラメーターの設定と使用」をご参照ください。

  • 組み込みシステムパラメーターである $bizdate$cyctime をそれぞれ業務日付とスケジューリング時間として直接使用できます。これらは以下と等価です:

    • $bizdate = ${yyyymmdd}

    • $cyctime = $[yyyymmddhh24miss]

      image

      image

      以下の図は、$bizdate${yyyymmdd}、および $cyctime$[yyyymmddhh24miss] のパラメーター定義を比較したものです。また、業務日付が 2025年10月16日の場合のプレビュー結果も示しています。
  • ベースライン時間パラメーターの戻り値が要件を満たさない場合は、${...}$[...] を使用してカスタム時間パラメーターを作成できます。カスタム時間パラメーターは、2つの時間ベースラインに基づいた変換です。

カスタム時間パラメーター

DataWorks では、${...}$[...] を使用して業務時間とスケジューリング時間を取得できます。また、必要に応じて時間を調整するための変換もサポートしています。以下の例では、ノードが日次スケジューリングで、スケジューリング時間が 02:30:45 に設定されていると仮定します。業務日付が 20251031 の場合、ベースライン時間は次のようになります:

  • 業務日付${yyyymmdd} の値は 20251031 です。

  • スケジューリング時間$[yyyymmddhh24miss] の値は 20251101023045 です。

${...}$[...] の主な違い

${...}$[...] フォーマットは、時間ベースラインと計算能力において根本的な違いがあります。間違ったフォーマットを使用すると、データエラーが発生します。

比較

${...} (業務日付に基づく)

$[...] (スケジューリング時間に基づく)

時間ベースライン

業務日付 (T-1)

スケジューリング時間 (T)

時間精度

日 (年、月、日)

秒 (年、月、日、時、分、秒)

オフセット計算機能

年、月、週、日のオフセットをサポートします。

日、時、分のオフセットをサポートします。

主な制限事項

時、分、秒などのより小さな時間単位のフォーマットやオフセット計算はできません。

$[yyyy±N]$[mm±N] のような構文による直接の年または月のオフセットはサポートしていません。add_months 関数を使用してください。

等価なシステムパラメーター

${yyyymmdd}$bizdate と等価です

$[yyyymmddhh24miss]$cyctime と等価です

時間フォーマット

中括弧 ${...} または角括弧 $[...] を、yyyyyymmdd のカスタムの組み合わせと使用して、時間パラメーターを生成できます。これにより、業務日付の N 年、N ヶ月、または N 日前後の日付を取得できます。

コード

説明

${...} (業務日付に基づく)

$[...] (スケジューリング時間に基づく)

割り当て方法

結果

割り当て方法

結果

yyyy

4桁の年

${yyyy}

2025

$[yyyy]

2025

mm

2桁の月

${mm}

10

$[mm]

11

dd

2桁の日

${dd}

31

$[dd]

01

hh24

24時間形式の時

サポートされていません (日精度)

-

$[hh24]

02

hh / hh12

12時間形式の時

-

$[hh]

02

mi

-

$[mi]

30

ss

2番目

-

$[ss]

45

yyyymm

年と月を取得

${yyyymm}

202510

$[yyyymm]

202511

yyyy-mm-dd

ハイフンでフォーマット

${yyyy-mm-dd}

2025-10-31

$[yyyy-mm-dd]

2025-11-01

yyyy-mm-dd hh24:mi:ss

ハイフンでフォーマット、時間を含む

サポートされていません (日精度)

-

サポートされている方法については、「文字列連結:ケース 2」をご参照ください。

オフセット計算

オフセット計算は、動的パラメーターのコア機能であり、業務日付やスケジューリング時間に時間を加算または減算できます。例えば、ベースラインの N 年、N ヶ月、または N 日前後の日付を取得できます。また、ベースラインの N 時間または N 分前後の時間を取得することもできますが、これはスケジューリング時間でのみサポートされています。${...}$[...] フォーマットは、時間ベースラインの精度が異なるため、サポートする範囲が異なります。

  1. ${...} モードでのオフセット計算

    • コア機能:年、月、週、日の整数オフセットをサポートします。

      重要

      時または分のオフセットはサポートされていません。例えば、${yyyy-mm-dd-1/24} のような構文は無効です。

    • 構文: ${<時間フォーマット><±N>}。このフォーマットでは、N は時間フォーマットの最小単位に対応します。例えば、フォーマットが yyyymm の場合、N は月 (mm) のオフセットを表します。フォーマットが yyyymmdd の場合、N は日 (dd) のオフセットを表します。

      日付オフセット期間

      オフセット単位

      方法

      N 年前/後

      ${yyyy±N} または ${yy±N}

      前年:${yyyy-1}

      N ヶ月前/後

      ${yyyymm±N}

      前月:${yyyymm-1}

      N 週間前/後

      ${yyyymmdd±7*N}

      前週:${yyyymmdd-7*1}

      N 日前/後

      ${yyyymmdd±N}

      一昨日:${yyyymmdd-1}

  2. $[...] モードでのオフセット計算

    • コア機能:日、時、分の分数オフセットをサポートします。

      重要

      $[...] フォーマットは、$[yyyy-N]$[mm-N] のようなフォーマットを使用した年または月のオフセットをサポートしていません。年または月のオフセット計算を実行するには、add_months 関数を使用してください。

    • 構文: $[<時間フォーマット><±N>]。時のオフセットを指定するには、N/24 を使用します。分のオフセットを指定するには、N/24/60 を使用します。これらの式では、N はオフセットの時または分の数です。

      シナリオ

      オフセット単位

      方法

      N 年前/後

      $[add_months(yyyymmdd,12*N)] (N 年後)
      $[add_months(yyyymmdd,-12*N)] (N 年前)

      前年:$[add_months(yyyymmdd,-12)]

      N ヶ月前/後

      $[add_months(yyyymmdd,N)] (N ヶ月後)
      $[add_months(yyyymmdd,-N)] (N ヶ月前)

      前月:$[add_months(yyyymmdd,-1)]

      N 週間前/後

      $[yyyymmdd±7*N]

      前週:$[yyyymmdd±7*1]

      N 日前/後

      $[yyyymmdd±N]

      昨日:$[yyyymmdd-1]

      N 時間前/後

      利用可能なフォーマット:

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

      • $[カスタム時間フォーマット±N/24]

      異なるフォーマットでの前の時間:

      • 月:$[mm-1/24]

      • 年:$[yyyy-1/24]

      • 年と月:$[yyyymm-1/24]

      • 年、月、日:$[yyyymmdd-1/24]

      • 前日と前の時間:$[yyyymmdd-1-1/24]

      N 分前/後

      利用可能なフォーマット:

      • $[hh24miss±N/24/60]

      • $[yyyymmddhh24miss±N/24/60]

      • $[mi±N/24/60]

      • $[カスタム時間フォーマット±N/24/60]

      スケジューリング時間の 15 分前の異なるフォーマット:

      • $[yyyy-15/24/60]

      • $[yyyymm-15/24/60]

      • $[yyyymmdd-15/24/60]

      • $[hh24-15/24/60]

      • $[mi-15/24/60]

      複雑な組み合わせオフセット

      日 + 時

      $[yyyymmdd±N±M/24]、ここで N は日のオフセット、M は時のオフセットです。

      例:前日と前の時間を取得 → $[yyyymmdd-1-1/24]

      説明

エンジン関数を使用した2次変換

組み込みのフォーマットやオフセット機能で必要な値 (例えば、前月の最終日を取得するなど) を生成できない場合、対象ノードのコンピュートエンジンまたは代入ノードの組み込み関数を使用して、呼び出し時に時間パラメーターに2次変換を適用できます。

詳細については、「スケジューリングパラメーターの戻り値に対する2次処理の典型的なシナリオ」をご参照ください。

文字列連結

この方法を使用して、組み込みの構文ではサポートされていないが、規則的なパターンに従う特定の日付文字列を構築できます。この方法は、スケジューリングパラメーターによって生成された日付部分と固定の定数文字列を組み合わせます。

ケース 1:毎月の初日を動的に取得する。

  • シナリオ:タスクがどの日付に実行されても、現在の月の初日を yyyymm01 フォーマットの文字列で表す必要があります。

  • 実装:

    1. 年と月を抽出する:${yyyymm} を使用して、現在の業務日付の年と月を取得します。例えば、業務日付が 20231027 の場合、結果は 202310 となります。

    2. 定数を連結する:抽出した年と月を文字列 '01' と連結します。

    3. パラメーター呼び出し:first_day_of_month=${yyyymm}01

  • 結果:タスク実行時、${first_day_of_month}20231001 に置換されます。

ケース 2:yyyy-mm-dd hh24:mi:ss フォーマットの時間を取得する。

  • シナリオ:yyyy-mm-dd hh24:mi:ss フォーマットの時間、例えば 2023-11-01 02:30:45 を取得する必要があります。

  • 実装:

    1. datetime1 パラメーターを datetime1=$[yyyy-mm-dd] に、datetime2 パラメーターを datetime2=$[hh24:mi:ss-1/24/60] に設定します。

    2. パラメーターを連結する:datetime1datetime2 をスペースで連結します。

    3. パラメーター呼び出し:pt=${datetime1} ${datetime2}

  • 結果:タスク実行時、${datetime1} ${datetime2}2023-11-01 02:30:45 に置換されます。

組み込みシステムパラメーター

DataWorks は以下のシステムパラメーターをサポートしており、これらを使用してスケジューリングパラメーターの値を設定できます。ただし、この方法は柔軟性が低く、固定の時間フォーマットを使用します。柔軟な変換をサポートするカスタム時間パラメーターの使用を推奨します。

組み込みパラメーター

定義

$bizdate

業務日付。yyyymmdd フォーマットです。カスタムパラメーター ${yyyymmdd} と同じ値を持ちます。

このパラメーターは広く使用されています。日次スケジューリングでは、業務日付はデフォルトでタスクの期待される実行時間の前日になります。

$cyctime

タスクのスケジューリング時間。yyyymmddhh24miss フォーマットです。カスタムパラメーター $[yyyymmddhh24miss] と同じ値を持ちます。

$gmtdate

現在の日付。yyyymmdd フォーマットです。

このパラメーターはデフォルトで現在の日になります。データバックフィル操作を実行する場合、値は 業務日付 + 1 となります。

$bizmonth

業務月。yyyymm フォーマットです。

  • 業務日付の月が現在の月と同じ場合、$bizmonth = 業務日付の月 - 1 となります。

  • 業務日付の月が現在の月と異なる場合、$bizmonth = 業務日付の月 となります。

$jobid

タスクが属するワークフローの ID。

$nodeid

ノード ID。

$taskid

ノードによって生成されたインスタンス ID。

実際のシナリオにおけるパラメーター置換の例

スケジューリングパラメーターの置換値は、インスタンスが生成されるときに決定され、インスタンスの実際の開始時間に基づいて変更されることはありません。この原則はすべてのシナリオに適用されます。

image

シナリオ 1:通常のスケジューリング

通常の自動スケジューリングシナリオでは、パラメーター置換ロジックは、業務日付とスケジューリング時間の 2 つの時間ベースラインに直接対応します。

  • ${...} (業務日付):その値はインスタンス自身の業務日付によって決定されます。

  • $[...] (スケジューリング時間):その値はインスタンス自身のスケジューリング時間によって決定されます。

例:日次スケジューリングタスク A が毎日 00:00 に実行されるようにスケジュールされており、2つのパラメーターが設定されているとします:

  • yesterday=${yyyymmdd}

  • today=$[yyyymmddhh24miss]

以下の表は、そのインスタンスの 1 つの置換ロジックを示しています。

インスタンスのスケジューリング時間

インスタンスの業務日付

パラメーター:yesterday=${yyyymmdd}

パラメーター:today=$[yyyymmddhh24miss]

2025-3-15 00:00:00

2025-3-14

20250314

2025031500000000

シナリオ 2:データバックフィル

データバックフィルタスクを手動で実行する場合、パラメーター置換ロジックは手動で選択された業務日付に基づいて変更されます。特にスケジューリング時間についてです。

  • ${...} (業務日付):そのベースラインは手動で選択された業務日付です。

  • $[...] (スケジューリング時間):そのベースラインは手動で選択された業務日付 + 1 日です。

例:同じタスク A のデータバックフィルを手動で実行し、業務日付 2025-03-15 を選択したとします。

手動で選択された業務日付

パラメーター:yesterday=${yyyymmdd}

パラメーター:today=$[yyyymmddhh24miss]

2025-03-15

20250315

20250316000000 (ベースラインは 2025-03-15 + 1 日)

よくある質問

スケジューリングパラメーターの使用に関するよくある質問への回答については、「スケジューリングパラメーターに関するよくある質問」をご参照ください。

参考文献