Todos os produtos
Search
Central de documentação

DataWorks:Formatos de parâmetros de agendamento

Última atualização: Jul 10, 2026

Os parâmetros de agendamento substituem dinamicamente valores baseados em tempo no código durante a execução, eliminando a necessidade de codificar datas fixas em fluxos de trabalho recorrentes. Este tópico descreve os formatos suportados e o uso dos valores de parâmetro.

Importante

Certifique-se de entender como configurar parâmetros de agendamento. Para obter detalhes, consulte Configurar e usar parâmetros de agendamento.

Conceitos fundamentais: Linhas de base de tempo

Os parâmetros de tempo substituem dinamicamente strings de tempo durante a execução. Todos os parâmetros de tempo no DataWorks baseiam-se nas duas linhas de base de tempo principais a seguir.

Conceito

Descrição

Padrão

Formato personalizado

Precisão

Data de negócio

O dia anterior à data de execução agendada da tarefa. Em cenários de computação offline T+1, representa a data em que os dados de negócio foram gerados.

Por exemplo, se você executar uma tarefa hoje para calcular a receita de vendas de ontem, "ontem" refere-se à data em que as transações ocorreram, ou seja, a data de negócio.

${yyyymmdd}

${...}

Ano-mês-dia

Hora agendada

A scheduled time definida na configuração de agendamento da tarefa. Durante a execução, o sistema a resolve como o dia atual. Ela representa o horário teórico de execução da tarefa e não sofre alterações devido a filas de recursos ou atrasos.

$[yyyymmddhh24miss]

$[...]

Ano-mês-dia-hora-minuto-segundo

Resumo:

  • Data de negócio ≈ Ontem (a data dos dados)

  • Hora agendada ≈ Hoje (o momento em que a tarefa é executada)

Uma tarefa típica de T+1 inicia na madrugada de hoje (hora agendada) para processar dados de ontem (data de negócio).

Expressão de valor de parâmetro

Os parâmetros de agendamento suportam os seguintes tipos de valores:

  • Parâmetros de tempo personalizados: Expressões como ${...} e $[...] que transformam valores com base nas duas linhas de base de tempo: data de negócio e hora de agendamento. Para mais informações, consulte Parâmetros de tempo personalizados.

  • Parâmetros de sistema integrados: Variáveis predefinidas, como $bizdate, $bizmonth e $jobid, que retornam valores como a data de negócio, mês de negócio ou ID do fluxo de trabalho. Estes não se limitam a valores baseados em tempo. Para mais informações, consulte Parâmetros de sistema integrados.

  • Constantes: Valores literais, como '123' e 'abc'.

Importante

Restrições de caracteres especiais: As expressões de parâmetro não podem conter espaços ou o sinal de igual (=).

Uso

Defina a lógica de atribuição de um parâmetro de agendamento especificando um nome de parâmetro e um valor de parâmetro na seção Scheduling Parameter > scheduling configuration. Após definir o parâmetro, referencie-o no código usando a sintaxe ${parameter name}. Para instruções detalhadas, consulte Configurar e usar parâmetros de agendamento.

  • Use os parâmetros integrados do sistema $bizdate e $cyctime para representar a data de negócio e a hora agendada. Esses parâmetros resolvem para os seguintes valores:

    • $bizdate=${yyyymmdd}

    • $cyctime=$[yyyymmddhh24miss]

      image

      image

      Os exemplos anteriores mostram as definições de parâmetro para $bizdate (resolvendo para ${yyyymmdd} ) e $cyctime (resolvendo para $[yyyymmddhh24miss] ), além dos resultados de visualização quando a data de negócio é 2025-10-16.
  • Caso os valores padrão de hora base não atendam às suas necessidades, use as sintaxes ${...} e $[...] para transformar as duas horas base em parâmetros de tempo personalizados.

Parâmetros de tempo personalizados

O DataWorks permite recuperar a data de negócio e a hora de agendamento usando os formatos ${...} e $[...], respectivamente. Esses formatos possibilitam a transformação de valores de tempo para atender aos requisitos de negócio. Os exemplos a seguir consideram um nó agendado para execução diária às 02:30:45, com data de negócio 20251031. As horas de linha de base são:

  • Data de negócio: O valor de ${yyyymmdd} é 20251031.

  • Hora de agendamento: O valor de $[yyyymmddhh24miss] é 20251101023045.

