Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3630 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado
Boa tarde pessoal, estivemos presente no evento da DIMEP realizado no dia 04/09, eles fizeram um sorteio de 2 kits para desenvolvedor fomos sorteados e ganhamos um Kit, estou realizando os testes com o equipamento e estou encontrando alguns probleminhas:
1 - Como estamos passando somente o path da dll tive que renomear a dll do fabricante "C:\Program Files (x86)\ D_SAT\dllsat.dll" para  SAT.dll, acredito que cada fabricante vai usar um nome.
2 - Comentei a linha  FunctionDetectLibSAT( 'DesligarSAT', @xSAT_DesligarSAT), esse comando não existe na dll;
3 - Comparando o xml gerado pelo acbrSAT e o exemplo que eles me passaram não bate na tag <total/>, vou anexar o 2 arquivos para comparar, acredito ser esse o motivo do retorno de violação de acesso ao enviar os dados da venda, vou continuar debungando para localizar o problema.

exemplo.xml

teste.xml

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Membros Pro
Postado

Eu já comparado tb, mas como eles homologaram estou meu na duvida, estou com vários arquivos de exemplo que me enviaram e todos estão como no exemplo, mandei um email para eles validarem, vamos ver a resposta, não sei se seria o motivo do erro de vialação de acesso que estou tendo de retorno, estou tentando consumir a dll sem usar o acbr e tambem tenho o mesmo retorno:

 

Function EnviarDadosVenda(numeroSessao : LongInt;codigoDeAtivacao, dadosVenda:String):String; StdCall; External 'SAT.dll' ;

vRetorno := EnviarDadosVenda(123456,'123456789',vDados);

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Membros Pro
Postado

Mas usando o ACBRSat tambem ocorre a mesma coisa, mas só com o equipamento antes eu estava usando o emulador da sefaz e estava dando tudo certo, mas vamos a luta vou descobrir...

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Membros Pro
Postado

Só relatando, o xml está ok, no próprio software de ativação deles tem como subir um xml e enviar como se fosse uma venda assim fazendo a validação, passou certinho, o problema esta na forma de consumir a dll mesmo, vou continuar os testes.

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

Postado (editado)

Segundo o Sr. Marlus Teixeira, coordenador de desenvolvimento da DIMEP, o comando TesteFimAFim não valida o XML de entrada.

As funções DesligarSAT() e DesligarSAT() só existem no SIMULADOR da SEFAZ.

No kit de desenvolvimento tem um arquivo DLLSAT.h ou algo parecido que especifica o protótipo das funções entre o seu aplicativo e a DLL.

Que linguagem voce está usando no seu aplicativo?

Cola esse arquivo citado aqui para agente poder ajudar melhor !!!

Editado por wdkuchler
  • Membros Pro
Postado

Boa tarde, estamos usando o delphi, o arquivo xml esta tudo ok , no software de ativação tem como fazer o upload de um xml de venda e enviar ao equipamento simulando uma venda, passei o arquivo gerado e foi normal, não foi o TestefimAFim, estamos conseguindo usar apenas a função ConsultarSAT que retorna SAT em Operação, eliminando assim erro ao carregar a dll, tem algum erro na passagem dos parametros que ainda não identificamos, mas vou reportar aqui qualquer avanço que tivermos, obrigado pela atenção.

 

function TACBrSATDinamico_cdecl.EnviarDadosVenda(dadosVenda : AnsiString) : String ;
Var
  Resp : PAnsiChar;
begin
  resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao),
                                   PAnsiChar(dadosVenda) ) ;
  Result := String( Resp );
end ;
 

Tentamos assim : F_DataModule.ACBrSAT.EnviarDadosVenda(DadosVenda); //Dados da venda é o xml que está de acordo

 

 

Tentamos tambem como fazemos com as dll de ecf:

 

Function EnviarDadosVenda(numeroSessao : LongInt;codigoDeAtivacao, dadosVenda:AnsiString ):String; StdCall; External 'SAT.dll' ;

 

U_SAT_DIMEP.EnviarDadosVenda(123456,'123456789',  PAnsiChar(vDados));

Temos sempre o mesmo retorno de violação de acesso.

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Membros Pro
Postado

Bom dia pessoal,ainda estou na luta, não consigo localizar achar onde está o erro, já mexi em todo a ACBrSAT, mas após emitir o cupom e ter o retorno ok, a função enviar dados não volta para a sua chamada  Result := FinalizaComando( fsSATClass.EnviarDadosVenda( Trim(dadosVenda) ) ); , mesmo com a emissão ok, tem algum free faltando ou create que não consigo localizar, vou postar o meu debug onde da para ver a resposta do SAT.

