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.
Este Plugin tem como objetivo fazer a comunicação com o ERP correspondente e permitindo que o usuário visualize e baixe um PDF do documento DANFE direto pela aplicação TOTVS CRM SFA.
Para configurar é necessário ativar o Card referente a esse fluxo em: Configuração > Integração > Plugins de Integração
Após ativar, clique em "Configurar' no Card correspondente e serpa exibido os seguintes campos:
| Campo | Descrição |
|---|---|
| URL | Informe a URL em que a API para download estará sendo servida (Ex: https://IP:PORTA/rest/KFATRO03) |
| Usuário | Informe o Usuário da autenticação básica |
| Senha | Informe a senha da autenticação básica |
| Job | Informe o nome do serviço Pentaho que faz a comunicação com a URL fornecida |
| Rep | Informe o repositório onde está o Job dentro do arquivo .jar da integração |
| Timeout | Informe de processamento para aguardar retorno da API |
Com a configuração realizada, acesse o módulo Venda > Notas Fiscais > Listar
Nessa tela são exibido todos os registros de Notas fiscais que foram importadas do ERP, porém agora exibe uma coluna com o Ícone de Download:
Ao clicar no Ícone do registro que pretende consultar, a aplicação exibe a janela de comunicação com o Carte e a consulta da DANFE é realizada.
Após a consulta, o Download da Nota Fiscal é automaticamente realizado.
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 "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 Dados de tela que serão preenchidos:
Na tela, "Venda → Nota Fiscal → Listar", exibe 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:
Ao clicar no botão de download a aplicação deverá consultar o carte de acordo com a sql:
select valor from pluginintconfig where codigoelemento='CONF_GERAL' AND sglcampo='PENTAHO_URL'
A url do 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:
{
idnotafiscal:
}
O retorno desta url será o arquivo em base64 para download:
{
mensagem: {base64}
}
Lista de variáveis de integração abaixo:
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 |
Também é Criado para Pentaho-Carte o Job DOWNLOADNOTAFISCAL no repositório COMMONS_SERVICES;
A URL de consulta é montada no seguinte padrão:
GET: {URL_API_NOTA_FISCAL_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 é repassado na URL da request. Dessa forma {URL_API_NOTA_FISCAL_CLIENTE}/{filial}/{documento}/{serie}:
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 é retornado para aplicação sem transformações dentro do XML do RESPONSE:
{
mensagem: {base64}
}
{"code":500,"detailedMessage":"","message":"Internal Server Error"}
{
"errorCode": 404,
"errorMessage": "Nao encontrou a NF 01_05_000001838_11 "
}
{
mensagem: {base64}
}