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

DataWorks:スケジューリングパラメーターのフォーマット

最終更新日:Jul 11, 2026

スケジューリングパラメーターは、ランタイムでコード内の時間に関する値を動的に置き換えます。これにより、定期的なワークフローで日付をハードコードする必要がなくなります。このトピックでは、サポートされているパラメーター値のフォーマットと使用法について説明します。

重要

スケジューリングパラメーターの設定方法を理解しておく必要があります。詳細については、「スケジューリングパラメーターの設定と使用」をご参照ください。

コアコンセプト:時間ベースライン

時間パラメーターは、ランタイムに時間文字列を動的に置き換えます。DataWorks のすべての時間パラメーターは、次の2つの主要な時間ベースラインに基づいています。

コンセプト

説明

デフォルト

カスタムフォーマット

精度

業務日付

タスクの予定実行日の前日です。T+1 オフラインコンピューティングのシナリオでは、業務データが生成された日付を表します。

たとえば、今日タスクを実行して昨日の売上高を計算する場合、「昨日」は取引が発生した日付を指します。これが業務日付です。

${yyyymmdd}

${...}

年-月-日

予定時刻

タスクのスケジューリングで設定された[予定時刻]です。ランタイムに、システムによって当日として解釈されます。これはタスクの理論上の実行時刻を表し、リソースのキューイングや遅延が発生しても変動しません

$[yyyymmddhh24miss]

$[...]

年-月-日-時-分-秒

まとめ:

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

  • 予定時刻 ≈ 今日 (タスクの実行時刻)

一般的な T+1 タスクは、今日 (予定時刻) の早朝に開始し、昨日 (業務日付) のデータを処理します。

パラメーター値の式

スケジューリングパラメーターは、次のタイプの値をサポートします:

  • カスタム時間パラメーター:業務日付とスケジューリング時刻の2つの時間基準に基づいて値を変換する、 ${...}$[...] などの式です。詳細については、「カスタム時間パラメーター」をご参照ください。

  • 組み込みシステムパラメーター$bizdate$bizmonth$jobid など、業務日付、業務月、またはワークフロー ID などの値を返す、定義済みの変数です。これらは時間に基づく値に限りません。詳細については、「組み込みシステムパラメーター」をご参照ください。

  • 定数'123''abc' などのリテラル値です。

重要

特殊文字の制限:パラメーター式には、スペースまたは等号 ( = ) を含めることはできません。

使用法

image

スケジューリングパラメーターの代入ロジックは、スケジューリング設定 > Scheduling Parameterパラメーター名パラメーター値を指定して定義します。パラメーターを定義した後、 ${parameter name} 構文を使用してコード内で参照できます。 詳細については、「スケジューリングパラメーターの設定と使用」をご参照ください。

  • 業務日付と予定時刻を表すには、システム組み込みパラメーター$bizdate$cyctime を使用します。これらのパラメーターは、次の値に解決されます:

    • $bizdate=${yyyymmdd}

    • $cyctime=$[yyyymmddhh24miss]

      image

      image

      The preceding examples show the parameter definitions for $bizdate (resolving to ${yyyymmdd}) and $cyctime (resolving to $[yyyymmddhh24miss]), and their preview results when the business date is 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

-