Principais diferenças entre ${...} e $[...]

Os formatos ${...} e $[...] diferem em suas linhas de base de tempo e capacidades de cálculo. Misturá-los pode causar erros nos dados.

Comparação

${...} (Data de negócio)

$[...] (Hora agendada)

Linha de base de tempo

Data de negócio (T-1)

Hora agendada (T)

Precisão de tempo

Dia (ano, mês, dia)

Segundo (ano, mês, dia, hora, minuto, segundo)

Deslocamentos suportados

Suporta cálculos de deslocamento para ano, mês, semana e dia.

Suporta cálculos de deslocamento para dia, hora e minuto.

Limitações principais

Não suporta formatação ou cálculos de deslocamento para unidades de tempo menores, como horas, minutos ou segundos.

Deslocamentos diretos de ano ou mês usando sintaxes como $[yyyy±N] ou $[mm±N] não são suportados. É necessário usar a função add_months para esses deslocamentos.

Parâmetro de sistema equivalente

${yyyymmdd} equivale a $bizdate

$[yyyymmddhh24miss] equivale a $cyctime

Formatação de tempo

Use os formatos ${...} ou $[...] para gerar parâmetros de tempo. Combine códigos de formato como yyyy, yy, mm e dd para gerar datas N anos, meses ou dias antes ou depois da data de negócio.

Código

Descrição

${...} (Data de negócio)

$[...] (Hora agendada)

Exemplo

Resultado

Exemplo

Resultado

yyyy

Ano com 4 dígitos

${yyyy}

2025

$[yyyy]

2025

mm

Mês com 2 dígitos

${mm}

10

$[mm]

11

dd

Dia com 2 dígitos

${dd}

31

$[dd]

01

hh24

Hora no formato de 24 horas

Não suportado (precisão de nível de dia)

-

$[hh24]

02

hh / hh12

Hora no formato de 12 horas

-

$[hh]

02

mi

Minuto

-

$[mi]

30

ss

Segundo

-

$[ss]

45

yyyymm

Ano e mês

${yyyymm}

202510

$[yyyymm]

202511

yyyy-mm-dd

Data formatada com hifens

${yyyy-mm-dd}

2025-10-31

$[yyyy-mm-dd]

2025-11-01

yyyy-mm-dd hh24:mi:ss

Data e hora formatadas com hifens e dois pontos

Não suportado (precisão de nível de dia)

-

É possível obter esse formato usando concatenação de strings. Consulte Concatenação de strings: Caso 2.

Cálculo de deslocamento

