Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 7 Próxima »

01. DADOS GERAIS

Produto:

TOTVS CRM Automação da Força de Vendas

Linha de Produto:

Linha TOTVS CRM

ERPs impactados:Protheus, Datasul e ERPs terceiros
Módulo:Cadastro
Função:Visão 360 Cliente
Ambiente:Web/Android
Ticket:15677137
Requisito/Story/Issue:

DTSFAPD-2515 - Obtendo detalhes do item... STATUS


02. ESCOPO FUNCIONAL

Importar boleto e nota fiscal para geração de 2° via pelo SFA

Na versão atual do TOTVS SFA, não existe a possibilidade de fazer o download do boleto e nota fiscal.

Portanto será disponibilizado botões nas listagens de "Títulos" e "Nota fiscal":



Novo botão em "Listagem de títulos"


Novo botão em "Nota Fiscal"


Deverá ser criado um novo plugin de integração, com descrição "Download de notas fiscais e boletos":


Com essas alterações, será possível fazer o download das notas fiscais e boletos que foram emitidos/gerados pelo Protheus, através da API que será disponibilizada para o SFA.

03. ESCOPO TÉCNICO

API NOTA FISCAL

APLICAÇÃO

CRIAR PLUGIN

  • Pelo tools opção 5 deverá ser criado o registro:
pluginintegracao {
	codigo: DOWNNF,
    descricao: API Para download Danfe (PDF),
	idnAtivo: 0
}
Campo "URL Nota Fiscal"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_URL
	valor: {valor inserido no campo URL}
Campo "Usuário"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_USER
	valor: {valor inserido no campo USUÁRIO}

Campo "Senha"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_PASSWORD
	valor: {valor inserido no campo Senha}

Campo "Timeout Consulta"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_TIMEOUT
	valor: {valor inserido no campo Timeout consulta}

Campo "Grupo Empresa Default"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_GROUP
	valor: {valor inserido no campo Grupo Empresa Padrão}
Campo "Rep"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_REP
	valor: {COMMONS_SERVICES}
Campo "Job"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_JOB
	valor: {DOWNLOADNOTAFISCAL}


  • Segue protótipo de tela:

IMPLEMENTAÇÃO NA LISTAGEM DE NOTA FISCAL

  • Na tela, "Venda → Nota Fiscal → Listar", exibir o botão para download do PDF, ao lado do botão de visualização conforme protótipo, de acordo com as configurações do plugin:
    • idnAtivo = 1: select idnAtivo from pluginintegracao where codigo = 'DOWNNF'
  • Ao clicar no botão de download a aplicação deverá consultar o carte de acordo com a sql:

URL_PENTAHO
select valor from pluginintconfig where codigoelemento='CONF_GERAL' AND sglcampo='PENTAHO_URL'
    • A url do download deve ser montada da seguinte forma: URL=${Configurações do Pentaho.URL}/kettle/executeJob/?rep={}&job={}

    • No body da requisição, passar as seguintes informações:
{
idnotafiscal:
url:
usuario:
senha:
}


  • O retorno desta url será o arquivo em base64 para download:
200 - Ok
{
    mensagem: {base64}
}

INTEGRAÇÃO

API DOWNLOAD NOTA FISCAL

  • Criar para Pentaho-Carte o Job DOWNLOADNOTAFISCAL no repositório COMMONS_SERVICES;

  • URL de consulta deve ser montada no seguinte padrão:

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

HEADERS: Authorization: Basic {TOKEN}

    • O usuário e senha, e a URL serão repassadas pela aplicação no Body da request
    • Demais informações da request, serão obtidas a partir da consulta:

200 - Ok
SELECT n.numeronotafiscal AS DOCUMENTO,
       n.serie            AS SERIE,
       l.numeromatricula  AS FILIAL,
       CASE
         WHEN (SELECT valor
               FROM   pluginintconfig p
               WHERE  codigoelemento = 'DOWNNF'
                      AND sglcampo = 'DOWNNF_GROUP') <> NULL THEN 
         (SELECT valor FROM pluginintconfig p WHERE codigoelemento = 'DOWNNF' AND sglcampo = 'DOWNNF_GROUP')
         ELSE Split_part(N.codigoerp, '#', 1)
       END                AS EMPRESA
FROM   notafiscal n
       INNER JOIN local l
               ON l.idlocal = n.idlocalfilialfaturamento
WHERE  n.idnotafiscal = IDNOTAFISCAL;


  • O retorno recebido será no formato base64, e deve ser retornado para aplicação sem transformações dentro do XML do RESPONSE:
200 - Ok
{
    mensagem: {base64}
}
API - Nota Fiscal

Retornos:

500 - Internal Server Error
{"code":500,"detailedMessage":"","message":"Internal Server Error"}
404 - Nota Fiscal não encontrada
{
    "errorCode": 404,
    "errorMessage": "Nao encontrou a NF 01_05_000001838_11 "
}
200 - Ok
{
    mensagem: {base64}
}

API DOWNLOAD BOLETO

APLICAÇÃO

CRIAR PLUGIN

  • Pelo tools opção 5 deverá ser criado o registro:
pluginintegracao {
	codigo: DOWNBOL,
    descricao: API Para download Danfe (PDF),
	idnAtivo: 0
}
Campo "URL Nota Fiscal"
	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 "Grupo Empresa Default"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNBOL',
	codigoelemento: DOWNBOL,
	agrupador: 0,
	sglcampo: DOWNBOL_GROUP
	valor: {valor inserido no campo Grupo Empresa Padrão}
Campo "Rep"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_REP
	valor: {COMMONS_SERVICES}
Campo "Job"
	idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
	codigoelemento: DOWNNF,
	agrupador: 0,
	sglcampo: DOWNNF_JOB
	valor: {DOWNLOADBOLETO}


  • Segue protótipo de tela:

IMPLEMENTAÇÃO NA TELA DE LISTAGEM DE TÍTULOS

  • Na tela, "Visão 360 → Títulos":  exibir o botão para download do PDF, ao lado do botão de visualização conforme protótipo acima, de acordo com as configurações do plugin:
    • idnAtivo = 1: select idnAtivo from pluginintegracao where codigo = 'DOWNBOL'
  • Ao clicar no botão de download a aplicação deverá consultar a url do carte de acordo com a sql:
URL_PENTAHO
select valor from pluginintconfig where codigoelemento='CONF_GERAL' AND sglcampo='PENTAHO_URL'
    • A url do download deve ser montada da seguinte forma: URL=${Configurações do Pentaho.URL}/kettle/executeJob/?rep={}&job={}
    • No body da requisição, passar as seguintes informações:
{
idfinanceirotitulo:
url:
usuario:
senha:
}

INTEGRAÇÃO

API DOWNLOAD BOLETO

NÃO IMPLEMENTADO NO CLIENTE - AGUARDANDO

API - TITULOS FINANCEIROS

// Aguardando retorno do responsável pela API



  • Sem rótulos