Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Painel
borderStylenone

DADOS GERAIS SOBRE O RECURSO

Painel

O sistema disponibiliza um plugin com o nome "Download de Boletos" para permitir o download do PDF do boleto tanto na WEB quanto no Mobile.

Esse plugin permite que seja configurada conexão com uma API que requisita no ERP ou outro local definido pelo cliente, o arquivo PDF referente ao Boleto que se deseja baixar, e faz com que esse arquivo PDF seja baixado localmente no computador ou smartphone do usuário.

É importante ressaltar que não fornecemos a api que obtém o arquivo do ERP e disponibiliza para o SFA. É necessário que haja do lado do cliente, uma API à qual nosso plugin irá se conectar e fazer a requisição de download, por essa razão, é preciso também que e essa API esteja adequada ao modelo de REQUEST e RESPONSE esperado pelo SFA para obter o arquivo PDF.

Dessa forma, quando o Plugin estiver ativo e as configurações realizadas corretamente, pela tela de Títulos na WEB ou no aplicativo, é possível baixar o arquivo PDF referente ao boleto selecionado.

Image Removed

Painel

Índice
maxLevel4
minLevel2
printablefalse
separatorpipe

Deck of Cards
id1
Card
defaulttrue
labelEscopo Funcional / Manual/ Manual

ESCOPO FUNCIONAL/MANUAL

Detalhamento da utilização do Recurso

Para que esse fluxo funcione na Aplicação SFA, o cliente precisa disponibilizar a API nos moldes propostos nesta documentação, seja por meio de desenvolvimento interno/próprio ou por uma empresa que ofereça esse serviço para clientes Protheus. Caso opte pelo serviço da unidade TOTVS, a negociação será feita diretamente com a unidade.

Após disponibilizar essa API, o cliente deve informar à equipe/Consultor do TOTVS CRM SFA a URL da API e as credenciais, considerando que a API segue o modelo de request e response detalhado no card ESCOPO FUNCIONAL desta documentação.

Configuração do Plugin

Na tela de Plugins de integração acessado em Configuração > Integração > Plugins de Integração, o sistema disponibiliza um card de nome "Download de Boletos" para ativar o recurso. 

Ao clicar no botão "Configurar", é aberta a tela de configuração. Informe cada campo conforme a configuração detalhada a seguir:

Configuração da API
URL