O cálculo de deslocamento permite adicionar ou subtrair tempo de uma data de negócio ou hora de agendamento. Aplique deslocamentos de N anos, meses, dias, horas ou minutos em relação à linha de base de tempo. Deslocamentos de hora e minuto são suportados apenas para a hora de agendamento. As capacidades de deslocamento de ${...} e $[...] diferem porque suportam níveis distintos de precisão de tempo.

  1. Cálculo de deslocamento de ${...}

    • Capacidade principal: Suporta deslocamentos inteiros para anos, meses, semanas e dias.

      Importante

      Deslocamentos de horas e minutos não são suportados. Por exemplo, ${yyyy-mm-dd-1/24} é uma sintaxe inválida.

    • Sintaxe: ${<time_format><±N>}**, onde a unidade de N é a menor unidade no formato, como yyyymm ou yyyymmdd.**

      Requisito

      Unidade de deslocamento

      Sintaxe

      Exemplo

      N anos antes/depois

      Ano

      ${yyyy±N} ou ${yy±N}

      Obter o ano anterior: ${yyyy-1}

      N meses antes/depois

      Mês

      ${yyyymm±N}

      Obter o mês anterior: ${yyyymm-1}

      N semanas antes/depois

      Semana

      ${yyyymmdd±7*N}

      Obter a semana anterior: ${yyyymmdd-7*1}

      N dias antes/depois

      Dia

      ${yyyymmdd±N}

      Obter o dia anterior: ${yyyymmdd-1}

  2. Cálculo de deslocamento de $[...]

    • Capacidade principal: Suporta deslocamentos fracionários para dias, horas e minutos.

      Importante

      O formato $[...] não aceita expressões como $[yyyy-N] ou $[mm-N] para recuperar datas de N anos ou meses atrás. Para realizar deslocamentos de ano ou mês, use obrigatoriamente a função add_months.

    • Sintaxe: $[<time_format><±N>]** , onde N representa uma fração de um dia: use N/24 para um deslocamento de N horas e N/24/60 para um deslocamento de N minutos.**

      Requisito

      Unidade de deslocamento

      Sintaxe

      Exemplo

      N anos antes/depois

      Ano

      N anos depois: $[add_months(yyyymmdd,12N)]
      N anos antes: $[add_months(yyyymmdd,-12N)]
































      Obter o ano anterior: $[add_months(yyyymmdd,-12)]

      N meses antes/depois

      Mês

      N meses depois: $[add_months(yyyymmdd,N)]
      N meses antes: $[add_months(yyyymmdd,-N)]


























































































































































































































































      <......

      Obter o mês anterior: $[add_months(yyyymmdd,-1)]

      N semanas antes/depois

      Semana

      $[yyyymmdd±7*N]

      Obter a semana anterior: $[yyyymmdd-7*1]

      N dias antes/depois

      Dia

      $[yyyymmdd±N]

      Obter o dia anterior (ontem): $[yyyymmdd-1]

      N horas antes/depois

      Hora

      Formatos disponíveis:

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

      • $[<custom_time_format>±N/24]

      Obter a hora anterior em diferentes formatos:

      • Mês: $[mm-1/24]

      • Ano: $[yyyy-1/24]

      • Ano e mês: $[yyyymm-1/24]

      • Ano, mês e dia: $[yyyymmdd-1/24]

      • Dia anterior e hora anterior: $[yyyymmdd-1-1/24]

      N minutos antes/depois

      Minuto

      Formatos disponíveis:

      • $[hh24miss±N/24/60]

      • $[yyyymmddhh24miss±N/24/60]

      • $[mi±N/24/60]

      • $[<custom_time_format>±N/24/60]

      Obter o horário 15 minutos antes da hora agendada em diferentes formatos:

      • $[yyyy-15/24/60]

      • $[yyyymm-15/24/60]

      • $[yyyymmdd-15/24/60]

      • $[hh24-15/24/60]

      • $[mi-15/24/60]

      Deslocamento combinado

      Dia + Hora

      $[yyyymmdd±N±M/24], onde N é o deslocamento de dias e M é o deslocamento de horas.

      Exemplo: Obter a hora do dia anterior e da hora anterior → $[yyyymmdd-1-1/24]

      Nota
      • Tratamento de mudança de dia: Deslocamentos de horas e minutos podem resultar em um horário que cruza o limite de um dia. Para detalhes sobre como lidar com isso, consulte Como tratar a substituição de parâmetros entre dias ao deslocar uma hora.

      • Calibração de fim de mês: Ao aplicar um deslocamento de mês a uma data de fim de mês, se o mês alvo tiver menos dias, o resultado será automaticamente calibrado para o último dia desse mês. Por exemplo, subtrair um mês de 2025-03-31 retorna 2025-02-28, pois fevereiro não tem 31 dias.

Transformação secundária usando funções do mecanismo

Se os recursos integrados de formatação e deslocamento não conseguirem produzir o valor exato necessário (por exemplo, o último dia do mês anterior), aplique uma transformação secundária usando as funções do mecanismo do nó ou um nó de atribuição.

Consulte: Cenários típicos para processamento secundário de valores de retorno de parâmetros de agendamento .

Concatenação de strings

Use a concatenação de strings para construir strings de data estruturadas não suportadas pela sintaxe integrada. Esse método combina uma parte da data gerada por um parâmetro de agendamento com uma string constante.

