-
Total de ítens
148 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por jackson Lima
-
-
Além da propriedade Timeout, as propriedades: PastaInput e PastaOutput na classe TACBrSATMFe_integrador_XML também não são atualizadas quando setamos elas como está no demo:
TACBrSATMFe_integrador_XML(SAT).PastaInput := 'C:\Integrador\teste'; TACBrSATMFe_integrador_XML(SAT).PastaOutput := edMFEOutput.Text; TACBrSATMFe_integrador_XML(SAT).Timeout := 18000;
Infelizmente elas sempre ficam com o valor default do construtor:
constructor TACBrSATMFe_integrador_XML.Create(AOwner : TComponent) ; begin inherited Create(AOwner) ; fpModeloStr := 'MFe_Integrador_XML' ; FGerador := TGerador.Create; FComandoMFE := TComandoMFe.Create; FIdentificador := TIdentificador.Create(FGerador); FParametro := TParametro.Create(FGerador); FMetodo := TMetodo.Create(FGerador); FPastaInput := 'C:\Integrador\Input\'; FPastaOutput := 'C:\Integrador\Output\'; FTimeout := 30; end ;
-
@André Ferreira de Moraes fiz como aconselhou na tela de venda para não finalizar a venda.
Porém na questão do timeout, fiz o teste setando o timeout para 600 no demo e coloquei um showmessage em FTimeout na PCNMfeUtil e mesmo assim não seta para 600 fica em 30.
-
Por que no caso do enviarEnviar, no processo de homologação, precisa ficar travado ate o integrador responder.
Vou ver se tem o mesmo erro no exemplo que vem no acbr, sr o timetout está zerado ai amanhã dou um retorno
-
2 horas atrás, André Ferreira de Moraes disse:
Na função EnviaComando da unit pcnMFeUtil tem o seguinte trecho:
if TimeOutComando > 0 then FTimeout := TimeOutComando; if FTimeout <= 0 then LocTimeOut := IncSecond(ActualTime, 30) else LocTimeOut := IncSecond(ActualTime, FTimeout);
Então, se a propriedade TACBrSATMFe_integrador_XML(SAT).Timeout estiver configurada, deverá ser respeitado pelo comando.
André estou fazendo assim:
TACBrSATMFe_integrador_XML(ACBrSAT1.SAT).Timeout := 86400;
ACBrSAT1.EnviarDadosVenda( pVendaXML );
E mesmo assim dentro da função: enviaComando o fTimeOut está zerado.Estou fazendo corretamente?
-
André, mesmo aumentando o timeout o acbr não está respeitando o tempo passado. Percebemos que na unit PcnMfeUtil no comando EnviaComando tem o parâmetro, mas na chamada dentro de ACBrSATMFe_integrador o valor não é passado na função EnviaPagamento.
-
@André Ferreira de Moraes dá uma olhada no retorno função RespostaFiscal que o @Rafael Fiúza mandou, fica legal usar RespostaRespostaFiscal (que ele criou) ao invés de retornar apenas uma string como está hoje.
-
@André Ferreira de Moraes No método: ACBrSAT1.Resposta os valores que o componente disponibiliza são: numeroSessão, codigoRetorno etc, só que não retorna os valores que vem depois do xml da venda em base64 que são: Data e hora da emissão, chaveConsulta, valorTotalCFe, CPFCNPJValue e assinaturaQRCODE
"...=|20151210094740|CFe35151208723218000186599000025910004311835531|26.66||deTVk7//zHsxWCBdsgh83SypwpIsJ3kh9Yshu4OO6Nn3FdMs6xlrc3bd4nknlmEgGn7M3NcSAdpiaeMiPluUIR2BiXVNQ/tsRFbFOqjzNkaf12YxCSlpBHc1e1N/Y7YZISwPdZgvtrmI0sGZZ6wUN6E1wzXw6KTyhFC4CFkZHTDRT9oesBspRj29qf6G9QNZKbwc03aIzQ7PEbPS/nUQe+XNwmzy3LHl1vpbBC347zQ5ypo8epgZZi2RPIfvKZwcZzetu/ttbvndGYhj30Jm0DjpcXm8dbWT8FJf7Av5CfGOmUBJRnY8eHepgL0x4gs+boPbgFCQgZxwhe3wlNxL2g"
Se tivesse como disponibilizar esses campos também na resposta, ficaria show.
Segue o layout: https://portal.fazenda.sp.gov.br/servicos/sat/Downloads/Especificacao_SAT_v_ER_2_21_08.pdf
Esses campos estão na página: 214
Desde já muito obrigado André pelas implementações que tu já fizestes, vc é o cara.
- 1
-
Estou postando aqui informações do fluxo completo de venda e pagamento, para quem precisar.
@André Ferreira de Moraes se você puder colocar a rotina de pagamento no exemplo em delphi 7 na pasta exemplos seria massa, por que é um processo bem chato, segundo o administrador do projeto mfe é assim:
1 - Registrar o Cliente (AC - Sem Interface com o Integrador)
2 - Registrar Produtos (AC - Sem Interface com o Integrador)
3 - Definir forma de pagamento (AC - Sem Interface com o Integrador)
4 - Enviar solicitação de pagamento ao Validador (Interface com o Integrador - Componente: VFP-e / Método: EnviarPagamento)
5 - Solicitar Status de Pagamento para o Validador, em casos de POS (Interface com o Integrador - Componente: VFP-e / Método: VerificarStatusValidador)
ou
5 - Enviar Status de Pagamento para o Validador, em caso de TEF (Interface com o Integrador - Componente: VFP-e / Método: EnviarStatusPagamento)6 - Gerar o CF-e (Interface com o Integrador - Componente: MF-e / Método: EnviarDadosVenda)
7 - Enviar comprovante do Documento Fiscal para o Validador (Interface com o Integrador - Componente: VFP-e / Método: RespostaFiscal)
8 - Imprimir o Cupom Fiscal em Impressora (AC - Sem Interface com o Integrador)
ou
8 - Imprimir o Cupom Fiscal no POS.------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Importante implementar 2 cadastros no PDV.
1 - Cadastro de POS (Nome e Serial)
2 - Cadastro de Chave do validador (ChaveAcesso String (50) e ChaveRegistro String (50) ) e
Integrador (Identificador String (1) Chave Unica para relacionamento entre as mensagens e o retorno do Integrador )------------------------------------------------------------------------------------------------------------------------------------------------------------------------
quando falamos de POS ele te envia os dados do pagamento e vc receber pelo passo 5 guarda os dados no seu sistema e alimenta a informação de pagamento do CF-e, apos a emissão do CF-e vc pega a chave de acesso e remete novamente ao integrador pelo passo 7
- 3
-
Já coloquei a mfe.dll em tudo que é pasta: integrador, system32, syswow etc e nada de resolver esse erro.
7 minutos atrás, jackson Lima disse:Já coloquei a mfe.dll em tudo que é pasta: integrador, system32, syswow etc e nada de resolver esse erro.
@André Ferreira de Moraes Consegui resolver o problema da dll, desmarquei a opção isServer e funcionou. O equipamento que estou usando é da elgin e está em outra máquina.
Estou aguardando a correção da tag <Parametros>
-
Eu comentei essa duas linhas na unit pcnMfeUtil:
procedure TMetodo.GerarMetodo(Valor: Integer; Componente, Metodo: String); begin FGerador.wGrupo('Integrador'); FIdentificador.GerarIdentificador(IntToStr(Valor)); FGerador.wGrupo('Componente Nome="'+Componente+'"'); FGerador.wGrupo('Metodo Nome="'+Metodo+'"'); //if AdicionarParametros then FGerador.wGrupo('Parametros'); end; procedure TMetodo.FinalizarMetodo; begin //if AdicionarParametros then FGerador.wGrupo('/Parametros'); FGerador.wGrupo('/Metodo'); FGerador.wGrupo('/Componente'); FGerador.wGrupo('/Integrador'); end;
Comentei o if Adicionar pagamento e gerou corretamente o xml. Porém agora está retornando o seguinte erro:
Resposta:Verifique se o módulo está instalado/conectado e se a mfe.dll está em suas system's. acesse as logs do MFE para visualizar possiveis causas em: (pasta_instalação_Integrador)/logs/SAT_MFE/LogSatMfeddmmyyyy.log
-
14 minutos atrás, André Ferreira de Moraes disse:
Anexe o XML gerado pelo componente.
<?xml version="1.0" encoding="utf-8"?> <Integrador> <Identificador> <Valor>239090</Valor> </Identificador> <Componente Nome="MF-e"> <Metodo Nome="ConsultarStatusOperacional"> <Parametro> <Nome>numeroSessao</Nome> <Valor>239090</Valor> </Parametro> <Parametro> <Nome>codigodeAtivacao</Nome> <Valor>123456789</Valor> </Parametro> </Metodo> </Componente> </Integrador>
Está faltando a tag <Parametros> abrangendo as duas tags: <Parametro>
-
@André Ferreira de Moraes não consegui enviar o xml usando acbr, pelo que percebi o xml gerado pelo AcbrSat está faltando a tag: <Parametros>
Como eu posso adicionar essa tag nos fontes?
Exemplo correto de xml (Com apenas campos obrigatórios):
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Integrador> <Identificador> <Valor></Valor> </Identificador> <Componente Nome="MF-e"> <Metodo Nome="ConsultarStatusOperacional"> <Parametros> <Parametro> <Nome>numeroSessao</Nome> <!--int--> <Valor></Valor> </Parametro> <Parametro> <Nome>codigoDeAtivacao</Nome> <!--string--> <Valor></Valor> </Parametro> </Parametros> </Metodo> </Componente> </Integrador>
-
10 horas atrás, André Ferreira de Moraes disse:
Alterei o exemplo em Delphi e já enviei ao SVN.
No caso do comando com erro, eu comentei com um dos administradores de lá e ele respondeu o seguinte:
"Errou o nome do metodo ou do componentesl Quando falar de pagamento é o VFP-e em alguns casos o pessoal estava deixando MF-e" -
Agora, André Ferreira de Moraes disse:
Estou sempre rodando como administrador, mas o valor dessa propriedae "IsServer" sempre fica como FALSE.
André, na pasta de instalação tem um arquivo chamado: Configuration.json, tenta altera a tag isServer lá manualmente
-
@André Ferreira de Moraes, você precisa instalar como administrador, e também colocar o executável do integrador para executar como administrador.
E também dar permissão na pasta de instalação, para que ele salve a configuração.
-
O post é um pouco antigo, mas minha empresa usa o delphi 7 ainda, e consegui melhorar o tempo de compilação de: 1:45 para 0:30 segundos usando quase todos os componentes do acbr, além de melhorar a velocidade da tela de splash e da memória no geral. Segue o link caso alguém queira melhorar a velocidade do delphi 7 com windows 7, 8 e 10:
-
Valeu @EMBarbosa
Eu até havia pesquisado mas só tinha encontrado esse post que trata apenas do item 1
Muito obrigado
-
Pessoal primeiramente me desculpem pelo tamanho do post, mas vai abranger todo o Requisito XII e será de muito auxílio para toda a galera que está implementando na 02.04
Estou muito confuso em relação ao requisito XII: (Vou citar o trecho do requisito e em seguida faço a pergunta...)
Citar1. O PAFECF deve comandar automaticamente a emissão pelo ECF
da Leitura da Memória Fiscal, contendo os dados relativos ao mês
imediatamente anterior, quando da emissão da primeira Redução Z de
cada mês, exceto no caso de ECF cujo software básico execute esta
função.Até aqui tudo bem... (os ecfs novos já estão configurados para executar essa função).
Citar2. O PAFECF deve, quando da emissão da primeira Redução Z de
cada mês, comandar automaticamente a gravação de arquivo eletrônico
no formato binário com dados extraídos do dispositivo de Memória
Fiscal do ECF, relativo ao mês imediatamente anterior.No ponto 2 acima, os ecfs novos tbm implementam... correto?
Citar3. O PAFECF deve, quando da emissão da primeira Redução Z de
cada mês, comandar automaticamente a gravação de arquivo eletrônico
no formato binário com dados extraídos do dispositivo de Memória de
Fita Detalhe do ECF, relativo ao mês imediatamente anterior.No ponto 3 acima, o arquivo citado é esse:
ACBrECF.PafMF_ArqMFD(caminho)
Se sim, ele tbm é gerado automaticamente pelo ecf?
Citar4. Os arquivos eletrônicos a que se refere os itens 2 e 3 devem ser
gravados no mesmo subdiretório onde está instalado o PAFECF com
nome “xxxxxx_aaaammdd_hhmmss.MMM”, onde “xxxxxx” representa o
número de fabricação do ECF, “aaaammdd” representa a data de
geração do arquivo, “hhmmss” representa o horário de geração do
arquivo e MMM, representa o tipo de arquivo, devendo o PAFECF
assinálos digitalmente criando um arquivo TXT com mesmo nome
contendo uma linha com o registro tipo EAD especificado no requisito
XXXI.
Esse ponto é tranquilo, então vamos para o próximo:
Citar5. Em relação aos itens 2 e 3 deste requisito, sempre que a função não
for disponibilizada pelo software básico do ECF, o PAFECF deve gerar
um arquivo de log, contendo uma linha com o número de fabricação do
ECF e versão do software básico deste e outra linha contendo a
assinatura digital do PAFECF com o registro tipo EAD especificado no
requisito XXXI.
Finalmente, no último ponto deste requisito, citado logo acima, caso meu ecf (que está sendo usado na homologação) não possua função de executar automaticamente quais funções no acbrecf devo usar para gerar o itens 2 e 3?
-
1 hora atrás, André Ferreira de Moraes disse:
A propriedade EnviarBlocoX.XML deve conter o conteúdo do XML e não o path para o arquivo.
Muito obrigado André, realmente era isso o erro.
Agora estou com outro erro:
<EnviarResult> <?xml version="1.0" encoding="utf-8"?> <ReducaoZResposta xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Codigo>9</Codigo> <Mensagem>Erro na validação do schema: The 'NumeroCredenciamento' element is invalid - The value 'FVC0532015' is invalid according to its datatype 'Token' - The Pattern constraint failed.</Mensagem> </ReducaoZResposta> </EnviarResult>
Esse: NumeroCredenciamento não é o número do laudo? Onde e como obtenho esse número?
-
1 minuto atrás, Juliomar Marchetti disse:
Erro no servidor deles!
acho que deve de entrar em contato com o sefaz a informar a situação! não tem nada que possamos fazer!
Pelo que eu lí nos fóruns, o pessoal está enviando para o webservice de SC. Também configurei o componente pra lá em homologação.
Tem alguém usando esse web service?
-
Ao executar:
WebServices.EnviarBlocoX.Clear; WebServices.EnviarBlocoX.XML := caminho + nomeArquivo; WebServices.ValidarBlocoX.ValidarEcf := True; WebServices.ValidarBlocoX.ValidarPafEcf := True; WebServices.EnviarBlocoX.Executar; Clipboard.AsText := WebServices.EnviarBlocoX.RetWS;
Estou recebendo no clipboard o sequinte:
<EnviarResult> <?xml version="1.0" encoding="utf-8"?> <EstoqueResposta xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Codigo>9</Codigo> <Mensagem> ORA-01400: cannot insert NULL into ("USR_SAT_SIV"."SIV_ESTOQUE_RECEPCAO"."NU_VERSAO_XML") ORA-06512: at "USR_SAT_SIV.PKG_SIV_ESTOQUE", line 145 ORA-06512: at line 1 </Mensagem> </EstoqueResposta> </EnviarResult>
O xml que eu envio está em anexo.
-
Abra o delphi -> Componentes -> Instal packages
Encontro o pacote do fortes e depois remova.
Qualquer diretório. No meu caso coloque em no disco c, lembre-se de dar permissão na pasta adicionar nas exclusões do anti-virus
Com o avast só funciona se colocar nas exclusões.
-
Dá um olhadinha em:
Quando a usb virtualizar a COM a configuração da velocidade também deve ser configurada.
-
Carlos André além de modelo e porta você precisa configurar a velocidade na propriedade: ACBrECF.Device.Baud
Com o EcfTeste aberto na aba ECF clique no botão: Serial e selecione o valor na opção: Baud Rate
O valor correto é impresso na impressora ao ligá-la com a tecla avanço funcionando. (que é configurável).
Aconselho usar em 115200 pois é mais rápido.
Instalador não compila pacotes para Delphi 10.2 Tokyo Win64
em Dúvidas Gerais sobre o ACBr
Postado
Também ocorreu comigo, invalid type cast na função: NativeUInt no delphi 7.