Árvore de páginas

Índice


       

Objetivo


       O objetivo da API de Importação de Recursos do Smart View é promover uma forma de importar recursos existentes através ERP TOTVS. Com isso, o ERP TOTVS pode injetar no Smart View um conjunto de recursos padrões, como por exemplo relatórios administrativos e financeiros.

Informações

A API pública de Importação está disponível em qualquer instalação do Smart View a partir da versão 1.8.3 e suas operações estão documentadas via Swagger.

  • Documentação no swagger: link;

A partir da versão 2.1 do Smart View, a API pública de importação é capaz de importar relatórios com sub relatórios.

API


A Importação é uma API que recebe um arquivo ZIP contendo os recursos exportados no Smart View, realiza a importação na instância atual e retorna as informações dos recursos importados. É possível também realizar a importação de um arquivo único de um recurso (ver limitação abaixo).

Atualmente a API suporta a importação dos tipos de recurso abaixo:

  • Relatórios;
  • Tabelas Dinâmicas;
  • Visões de Dados;

O formato de retorno da API para as informações dos recursos importados é:

  • {fileName}: Nome do arquivo do recurso importado contido no arquivo ZIP enviado*
  • {resourceType}: Tipo do recurso importado
    • Valores possíveis
      • report: Relatórios;
      • pivot-table: Tabelas Dinâmicas;
      • data-grid: Visões de Dados;
  • {resourceId}: Id do recurso importado na instância atual do Smart View

*Obs: Caso seja enviado um arquivo simples contendo um recurso, o campo fileName irá retornar como null.

Detalhes da implementação são encontrados no endpoint abaixo:

Erros na Importação

A importação não será realizada caso ocorra um erro durante a chamada à API. Nesses casos a API irá retornar um código e uma mensagem com mais detalhes do erro. As possíveis causas de erro e os respectivos códigos de erro retornado são:

ErroCódigo
Arquivo ZIP corrompidocore.imports.zip-contains-corrupted-files
Arquivo de recurso corrompido ou inválidoimports.invalid-import-file
Recurso importado utiliza objeto de negócio de conector não configurado no Smart Viewresources.application.import-resources-command.business-object-not-found
Recurso não suportado na versão do Smart View utilizadaimports.resolver-not-found

Em caso de erro, nenhum dos recursos contidos no arquivo ZIP será importado.


O formato de retorno da API em caso de erro é:

  • {code}: Código de erro
  • {message}: Mensagem de erro
  • {detailMessage}: Mensagem detalhada de erro
  • {helpUrl}: Url para ajuda sobre o erro (caso disponível)
  • {details}: Lista contendo os erros encontrados para cada arquivo importado.

Abaixo um exemplo de retorno de erro para um arquivo ZIP contendo um arquivo corrompido de nome "corrupted.treports" :

Error Response Body
{
    "code": "core.imports.zip-contains-corrupted-files",
    "message": "O arquivo enviado contem um ou mais arquivos corrompidos que não podem ser lidos pelo treports",
    "detailedMessage": null,
    "helpUrl": null,
    "details": [
        {
            "code": "core.imports.corrupted-file-in-zip",
            "message": "O arquivo \"corrupted.treports\" esta corrompido ou não é um arquivo do treports válido",
            "detailedMessage": "core.imports.corrupted-file-in-zip\r\n\r\nO arquivo \"corrupted.treports\" esta corrompido ou não é um arquivo do treports válido\r\n"
        }
    ]
}

Exemplo de uso da API


Abaixo será exemplificando um caso em que que o ERP necessita importar no Smart View alguns recursos previamente desenvolvidos.

Considerando que previamente foram criados e exportados no Smart View os recursos abaixo:

Relatórios

  • Relatório de Banco de Horas;
  • Relatório de Depreciação;

Tabelas Dinâmicas

  • Total de Funcionários;
  • Média de Vendas;

Visões de Dados

  • Vendas por filial;
  • Funcionários por departamento;

Os nomes dos arquivos exportados desses recursos foram editados e incluídos em um arquivo ZIP de nome "Recursos ERP" conforme figura abaixo:

Obs.: Não é necessário que os arquivos simples dos recursos tenham a extensão ".treports". Essa extensão é utilizada apenas para identificar o tipo do arquivo.

Ao enviar o arquivo ZIP contendo os arquivos acima via API de importação, serão retornadas as seguintes informações:

Response Body
[
    {
        "fileName": "Funcionarios por departamento.treports",
        "resourceType": "data-grid",
        "resourceId": "922b0080-c30c-4972-a174-cff5e3ef2bf3"
    },
    {
        "fileName": "Media de Vendas.treports",
        "resourceType": "pivot-table",
        "resourceId": "c5befab1-1d7f-47b5-880c-8f76c91ab8c0"
    },
    {
        "fileName": "Relatorio de Banco de Horas.treports",
        "resourceType": "report",
        "resourceId": "27f87e71-e0ab-453a-9f3a-52623075f06c"
    },
    {
        "fileName": "Relatorio de Depreciacao.treports",
        "resourceType": "report",
        "resourceId": "94032928-1aad-4336-ab0d-ec7836819307"
    },
    {
        "fileName": "Total de Funcionarios.treports",
        "resourceType": "pivot-table",
        "resourceId": "b48f25a5-8f1f-42b5-83ea-d106b9dd28df"
    },
    {
        "fileName": "Vendas por filial.treports",
        "resourceType": "data-grid",
        "resourceId": "7eeff9bb-0c73-447e-8f90-4307d7c712e1"
    }
]

De posse dos Ids, é possível realizar as consultas através das APIs Públicas de cada tipo de recurso. Ver:

É importante destacar que os recursos importados estarão disponíveis apenas para o usuário utilizado na chamada à API.

Para que outros usuários ou grupos de usuários tenham acesso aos recursos importados, é necessário que seja feito o compartilhamento, conforme detalhado na página Compartilhamento de Recursos.