Caso 1: Obter dinamicamente o primeiro dia de cada mês

  • Cenário: Você precisa de uma string que represente o primeiro dia do mês atual no formato yyyymm01, independentemente do dia em que a tarefa é executada.

  • Implementação:

    1. Extraia a parte do ano e mês: Use ${yyyymm} para obter o ano e o mês da data de negócio atual. Por exemplo, se a data de negócio for 20231027, o resultado será 202310.

    2. Concatene o ano e mês extraídos com a string constante '01'.

    3. Chamada do parâmetro: first_day_of_month=${yyyymm}01

  • Resultado: Quando a tarefa é executada, ${first_day_of_month} é substituído por 20231001.

Caso 2: Gerar um carimbo de data/hora no formato yyyy-mm-dd hh24:mi:ss**

  • Cenário: Você precisa gerar um carimbo de data/hora no formato yyyy-mm-dd hh24:mi:ss, como 2023-11-01 02:30:45.

  • Implementação:

    1. Defina dois parâmetros, datetime1 e datetime2. Configure-os da seguinte forma: datetime1=$[yyyy-mm-dd] e datetime2=$[hh24:mi:ss].

    2. Concatene os parâmetros datetime1 e datetime2, separados por um espaço.

    3. Chamada do parâmetro: pt=${datetime1} ${datetime2}

  • Resultado: Quando a tarefa é executada, ${datetime1} ${datetime2} é substituído por 2023-11-01 02:30:45.

Parâmetros de sistema integrados

O DataWorks fornece os seguintes parâmetros de sistema integrados. Devido aos seus formatos de tempo fixos e flexibilidade limitada, recomenda-se o uso de parâmetros de tempo personalizados.

Parâmetro

Descrição

$bizdate

A data de negócio no formato yyyymmdd, consistente com o parâmetro personalizado ${yyyymmdd}.

Geralmente assume como padrão o dia anterior à hora de execução agendada da tarefa.

$cyctime

A hora agendada no formato yyyymmddhh24miss, equivalente ao parâmetro personalizado $[yyyymmddhh24miss].

$gmtdate

A data atual no formato yyyymmdd.

Assume como padrão a data atual. Para um backfill de dados, a data é business date + 1.

$bizmonth

O mês de negócio no formato yyyymm.

  • Se a data de negócio estiver no mês atual, então $bizmonth = business_date_month - 1.

  • Se o mês da data de negócio não for o mesmo que o mês atual, então $bizmonth = the month of the business date.

$jobid

O ID do fluxo de trabalho que contém a tarefa.

$nodeid

O ID do nó.

$taskid

O ID da instância gerada pelo nó.

Exemplos de substituição de parâmetros

O valor de substituição de um parâmetro de agendamento é determinado no momento da criação da instância e não é afetado pela hora real de início.

Cenário 1: agendamento normal

No agendamento normal, a substituição de parâmetros baseia-se em duas linhas de base de tempo: a data de negócio e a hora de agendamento.

  • ${...} (data de negócio): O valor deriva da data de negócio da instância.

  • $[...] (hora de agendamento): O valor deriva da hora de agendamento da instância.

Por exemplo, considere uma tarefa diária chamada A, agendada para execução às 00:00 com os seguintes parâmetros:

  • yesterday=${yyyymmdd}

  • today=$[yyyymmddhh24miss]

A tabela a seguir mostra como esses parâmetros são substituídos para uma instância específica:

Hora agendada

Data de negócio

yesterday=${yyyymmdd}

today=$[yyyymmddhh24miss]

2025-3-15 00:00:00

2025-3-14

20250314

20250315000000

Cenário 2: backfill de dados

Durante um backfill de dados, a lógica de substituição de parâmetros muda com base na data de negócio selecionada. Isso afeta especialmente os parâmetros que dependem da hora de agendamento.

  • ${...} (data de negócio): A linha de base é a data de negócio selecionada manualmente.

  • $[...] (hora de agendamento): A linha de base é a data de negócio selecionada manualmente + 1 dia.

Por exemplo, se você fizer o backfill da tarefa A com 2025-03-15 como data de negócio:

Data de negócio selecionada

yesterday=${yyyymmdd}

today=$[yyyymmddhh24miss]

2025-03-15

20250315

20250316000000 (A linha de base é 2025-03-15 + 1 day)

Perguntas frequentes

Para dúvidas sobre parâmetros de agendamento, consulte Perguntas frequentes sobre parâmetros de agendamento.

Documentos relacionados