Pular para o conteúdo principal

Datasets (CUSTOM)

A solução usa 15 datasets CUSTOM, em datasets/*.js. Eles são a ponte entre o widget e os dados: consultam o RM (SOAP), leem/escrevem as listas internas e alimentam os processos.

Os 15 datasets

RM via SOAP (sentenças LOAX RealizarConsultaSQL, Coligada 1 / Sistema T — ver Integração RM):

DatasetSentençaRetorna
ds_maritimo_rmLOAX.005todos os marítimos
ds_maritimo_centro_custo_rmLOAX.005.01marítimos por centro de custo (CCUSTO)
ds_maritimo_sindicato_rmLOAX.005.02marítimos por sindicato (SINDICATO)
ds_centro_custo_rmLOAX.006centros de custo (CODIGO, NOME)
ds_porto_rmLOAX.011portos (CODIGO, NOME)
ds_ferias_afastamento_rmLOAX.012 + LOAX.013férias e afastamentos

Consulta a listas internas:

DatasetLista
ds_evento_querycontrole_maritimo_eventos
ds_evento_rm_querycontrole_maritimo_eventos_rm
ds_periodo_querycontrole_maritimo_periodos
ds_status_querycontrole_maritimo_status

Escrita (com validação de grupo/período no servidor):

DatasetGrava em
ds_evento_savecontrole_maritimo_eventos
ds_periodo_savecontrole_maritimo_periodos

Processo / suporte:

DatasetPapel
ds_folha_movimento_querymovimento da folha e alertas (>42 dias) — ações movimento / alertas
ds_pasta_controle_maritimoid da pasta GED para o TXT/zip da folha (service task 15)
ds_generic_queryhelper de consulta SQL parametrizada

Como a API de datasets autentica

A API de gestão /dataset/api/v1/datasets* deste tenant é cookie-bound: um Bearer sozinho (curl/OAuth1) enxerga a lista vazia. Por isso o deploy é feito a partir de uma sessão de browser logada. O script scripts/deploy_dataset.cjs resolve isso: abre um Chromium (Playwright da vue-app), faz login com o admin do .env.local, captura o Bearer e faz o POST com cookie + Bearer juntos.

Deploy de um dataset

Da raiz do repositório:

node scripts/deploy_dataset.cjs <code> datasets/<code>.js
# ex.:
node scripts/deploy_dataset.cjs ds_evento_rm_query datasets/ds_evento_rm_query.js

O script decide sozinho entre criar e atualizar: se o dataset já existe (GET .../datasets?datasetId=<code>), faz POST /datasets (update); senão, POST /datasets/create.

Deploy de todos

Não há um script "deploy all" pronto; rode o deploy_dataset.cjs para cada arquivo. Em Bash:

for f in datasets/*.js; do
code=$(basename "$f" .js)
node scripts/deploy_dataset.cjs "$code" "$f"
done

:::note Ordem e dependências Os datasets de consulta a listas só retornam dados depois que as listas existem; os datasets *_rm dependem das sentenças RM. Os datasets de escrita dependem dos grupos para o gate de permissão. Publique a infra antes. :::

Verificação

  • Consumir um dataset simples (ex.: ds_status_query) e conferir o retorno.
  • Conferir um dataset RM com filtro: ds_centro_custo_rm exige search de 3+ caracteres (sem isso retorna vazio).
  • Os datasets de escrita são validados no smoke-test.

Troubleshooting

SintomaCausa provávelAção
GET datasets retorna items: []autenticação só por Bearer (sem cookie)usar o deploy_dataset.cjs (sessão logada), não curl/OAuth1
DuplicatedDatasetException no createdataset já existeo script deveria atualizar; confirme o <code> exato
Dataset RM volta vaziofalta search de 3+ chars ou data fora do padrão Oraclever Integração RM