Produto:

Datasul

Ocorrência:

Documentação de API

Nome físico:

cdp/rules/cadNbsRules.p


Objetivo

Esta API tem como objetivo gerenciar as regras de negócio da entidade Cadastro NBS (Tabela cad-nbs), permitindo operações de inclusão, alteração, exclusão, consulta, além de importação e exportação de dados via arquivos CSV.

A API valida as regras de integridade (formato do código, duplicidade) e persiste os dados no banco.


Funcionamento

A API fornece uma série de métodos que podem ser executados individualmente. A sintaxe para a chamada da API deve ser feita de forma persistente em Progress:

RUN cdp/rules/cadNbsRules.p PERSISTENT set h-handle.


A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.

Método Negócio

Quando a API estiver executada em modo persistente, os seguintes métodos estarão disponíveis para execução:


pi-query-v1

Requisito

Nenhum.

Descrição

Realiza a busca de registros de NBS com suporte a paginação e filtros.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUT

Parâmetros de filtro e paginação:

queryParams:

searchBy: Array de strings para busca rápida (filtra por código ou descrição).

pageSize: Quantidade de registros por página (Default: 20).

startRow: Registro inicial.

{
  "queryParams": {
    "searchBy": ["Serviço"],
    "pageSize": 10
  }
}
aOutputJsonArrayOUTPUTLista de registros encontrados (vide estrutura CadNbs).
lHasNextLogicalOUTPUTIndica se existem mais páginas a serem buscadas.
RowErrorsTemp-tableOUTPUTInformações sobre erros ocorridos.
RowErrorsTemp-tableOUTPUTInformações sobre os erros ocorridos durante o processo.

Retorno

Retorna a lista de códigos NBS ou erros ocorridos durante a busca.



pi-get-v1

Requisito

Nenhum.

Descrição

Retorna os dados detalhados de um único registro de NBS com base na chave informada.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUTpathParams: Deve conter o ID do registro (codNbs).
oOutputJsonObjectOUTPUTObjeto contendo os dados do registro (vide estrutura CadNbs).
RowErrorsTemp-tableOUTPUTInformações sobre erros ocorridos (ex: Registro não encontrado).

Retorno

Retorna os dados detalhados de um único registro de NBS com base na chave informada.



pi-create-v1

Requisito

Nenhum.

Descrição

Cria um novo registro na tabela de NBS.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUT

Payload contendo os dados:

codNbs: Código do NBS (Obrigatório, chave única).

descNbs: Descrição do NBS.

{
  "codNbs": "1.0101.20.10",
  "descNbs": "Análise e desenvolvimento de sistemas"
}
oOutputJsonObjectOUTPUTRetorna o registro criado.
RowErrorsTemp-tableOUTPUTErros de validação (ex: registro duplicado).



pi-update-v1

Requisito

Nenhum.

Descrição

Altera um registro existente na tabela de NBS.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUT

pathParams: ID do registro (codNbs).

Payload: Campos a serem alterados (ex: descNbs).

oOutputJsonObjectOUTPUTRetorna o registro atualizado.



pi-delete-v1

Requisito

Nenhum.

Descrição

Exclui um registro existente na tabela de NBS.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUTpathParams: Informar o codNbs do registro a ser eliminado.
RowErrorsTemp-tableOUTPUTRetorna erros caso o registro não possa ser excluído.



pi-delete-list-v1

Requisito

Nenhum.

Descrição

Exclui uma lista de registros (lote).

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUT

Payload: Array de objetos contendo a chave codNbs para exclusão.



[
  { "codNbs": "1.0101.20" },
  { "codNbs": "1.0101.21" }
]
aDeletedIdListJsonArrayOUTPUTLista dos IDs que foram excluídos com sucesso.



pi-import-v1

Requisito

Nenhum.

Descrição

Realiza a importação de um arquivo CSV para a tabela de NBS. Regras de validação aplicadas linha a linha:

  1. Código ou descrição não podem ser vazios.

  2. Tamanho do código deve ser de 9 caracteres (contando pontuação).

  3. O código deve ser numérico (removendo pontuação).

  4. Verifica duplicidade de chave.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUTPayload: Deve conter o array multiPartFile. O conteúdo do arquivo deve vir em Base64 no atributo content.
oOutputJsonObjectOUTPUTSe houver linhas com erro, retorna um arquivo CSV (ErrosImportacaoNBS.csv) listando as linhas rejeitadas e o motivo. Se sucesso total, retorna "OK".



pi-export-v1

Requisito

Nenhum.

Descrição

Gera um arquivo CSV contendo todos os registros da tabela cad-nbs.

ParâmetrosTipoInput/OutputDescrição
oInputJsonObjectINPUTParâmetros gerais (vazio para exportação total).
oOutputJsonObjectOUTPUT

Retorna objeto com:

FN_File: Nome do arquivo (ModeloCadastroNbs.csv).

DN_File: Conteúdo do arquivo em Base64.



pi-download-v1

Requisito

Nenhum.

Descrição

Disponibiliza o download de um modelo (template) vazio de arquivo CSV para ser utilizado na importação.

ParâmetrosTipoInput/OutputDescrição
oOutputJsonObjectOUTPUTRetorna o arquivo de modelo em Base64.

Temp-Tables


RowErrors

Entrada/Saída

Temp-table com dados dos erros ocorridos durante o processo

Saída

AtributoTipoDescrição

Obrigatório

Evolução

ErrorSequenceINTEGERNúmero da sequência do erro.

Sim

Não se aplica

ErrorNumberINTEGERCódigo do erro.

Sim

Não se aplica

ErrorDescriptionCHARACTERDescrição detalhada do erro.NãoNão se aplica
ErrorTypeCHARACTERTipo do erro (Ex: ERROR, INTERNAL).NãoNão se aplica
ErrorSubTypeCHARACTERSubtipo do erro.NãoNão se aplica



CadNbs

Entrada/Saída

Temp-table com os campos a serem retornados na busca dos códigos de NBS.

Saída

AtributoNome no Objeto (JSON)TipoDescriçãoObrigatório

Evolução

cod-nbscodNbsCharacterCódigo da Nomenclatura Brasileira de Serviços (Chave).Sim

Não se aplica

desc-nbsdescNbsCharacterDescrição do serviço.Sim

Não se aplica