Informe a URL em que a API para download estará sendo servida (Ex: https://IP:PORTA/rest/KFATRO03)

UsuárioInforme o Usuário da autenticação básica
SenhaInforme a senha da autenticação básica
Job

Informe o nome do serviço Pentaho que faz a comunicação com a URL fornecida

DOWNLOADBOLETO

Rep

Informe o repositório onde está o Job dentro do arquivo .jar da integração

COMMON_SERVICES

TimeoutInforme de processamento para aguardar retorno da API

Também é necessário acessar o menu Integração > Variáveis de Integração, e configurar a variável que determina se o parâmetro EMPRESA deve ser enviado na REQUEST. Esse parâmetro deve estar ativo e com valor 1 para clientes que utilizam o ERP Protheus, para os demais ERP's esse parâmetro deve estar inativo e com valor 0.

Implementação do Botão para download do PDF do Boleto

O botão para download estará visível na Listagem de Títulos quando o plugin estiver ativo.

Acessar a listagem de títulos no painel 360° do cliente, selecionar um boleto para baixar, e clicar no ícone .

Ao clicar no ícone, será feita uma requisição na API configurada e, uma vez recuperado o arquivo do boleto, ele será baixado no computador local ou smartphone do usuário.

A consulta é na API informa a nota fiscal vinculada ao título, e a API por sua vez, deve retornar todos os boletos em aberto vinculados àquela nota fiscal.

Ao clicar no Ícone do registro que pretende consultar, a aplicação exibe a janela de comunicação com o Carte e a consulta do Boleto e Download é realizada.

Card
labelEscopo Técnico
DADOS DE INTEGRAÇÃO COM API

ESCOPO TÉCNICO DA API DE DOWNLOAD DE BOLETOS

Detalhamento Plugin

  • Pelo tools opção 5 deverá ser criado o registro, o registro é criado:


Bloco de código
firstline1
titleCriar Plugin
linenumberstruecollapsetrue
pluginintegracao {
                      codigo: DOWNBOL,
                      descricao: API Para download Boleto (PDF),
                      idnAtivo: 0
                  }
Bloco de código
collapse
firstline1
titleCriar campos Campos de configuração
linenumberstruetrue
					Campo "URL"
                      idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNBOL',
                      codigoelemento: DOWNBOL,
                      agrupador: 0,
                      sglcampo: DOWNBOL_URL
                      valor: {valor inserido no campo URL}
                    Campo "Usuário"
                      idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNBOL',
                      codigoelemento: DOWNBOL,
                      agrupador: 0,
                      sglcampo: DOWNBOL_USER
                      valor: {valor inserido no campo USUÁRIO}
                    
                    Campo "Senha"
                      idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNBOL',
                      codigoelemento: DOWNBOL,
                      agrupador: 0,
                      sglcampo: DOWNBOL_PASSWORD
                      valor: {valor inserido no campo Senha}
                    
                    Campo "Timeout Consulta"
                      idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNBOL',
                      codigoelemento: DOWNBOL,
                      agrupador: 0,
                      sglcampo: DOWNBOL_TIMEOUT
                      valor: {valor inserido no campo Timeout consulta}
                    
                    Campo "Rep"
                      idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
                      codigoelemento: DOWNBOL,
                      agrupador: 0,
                      sglcampo: DOWNNF_REP
                      valor: {COMMONS_SERVICES}
                    Campo "Job"
                      idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
                      codigoelemento: DOWNBOL,
                      agrupador: 0,
                      sglcampo: DOWNNF_JOB
                      valor: {DOWNLOADBOLETO}


Implementação na Listagem de Boletos

Na tela de listagem, o botão é exibido

o botão Image Removed

.

  • idnAtivo = 1: select idnAtivo from pluginintegracao where codigo = 'DOWNNF'

  • Ao clicar no botão de download, a aplicação

  • deverá consultar
  • consulta o carte

  • ;
  • .

  • A

  • url do download deve ser
  • URL de download é montada da seguinte forma:
    URL=${Configurações do Pentaho.URL}/kettle/executeJob/?rep={}&job={}

No body da requisição,

passar

as seguintes informações são enviadas:


Bloco de código
languagejs
firstline1
titleConsulta de Boleto
linenumberstrue
collapsetrue
{
	idnotafiscal:
}


O retorno

desta url será

dessa URL é o arquivo em base64 para download:


Bloco de código
languagejs
firstline1
title200 - Retorno com Sucesso
linenumberstruecollapsetrue
	{
            "lStatus": true,
            "cMensagem": "Sucesso",
            "cBoleto": {base64}
     }

Integração da API Download de Boleto

Foi criado a

A variável de integração abaixo é criada:

A variável

tem uso para os

é usada nos plugins de download de nota fiscal e download de boletos

;

.


ERP

TODOS

CONTEXTO

API

DESCRIÇÃO

Se valor 1, a URL será no formato {URL_API_NOTA_FISCAL_CLIENTE}/{empresa}/{filial}/{documento}/{serie}; se a variável estiver inativa, então a URL montada será no formato {URL_API_NOTA_FISCAL_CLIENTE}/{filial}/{documento}/{serie}.

TABELA

WSCONFIGINTEGRACAO

CAMPO

VALOR

VALOR

1

IDNATIVO

1

CODIGOERP

API_DOWNNF

Criar para

Detalhes de Job DOWNLOADBOLETO

O Job DOWNLOADBOLETO é criado no Pentaho-Carte

o Job DOWNLOADBOLETO

no repositório COMMONS_SERVICES

;

.

URL de consulta

deve ser

é montada no seguinte padrão:

GET: {URL_API_BOLETO_CLIENTE}/{empresa}/{filial}/{documento}/{serie}

HEADERS: Authorization: Basic {TOKEN}

Informações da request serão obtidas a partir das consultas abaixo;
Se o campo EMPRESA estiver como NULL, então o parâmetro EMPRESA não deve ser repassado na URL da request. Dessa forma {URL_API_BOLETO_CLIENTE}/{filial}/{documento}/{serie}:


Bloco de código
languagesql
firstline1
titleConsulta de dados Boleto
linenumberstruecollapsetrue
SELECT n.numeronotafiscal AS DOCUMENTO,
       n.serie            AS SERIE,
       l.numeromatricula  AS FILIAL,
       CASE
         WHEN Cast(w.valor AS VARCHAR) = '1' THEN
         Split_part(n.codigoerp, '#', 1)
         ELSE NULL END    AS EMPRESA
FROM   notafiscal n
       INNER JOIN local l
               ON l.idlocal = n.idlocalfilialfaturamento
       LEFT JOIN wsconfigintegracao w
              ON w.codigoerp = 'API_DOWNNF'
                 AND w.idnativo = 1
WHERE  n.idnotafiscal = :IDNOTAFISCAL;


SELECT ( CASE
           WHEN sglcampo = 'DOWNNF_PASSWORD' THEN valor
         END ) AS SENHA,
       ( CASE
           WHEN sglcampo = 'DOWNNF_USER' THEN valor
         END ) AS USUARIO,
       ( CASE
           WHEN sglcampo = 'DOWNNF_URL' THEN valor
         END ) AS URL
FROM   pluginintconfig
WHERE  codigoelemento = 'DOWNNF'
       AND sglcampo IN ( 'DOWNNF_PASSWORD', 'DOWNNF_USER', 'DOWNNF_URL' ); 


O retorno recebido será no formato base64, e deve ser retornado para aplicação sem transformações dentro do XML do RESPONSE:


Bloco de código
collapse
languagejs
firstline1
title200 - Retorno com Sucesso
linenumberstruetrue
{
            "lStatus": true,
            "cMensagem": "Sucesso",
            "cBoleto": {base64}
 }
Painel
titleRetornos da API - Boletos

Retornos:

Bloco de código
collapse
firstline1
title500 - Internal Server Error
linenumberstruetrue
{"code":500,"detailedMessage":"","message":"Internal Server Error"}
Bloco de código
firstline1
title404 - Títulos não encontrado
linenumberstruecollapsetrue
{
    "lStatus": false,
    "cMensagem": " Não foi encontrado o título referente ao boleto.",
    "cBoleto": ""
 }
Bloco de código
firstline1
title200 - Ok
linenumberstruecollapsetrue
{
            "lStatus": true,
            "cMensagem": "Sucesso",
            "cBoleto": {base64}
}

...