Pular para conteúdo

Casos

A feature Casos é responsável por representar e gerenciar os estudos de processamento dentro do ecossistema PLDPro. Um Caso concentra todas as informações, configurações e arquivos necessários para a execução de um estudo, funcionando como a unidade central de trabalho da aplicação.

No SDK, essa funcionalidade é exposta por meio da classe Caso.

Visão geral

Um Caso pode ser entendido como um container lógico de processamento, que reúne:

  • Metadados do estudo (identificação, nome, datas e status)
  • Associação opcional a um ambiente remoto (Node/AuthNode)
  • Arquivos de entrada, previsões, cenários, decks e regras
  • Configurações iniciais necessárias para execução
  • Resultados e artefatos gerados ao longo do processamento

A feature Casos viabiliza, de forma integrada, o gerenciamento de casos, abrangendo criação, atualização, execução e monitoramento dos estudos de processamento, além do controle completo de seus arquivos e configurações associadas.

Responsabilidades da classe Caso

A classe Caso encapsula as operações relacionadas a casos, abstraindo detalhes da API e padronizando o tratamento de erros, conversões de tipos e fluxos comuns. Suas principais responsabilidades incluem:

Gerenciamento de Casos

  • Criação de casos vazios ou já associados a um ambiente remoto
  • Clonagem de casos existentes
  • Listagem e filtragem de casos com paginação
  • Consulta detalhada de um caso específico
  • Remoção de casos

Status e monitoramento

  • Consulta do status atual do caso, permitindo acompanhar o progresso do processamento e identificar estados como preparação, execução ou finalização

Associação com ambiente remoto

  • Vínculo de um caso a um Node/AuthNode, definindo o caminho remoto onde os arquivos e execuções serão realizados

Gestão e navegação de arquivos

  • Listagem da árvore de arquivos associados a um caso
  • Remoção seletiva de arquivos
  • Download completo do caso ou de subconjuntos específicos (inputs ou arquivos individuais)

Configuração inicial

  • Definição das informações iniciais do caso, necessárias para que o backend consiga preparar corretamente o ambiente de execução

Troca de arquivos

  • Registro e gerenciamento de operações de troca de arquivos associadas ao caso
  • Organização dos arquivos vinculados ao fluxo de troca, preservando a rastreabilidade entre origem, destino e artefatos gerados

Troca de versões

  • Registro das trocas de versão dos modelos NEWAVE, DECOMP e GEVAZP ao longo do horizonte do prospectivo

Número de processadores por modelo

  • Registro do número de processadores dos modelos NEWAVE e DECOMP por caso
  • Validação das regras de negócio no envio, exigindo valor inteiro, não nulo, não negativo e dentro dos limites do formato do entrada.txt
  • Abstração completa dos cards pelo SDK, permitindo ao consumidor informar apenas a quantidade de processadores por modelo
  • Leitura aderente ao padrão do entrada.txt, usando NUMPROCSNW como fonte do NEWAVE e NUMPROCSDC como fonte do DECOMP
  • Escrita automática e sincronizada dos registros locais e remotos do formato do entrada.txt: NEWAVENUMPROCSNW e NWNUMPROCSRE DECOMPNUMPROCSDC e DCNUMPROCSRE

Configuração de geração e seleção de registros do DADGER

  • Configuração da geração do DADGER por caso, incluindo ativação, tipo de geração e interrupção do fluxo após geração
  • Definição das datas de início para geração completa e seleção de registros
  • Seleção dos registros do DADGER que deverão ser modificados, usando enums do SDK para evitar exposição dos índices e cards do entrada.txt.
  • Escrita dos cards GERADADGER, SODADGER, DADGERCOMP, DADGERSELEC e dos registros de modificação, como DPMOD, PQMOD, RIMOD, IAMOD, VEMOD, CTMOD, MPMOD, FDMOD, TIMOD, RQMOD, HEMOD e MTMOD
  • Quando a geração do DADGER é desativada, as demais informações são ignoradas na escrita e o comportamento de comentário do entrada.txt é preservado

Configuração de execução com partida

  • Configuração da execução com partida do estudo por caso
  • Definição direta do uso de partida, da partida mensal e do modelo de partida, sem exigir conhecimento dos cards do entrada.txt
  • Escrita dos cards EXECUTAPARTIDA, PARTMES e, quando aplicável, MODELOPPQ
  • Validação dos modelos de partida suportados pelo entrada.txt: GV, NW e DC
  • Quando a execução com partida é desabilitada, o modelo de partida deixa de ser obrigatório e o comportamento legado é preservado

Configuração de execução dos modelos

  • Configuração da execução dos modelos NEWAVE, GEVAZP, DECOMP e DESSEM
  • Configuração das versões dos modelos NEWAVE, GEVAZP e DECOMP
  • Definição da revisão de parada da execução semanal
  • Configuração da viabilização do DECOMP, incluindo flag de habilitação e número máximo de tentativas
  • Escrita dos cards EXECNW, EXECGVP, EXECDCP, EXECDSS, VSNEWV, VSGVZP, VSDECO, REVPARADA e FLAGVIABDC
  • Suporte a envio conjunto ou incremental, permitindo configurar apenas parte das informações desde que o estado final do caso permaneça consistente

Operações auxiliares

  • Atualização de caminhos específicos dentro dos arquivos de entrada, como o caminho dos cortes utilizados no processamento

Papel no fluxo de execução

No fluxo típico da aplicação, a feature Casos atua como o ponto de orquestração do estudo, conectando infraestrutura (Nodes), autenticação (AuthNodes) e dados de entrada. A partir dela, o usuário consegue preparar completamente um caso, acompanhar seu estado e recuperar seus artefatos, mantendo a rastreabilidade e a reprodutibilidade dos estudos executados no PLDPro.

Em resumo, a classe Caso fornece uma camada de abstração robusta e coesa para o gerenciamento de estudos, permitindo que a SDK ofereça uma experiência consistente e segura para criação, configuração, execução e monitoramento de casos de processamento.