post-1366-0-79815100-1410869172_thumb.pn

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Fundadores
Postado

O ideal e que tenhamos um equipamento desses para testes...

 

Algum contato na DIMEP que possamos conversar ?

 

Vou tentar baixar o SDK deles, apenas para testar a carga da DLL...

 

Vou modificar a propriedade de Path da DLL para "Nome da DLL"...

Podemos ignorar o erro de leitura da função "DesligarSAT"

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado (editado)

Bom dia Daniel, eu tenho o link do canal que eles criaram para atendimento https://d-sat.4bee.com.br/Account/LogOn?ReturnUrl=%2fHome%2fIndex, também tenho o e-mail do [email protected] que foi quem gerenciou todo o projeto, como não consegui localizar o erro, estou usando o acbrSAT para criar o xml e fazer a impressão que também fiz algumas alterações por conta de margens e logo marca, mas o envio fiz uma unit separada, estou realizando venda,cancelando, imprimindo com o equipamento, tive que dar uma parada no projeto mas assim que voltar a mexer vou tentar achar o problema de travamento que ocorre usando o acbrSAT por completo.

Como o pessoal da DIMEP está investindo pesado nesse projeto, acredito que não seria díficil conseguir uma doação do KIT de Desenvolvimento.

Editado por netstart

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Fundadores
Postado

Notei que a "satdll.dll" aparentemente usa chamadas "stdcall" e não "cdecl"... 

 

Há um modelo novo no componente para esse tipo de chamada... por favor tente com ele...

 

Escrevi um e-mail para o Marlus, aguardando o contato...

 

Apliquei as seguintes modificações no SVN
 

Data: 23/09/2014     (por: DSA)
-- ACBrSAT -- [*] Remoção da propriedade "PathDll"
[+] Adição da propriedade "NomeDll", que deve conter o Path e Nome da DLL
    (alguns fabricantes n%2

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Daniel Funcionou certinho usando o novo modelo, fiz testes venda, cancelamento,consultarSAT, ConsultarStatusOperacional e Avisos, os outros ainda deu tempo de testar, mas com o novo modelo deu certo, assim que realizar mais testes posto aqui com os resultados, a unica coisa que tive que mudar para compilar no DelphiXe2 foi algumas declarações no ACBrSATExtratoFortesFr como por exemplo Graphics para Vcl.Graphics.

  • Curtir 1

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Fundadores
Postado

Ok, fico contente... obrigado pelo retorno...

 

Em relação ao Fortes Report, acho que depende de como foi instalado o Package do mesmo no XE...

 

Tenho o XE7 aqui, vou fazer alguns testes...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • 4 semanas depois ...
  • Membros Pro
Postado

Eu já deletei rsrs, mas basicamente era a declaração das funções usando StdCall e ao inves de chamar o EnviarDadosVenda do ACBrSAT eu chamava o da minha unit declarada no modo StdCall, mas o daniel já inclui uma nova unit com essa funcionalidade, basta mudar o modelo para satDinamico_stdcall que ja funciona tudo certinho com o D-SAT.

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Membros Pro
Postado

Boa tarde

 

Estou efetuando testes com o D-SAT da Dimep.

 

O primeiro envio esta indo ok, mais ao tenta fazer mais vendas da erro.

até onde debuguei esta dando um exception na funcao da dll que manda o xml de venda, dando erro.

 

Resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao),
                                   PAnsiChar(dadosVenda) ) ;

 

 

Retorno: '?MY'#1'?X\'#4'TJ?'#5

 

se eu fechar toda a aplicação e abrir dinovo ai consigo fazer outra venda, mais depois trava e da erro dinovo.

 

post-320-0-64311700-1414511319_thumb.jpg

  • Membros Pro
Postado

Boa tarde, acabei de fazer 4 cupons um em seguida do outro e funcionou normal, verifique se realmente está usando o modelo satDinamico_stdcall, depois que o Daniel implementou essa rotina ficou certo, o modelo D-Sat funciona somente com satDinamico_stdcall.

Jorge – Analise / Desenvolvimento de Sistemas

Netstart Informatica - (18)3642-0900

www.netstart.com.br

  • Membros Pro
Postado

Sim,estou usando o satDinamico_stdcall, e outra coisa que reparece aqui e a demora do retorna da funcao que envia a venda isso ocorre pra voce tbem.

mais ha tentei de tudo aqui e so envia a primeira, as outras nao vai.

  • Este tópico foi criado há 3630 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.