Jump to content

jjw.roberto

Membros
  • Posts

    176
  • Joined

  • Last visited

Everything posted by jjw.roberto

  1. Pessoal, bom dia. Estou com uma Epson TM-T81F USB, só que para utilizá-la com o ACBr tenho que instalar o emulador de Serial, que baixo aqui https://download.epson-biz.com/modules/pos/index.php?page=single_soft&cid=5485&scat=36&pcat=3 Só que está acontecendo algo estranho, depois que configuro a USB para a Serial que desejo, fecho o programa e utilizo a ECF normalmente. Só que depois que o cliente reinicia o PC, a configuração se perde e tenho que reinistalar tudo novamente. Alguém já passou por isso ou sabe o que posso fazer para resolver?!
  2. Estou tendo problemas de entendimento referente à 3 campos do Bloco X de estoque, que na época em que fiz nossa homologação PAF-ECF tais campos não existiam. Segundo o XSD https://tributario.sef.sc.gov.br/tax.NET/sat.dfe.siv.web/xsd/estoque.xsd os campos são: ValorTotalICMSDebitoFornecedor ValorBaseCalculoICMSST ValorTotalICMSST Entrei em contato com o pessoal da receita federal, minha pergunta foi: A resposta Bem, pelo meu entendimento, somente precisarei informar esses campos caso meu cliente faça contabilidade de custos. No meu caso, nenhum deles faz, então não precisarei informá-los (basta zerá-los). Minha questão aqui é, na opinião de vocês estou correto em meu entendimento?
  3. Gente, eu estava com o mesmo problema esses dias, e meu problema era que eu não estava enviando o Número do Credenciamento correto no XML. Para resolver eu acessei o menu "CEI - Manutenção de Autorização de Uso de PAF-ECF" em https://sathomologa.sef.sc.gov.br/tax.NET/sat.cei.web/pafecf/manutencao.aspx Também verifiquei se o número de fabricação do ECF em questão estava cadastrado junto à este aplicativo. Resumidamente é isso!
  4. Pessoal, estou com um cliente com uma ECF da daruma. Eventualmente ocorre um erro de comunicação no fechamento do cupom fiscal, porém a ECF fecha o cupom corretamente e contabiliza ele. Em meu sistema eu só marco o cupom fiscal como "100% correto" depois que o "ECF.FechaCupom" retorna com sucesso. Resumindo minha aplicação está ficando com cupons fiscais marcados como não concluídos mas na ECF estão certos. Alguém sabe me dizer o porque disso? Estava pensando em resolver fazendo uma consulta na base de dados e verificando se o ultimo cupom está marcado como "nao concluído" e verificar pela ECF o ultimo cupom emitido para então marcar na base de dados o cupom com o status certo. Não sei se é uma boa, ao meu ver não é pois não resolve o problema de comunicação.
  5. Amigo, o mesmo erro ocorre com ambos os comandos.
  6. Pessoal, boa tarde. Estou utilizando o Acbr Monitor Plus para comunicar com uma ECF DARUMA FS800i fornecida para desenvolvimento por uma empresa terceira. Toda vez que emito uma sangria, suprimento ou até um cupom fiscal com comprovante de crédito, não consigo fazer o seu cancelar posterior. Ocorre o seguinte erro: 03/07/2017 15:14:50 - ECF.CancelaNaoFiscal 03/07/2017 15:14:50 - ERRO: Erro retornado pela Impressora: DARUMA AUTOMAÇÃO Categoria: 16-Erro específico do Fabricante Motivo: 146-Documento especificado não foi encontrado Se for um cupom fiscal normal, por exemplo com pagamento em dinheiro, aí consigo fazer o cancelamento posteriormente. Alguém pode dar uma luz do que possa ser? Problema na ECF talvez?
  7. Resolvido o problema da ultima linha de compilação do ACBR monitor plus @echo off setlocal EnableDelayedExpansion echo. echo. UTILITARIO PARA BAIXAR E COMPILAR O ACBR MONITOR PLUS echo. echo. PARA PROSSEGUIR VOCE PRECISARA: echo. - GIT INSTALADO echo. - SVN COM COMMAND LINE TOOLS echo. - LAZARUS 1.6 INSTALADO EM C:\LAZARUS echo. PAUSE set lazarus_home=c:\lazarus set path=%path%;%lazarus_home% set opts=--build-all --quiet --lazarusdir=%lazarus_home% set projects=^ fortesreport-ce\Packages\frce.lpk,^ powerpdf\pack_powerpdf.lpk,^ acbr\Pacotes\Lazarus\synapse\laz_synapse.lpk,^ acbr\Pacotes\Lazarus\ACBrComum\ACBrComum.lpk,^ acbr\Pacotes\Lazarus\ACBrDiversos\ACBrDiversos.lpk,^ acbr\Pacotes\Lazarus\PCNComum\PCNComum.lpk,^ acbr\Pacotes\Lazarus\ACBrOpenSSL\ACBrOpenSSL.lpk,^ acbr\Pacotes\Lazarus\ACBrSerial\ACBrSerial.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrTXTComum.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrConvenio115\ACBr_Convenio115.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrLFD\ACBr_LFD.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrPAF\ACBr_PAF.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSEF2\ACBr_SEF2.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSintegra\ACBr_Sintegra.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSPED\ACBr_SPED.lpk,^ acbr\Pacotes\Lazarus\ACBrTCP\ACBrTCP.lpk,^ acbr\Pacotes\Lazarus\ACBrTEFD\ACBr_TEFD.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\ACBr_Boleto.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\FC\Fortes\ACBr_BoletoFC_Fortes.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\FC\Laz\ACBr_BoletoFC_LazReport.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrDFeComum.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\ACBr_NFe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\ACBr_CTe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\ACBr_GNRE.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\ACBr_MDFe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFSe\ACBr_NFSe.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\ACBr_SAT.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\Extrato\EscPos\ACBr_SAT_Extrato_ESCPOS.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\Extrato\Fortes\ACBr_SAT_Extrato_Fortes.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrBlocoX\ACBr_BlocoX.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\DAMDFE\Fortes\ACBr_MDFe_DAMDFeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Fortes\ACBr_GNREGuiaRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Laz\ACBr_GNREGuiaLazReport.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\DACTE\Fortes\ACBr_CTe_DACTeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBr_NFCe_DanfeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes\ACBr_NFe_DanfeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\EscPos\ACBr_NFe_DanfeESCPOS.lpk,^ "--build-mode=release acbr\Projetos\ACBrMonitorPLUS\Lazarus\ACBrMonitor.lpi" :init0 ( echo. choice /c SN /n /m "Deseja fazer o checkout dos fontes (apaga e baixa) ? [S/N]" if %errorlevel% EQU 1 goto :checkout if %errorlevel% EQU 2 goto :make ) :checkout ( rd /s /q fortesreport-ce git clone https://github.com/fortesinformatica/fortesreport-ce.git if %errorlevel% NEQ 0 goto :error rd /s /q powerpdf svn co svn://svn.code.sf.net/p/lazarus-ccr/svn/components/powerpdf powerpdf if %errorlevel% NEQ 0 goto :error rd /s /q acbr svn co svn://svn.code.sf.net/p/acbr/code/trunk2 acbr if %errorlevel% NEQ 0 goto :error ) :make ( for %%a in (%projects%) do ( call :compile %%~a if !RESULT! NEQ 0 goto :error ) ) echo. OK goto :eof :compile ( lazbuild %opts% %* set RESULT=%ERRORLEVEL% EXIT /B ) :error ( echo. FALHOU ! goto :EOF )
  8. Pessoal bom dia, gostaria de compartilhar o utilitário que criei para: Baixar os fontes do ACBR + fortes report ce + powerpdf Compilar o ACBRMonitorPlus utilizando o Lazarus É bom ressaltar que você precisará: Lazarus 1.6 instalado em C:\Lazarus - http://www.lazarus-ide.org/ Tortoise SVN com a opção "command line tools" selecionada no instalador - https://tortoisesvn.net/ GIT - https://git-scm.com/ Segue abaixo o script completo @echo off setlocal EnableDelayedExpansion echo. echo. UTILITARIO PARA BAIXAR E COMPILAR O ACBR MONITOR PLUS echo. echo. PARA PROSSEGUIR VOCE PRECISARA: echo. - GIT INSTALADO echo. - SVN COM COMMAND LINE TOOLS echo. - LAZARUS 1.6 INSTALADO EM C:\LAZARUS echo. PAUSE set lazarus_home=c:\lazarus set path=%path%;%lazarus_home% set opts=--build-all --quiet --lazarusdir=%lazarus_home% set projects=^ fortesreport-ce\Packages\frce.lpk,^ powerpdf\pack_powerpdf.lpk,^ acbr\Pacotes\Lazarus\synapse\laz_synapse.lpk,^ acbr\Pacotes\Lazarus\ACBrComum\ACBrComum.lpk,^ acbr\Pacotes\Lazarus\ACBrDiversos\ACBrDiversos.lpk,^ acbr\Pacotes\Lazarus\PCNComum\PCNComum.lpk,^ acbr\Pacotes\Lazarus\ACBrOpenSSL\ACBrOpenSSL.lpk,^ acbr\Pacotes\Lazarus\ACBrSerial\ACBrSerial.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrTXTComum.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrConvenio115\ACBr_Convenio115.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrLFD\ACBr_LFD.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrPAF\ACBr_PAF.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSEF2\ACBr_SEF2.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSintegra\ACBr_Sintegra.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSPED\ACBr_SPED.lpk,^ acbr\Pacotes\Lazarus\ACBrTCP\ACBrTCP.lpk,^ acbr\Pacotes\Lazarus\ACBrTEFD\ACBr_TEFD.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\ACBr_Boleto.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\FC\Fortes\ACBr_BoletoFC_Fortes.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\FC\Laz\ACBr_BoletoFC_LazReport.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrDFeComum.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\ACBr_NFe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\ACBr_CTe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\ACBr_GNRE.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\ACBr_MDFe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFSe\ACBr_NFSe.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\ACBr_SAT.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\Extrato\EscPos\ACBr_SAT_Extrato_ESCPOS.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\Extrato\Fortes\ACBr_SAT_Extrato_Fortes.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrBlocoX\ACBr_BlocoX.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\DAMDFE\Fortes\ACBr_MDFe_DAMDFeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Fortes\ACBr_GNREGuiaRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Laz\ACBr_GNREGuiaLazReport.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\DACTE\Fortes\ACBr_CTe_DACTeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBr_NFCe_DanfeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes\ACBr_NFe_DanfeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\EscPos\ACBr_NFe_DanfeESCPOS.lpk,^ --build-mode=release acbr\Projetos\ACBrMonitorPLUS\Lazarus\ACBrMonitor.lpi :init0 ( echo. choice /c SN /n /m "Deseja fazer o checkout dos fontes (apaga e baixa) ? [S/N]" if %errorlevel% EQU 1 goto :checkout if %errorlevel% EQU 2 goto :make ) :checkout ( rd /s /q fortesreport-ce git clone https://github.com/fortesinformatica/fortesreport-ce.git if %errorlevel% NEQ 0 goto :error rd /s /q powerpdf svn co svn://svn.code.sf.net/p/lazarus-ccr/svn/components/powerpdf powerpdf if %errorlevel% NEQ 0 goto :error rd /s /q acbr svn co svn://svn.code.sf.net/p/acbr/code/trunk2 acbr if %errorlevel% NEQ 0 goto :error ) :make ( for %%a in (%projects%) do ( echo. %%a call :compile %%a if !RESULT! NEQ 0 goto :error ) ) echo. OK goto :eof :compile ( lazbuild %opts% %* set RESULT=%ERRORLEVEL% EXIT /B ) :error ( echo. FALHOU ! goto :EOF )
  9. Barbosa, obrigado pelo retorno! Bem, agora você levantou a mesma questão que levantei ao homologador, e segundo ele (homologador) ele estava pedindo isso com base no REQUISITO LVIII - itens 2 e 3 ( link ER ). 2. O Arquivo com Informações da Redução Z do PAF-ECF deve ser gerado automaticamente quando o PAF-ECF comandar a emissão do documento Redução Z. 3. O Arquivo com Informações da Redução Z do PAF-ECF deve ser gerado automaticamente também quando houver a emissão automática do documento Redução Z pelo ECF. Questionei ele sobre a parte do item 2 que diz "quando o PAF-ECF comandar a emissão do documento Redução Z", logo, se o RZ não foi feita por dentro do programa não teria como fazer a geração. Por isso acho que ele se baseou mais pelo item 3 para obrigarmos a recuperar a RZ emitida por fora do programa. A questão é, existe ECF que emite redução z sozinha? Não é o programa que deve implementar essa "emissão automática da RZ" ? Eu particularmente acho que o homologador estava meio bravo (hahahahahahahaha) pois não estava encontrando inconformidades no nosso programa, já estávamos perto das 12:00 horas e já tínhamos feito uns 80% do testes. Depois que ele inventou esse requisito acabamos atendendo ele por meio de um arquivo .INI em que nós (empresa desenvolvedora) ficaríamos responsáveis por criar e importar "Reduções Z emitidas externamente". O que nos deixou mais bravos, foi que perdemos umas 2~3 horas para resolver o problema e tudo baseado nos requisitos do BlocoX que ainda nem estão em vigor.
  10. Resolvido gente. Na versão antiga (em que os arquivos estavam em ANSI) eu estava com a propriedade ANSI do protocolo de comunicação TCP ativada. Desativando-a agora tudo voltou ao normal. Falha minha!
  11. Pessoal, boa tarde. Acabei de baixar a última versão dos fontes do acbr do SVN. Depois de compilar tudo notei que alguns caracteres estavam vindo errados durante a comunicação do ACBrMonitorPlus, enviando o comando "teste" (que não existe) o retorno foi esse: teste ERRO: Comando inv�lido (teste) Note que o "á" está com um caracter errado. Foi quando resolvi pegar uma versão antiga dos fontes do ACBR que eu tinha em minha máquina e verifiquei que todos os arquivos em "Projetos\ACBrMonitorPLUS\Lazarus" estão em encoding UTF-8, já os demais fontes ainda continuam em ANSI, sendo que a versão antiga dos fontes que eu tinha guardada estavam todos em ANSI. O que mudou? Preciso configurar algo no lazarus para compilar corretamente?
  12. Pessoal, bom dia. Esta semana, na segunda e terça feira (dia 13 e 14) realizamos (com sucesso) nossa Homologação PAF-ECF. Porém, durante a homologação o homologador fez o seguinte teste: Emitir um cupom fiscal Fazer intervenção na ECF Fazer a redução Z em modo de intervenção Sair da intervenção Reabrir o programa PAF-ECF Verificar se foi recuperada a Redução Z (que não foi emitida/comandada pelo aplicativo PAF-ECF) Verificar se foi gerado automaticamente o arquivo de exportação da Redução Z para o Bloco X Quando o homologador descreveu o teste, ficamos assustados pois sabíamos que o comando "ECF.DadosUltimaReducaoZ" não era compatível com todas as ECFs. Para piorar quando fomos testar o comando, não estava retornando: data do movimento, valor da venda bruta, alíquotas todas zeradas e sem os totais por forma de pagamento. Minhas perguntas: existe algum meio de se obter os dados de uma redução Z específica? e se o homologador tivesse emitido mais de uma redução z em intervenção? e se o homologador tivesse emitido um cupom fiscal antes de fazer a redução z em intervenção?
  13. Pessoal, bom dia. Estou tentando programar um relatório gerencial com uma descrição (ex: Identificação do Paf Ecf) porém, depois de programar ele está ficando com a descrição truncada "Identificação P". Isso é um limite da ECF em questão ou isso varia de ECF para ECF ? Esse foi o comando que emiti ao ACBrMonitorPlus: ECF.ProgramaRelatoriosGerenciais("Identificação Paf") O estranho é o retorno das descrições: ECF.CarregaRelatoriosGerenciais OK: 1 Configuração00001| 2 Identificação P00000 Note que a descrição retornada está alinhando à direita. Eu esperava que o retorno fosse algo assim: ECF.CarregaRelatoriosGerenciais OK: 1Configuração 00001| 2Identificação P 00000
  14. Pois é, estou tendo um parto com esse assunto. Ambiente de homologação estava fora até ontem, voltou hoje Não tem XSD para validar os xmls de estoque e reducaoz O validador só retorna "XML inválido: Schema inválido:" Validar o próprio XML de exemplo disponível no despacho também não valida Já tentei usar os XSD daqui http://aplicacoes.unisul.br/PAF/docs/Estoque.xsd http://aplicacoes.unisul.br/PAF/docs/ReducaoZ.xsd Mesmo conseguindo validar meu XML com esses XSD, na hora de colocar o XML no validador oficial, volta o erro "XML inválido: Schema inválido:" Não sei mais o que fazer com esse assunto. Minha homologação é em Março/2017, só espero que até lá esse negocio esteja redondo. Esse despacho parece ter sido feito nas cochas por parte do governo. Fora que estão "refazendo a roda", ao meu ver tudo isso seria resolvido se adotassem a NFc-e ou SAT de SP.
  15. Legal julimar, de grande ajuda a sua resposta Mais uma dúvida para finalizar, porque já estou em parafuso com tanto requisito, sobre esse arquivo eletrônico: Se meu cliente tem 2 ou mais ECFs, o arquivo que cada um irá gerar e guardar deverá conter: os dados de todos os demais ECFs; ou; somente os dados referentes ao ECF que está gerando o arquivo?
  16. Será que posso ter uma tela de "simulação de pedido de venda/dav", pela seguinte necessidade de recursos: aplicar cálculos, descontos, acréscimos, parcelamentos ter uma visão geral de como o DAV ficaria se a venda for concretizada validar situação financeira de clientes pré cadastrados Ou será que isso não passaria em uma homologação?
  17. Anderson, obrigado pelo retorno. Sobre a sua afirmação na última linha sobre o DAV, é correto afirmar também que: Não posso na tela para criar um novo DAV e ir adicionando os itens e no final descartar/cancelar tudo Uma vez que um DAV tem o primeiro item lançado ele tem que ser gravado na base A mesma coisa pode-se assumir para o Pré Venda? Tenho outra questão baseada no fluxo de tralhado de alguns de meus clientes: O tele vendas de um cliente meu recebe N ligações por dia para fins de "orçamento/consulta de valores", os quais nem sempre convertem-se em vendas. Mesmo nestes casos terei que gravar um DAV na base contendo todos os itens cancelados (bizarro)
  18. Pessoal, bom dia. Estou começando a gerar as maravilhosas exportações do PAF-ECF. No momento estou na geração do 6.6. REGISTRO TIPO D2 - RELAÇÃO DOS DAV EMITIDOS ( https://www.confaz.fazenda.gov.br/legislacao/atos/2016/ac014_16 ). Foi quando surgiu a seguinte dúvida... Essa exportação é de TODOS os DAVs da empresa? Se sim, todos os ECFs vão ter este arquivo (REQUISITO XXVI - Item 5) com todos os DAVs da empresa? Ou; Somente dos DAVs dois quais foram gerados Cupons Fiscais pelo ECF que está gerando a exportação? Os DAVs cancelados ou não impressos ou não gerados cupons também devem sair nessa exportação?
  19. Descobri o problema. Eu tenho uma .BAT que copia essas DLLs para o diretório do ACBr por meio do XCOPY. Por algum motivo do além o xcopy não estava copiando os aquivos por completo (bizarro). Fiz a cópia manualmente e agora está funcionando.
  20. Acredito que o primeiro erro é decorrente do segundo erro, no caso, a DLL c:\windows\system32\libssl32.dll não existe realmente. Tenho uma versão mais recente instalada do OpenSSL (1.x) e notei que dentro do diretório de instalação dele existe esta dll (libssl32.dll). Outra coisa, no site oficial do OpenSSL a versão 9.x está descontinuada, será que não seria interessante atualizar para uma versão mais recente?
  21. Sim já tentei copiar as DLLs das 2 pastas: - ACBR\DLL\OpenSSL\0.9.8.1 - ACBR\DLL\OpenSSL\0.9.8.14 Ambas geram o mesmo erro.
  22. Pessoal, bom dia. Acabei de atualizar os fontes do ACBr. Depois de recompilar tudo, ao abrir o ACBrMontior Plus ocorrem esses 2 erros em sequencia (em anexo), mas o ACBrMonitor acaba abrindo. Alguém sabe o que pode ser?
  23. Eu até arriscaria fazer uma sugestão de melhoria ao protocolo. Tanto para envio como recebimento, poderia seguir a seguinte premissa: [tamanho = 4 bytes] [byte1,byte2,byteN] Assim, ao enviar o comando, você enviaria ao servidor primeiramente a quantidade de bytes do comando (length) e depois os bytes do comando em si. Para a resposta, fazer o mesmo, o integrador deve ler 4 bytes para saber o tamanho do buffer de retorno e então lê-lo. Em uma visão mais técnica ficaria algo assim (programaticamente): // exemplo do integrador/cliente fazendo a comunicação com o ACBrMonitorPlus via TCP var cmd = "ECF.MFAdicional"; socket.writeInteger(length(cmd)); // 4 bytes do tamanho do comando (15) socket.writeBuffer(cmd[1], length(cmd)); // 15 bytes do comando var resultLen = socket.readInteger; // espera o servidor responder com 4 bytes contratando o tamanho do retorno var result; setLength(result, resultLen); // aloca o buffer para fazer a leitura do retorno socket.readBuffer(result[1], resultLen); // faz a leitura dos bytes de retorno // O servidor faz o inverso, aguarda sempre 4 bytes que representarão o tamanho do comando que irá receber, e depois lê o buffer, por exemplo: var cmdLen = serverSocker.readInteger(); var cmd; setLength(cmd, cmdLen); serverSocker.readBuffer(cmd[1], cmdLen); // cmd agora contém o comando recebido, no caso do exemplo acima seria "ECF.MFAdicional" Os benefícios seriam: possibilidade de enviar comandos com múltiplas linhas contendo CR+LF+ . + CR+LF (sequencia que atualmente denota ao servidor o término do comando enviado); possibilidade de possuir o caracter ASCII #3 na resposta, que hoje por padrão é eliminado da resposta pois é utilizado como demarcador de término da resposta; padronização do protocolo; diminuição da quantidade de bytes no envio do comando (de 5 para 4, não que seja significativo) Me prontifico à fazer a alteração e anexar um PATH caso tenham interesse.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.