$[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} は無効な構文です。

    • 構文: ${<time_format><±N>}。ここで、N の単位はフォーマット内の最小単位です (例: yyyymmyyyymmdd)。

      要件

      オフセット単位

      構文

      N 年前/N 年後

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

      前年を取得: ${yyyy-1}

      N か月前/N か月後

      ${yyyymm±N}

      前月を取得: ${yyyymm-1}

      N 週間前/N 週間後

      ${yyyymmdd±7*N}

      前週を取得: ${yyyymmdd-7*1}

      N 日前/N 日後

      ${yyyymmdd±N}

      前日を取得: ${yyyymmdd-1}

  2. $[...] オフセット計算

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

      重要

      $[...] フォーマットでは、$[yyyy-N]$[mm-N] などの式で、N 年前または N か月前の日付を取得することはできません。年または月のオフセットを実行するには、add_months 関数を使用する必要があります。

    • 構文: $[<time_format><±N>] 。ここで、N は 1 日の分数を表します。N 時間のオフセットには N/24、N 分のオフセットには N/24/60 を使用します。

      要件

      オフセット単位

      構文

      N 年前/N 年後

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































































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

      N か月前/N か月後

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































































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

      N 週間前/N 週間後

      $[yyyymmdd±7*N]

      前週を取得: $[yyyymmdd-7*1]

      N 日前/N 日後

      $[yyyymmdd±N]

      前日 (昨日) を取得: $[yyyymmdd-1]

      N 時間前/N 時間後

      時間

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

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

      • $[<custom_time_format>±N/24]

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

      • 月: $[mm-1/24]

      • 年: $[yyyy-1/24]

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

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

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

      N 分前/N 分後

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

      • $[hh24miss±N/24/60]

      • $[yyyymmddhh24miss±N/24/60]

      • $[mi±N/24/60]

      • $[<custom_time_format>±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]

      説明
      • 日またぎの処理: 時間と分のオフセットにより、日付が日またぎになる可能性があります。処理方法の詳細については、「1 時間のオフセット時における日またぎパラメーター置換の処理方法」をご参照ください。

      • 月末日の調整: 月末日に月オフセットを適用した場合、対象月の日数が少ないときは、結果がその月の最終日に自動的に調整されます。たとえば、2025-03-31 から 1 か月減算すると、2 月には 31 日がないため 2025-02-28 が返されます。

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

組み込みのフォーマットとオフセット機能で必要な値 (例:前月の最終日) を正確に生成できない場合は、ノードのエンジン関数または代入ノードを使用して二次変換を適用します。

参照: スケジューリングパラメーターの戻り値を二次処理する代表的なシナリオ

文字列連結

文字列連結を使用して、組み込み構文ではサポートされない構造化された日付文字列を作成します。この方法では、スケジューリングパラメーターで生成した日付部分を定数文字列と組み合わせます。

ケース 1: 各月の 1 日を動的に取得

  • シナリオ: タスクの実行日によらず、当月の 1 日を表す文字列を yyyymm01 フォーマットで取得する必要があります。

  • 実装:

    1. 年と月の部分を抽出します: ${yyyymm} を使用して、現在の業務日付の年と月を取得します。たとえば、業務日付が 20251031 の場合、結果は 202510 です。

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

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

  • 結果: タスクの実行時に、${first_day_of_month}20251001 に置き換えられます。

ケース 2: yyyy-mm-dd hh24:mi:ss フォーマットのタイムスタンプを生成

  • シナリオ: yyyy-mm-dd hh24:mi:ss フォーマットのタイムスタンプ (例: 2025-11-01 02:30:45) を生成する必要があります。

  • 実装:

    1. datetime1datetime2 の 2 つのパラメーターを定義します。次のように設定します: datetime1=$[yyyy-mm-dd]datetime2=$[hh24:mi:ss]

    2. datetime1datetime2 のパラメーターを、スペースで区切って連結します。

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

  • 結果: タスクの実行時に、${datetime1} ${datetime2}2025-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 に実行されるようにスケジュールされていて、次のパラメーターがあるとします:

  • yesterday=${yyyymmdd}

  • today=$[yyyymmddhh24miss]

次の表は、特定のインスタンスでこれらのパラメーターがどのように置換されるかを示しています:

スケジュール時刻

業務日付

yesterday=${yyyymmdd}

today=$[yyyymmddhh24miss]

2025-3-15 00:00:00

2025-3-14

20250314

20250315000000

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

データバックフィル中、パラメーター置換ロジックは、選択された業務日付に基づいて変更されます。これは特に、スケジュール時刻に依存するパラメーターに影響します。

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

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

たとえば、業務日付を 2025-03-15 としてタスク A をバックフィルする場合:

選択された業務日付

yesterday=${yyyymmdd}

today=$[yyyymmddhh24miss]

2025-03-15

20250315

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

よくある質問

スケジューリングパラメーターに関する質問は、スケジューリングパラメーターのよくある質問をご参照ください。

関連ドキュメント