Ir para conteúdo
  • Cadastre-se

jackson Lima

Membros
  • Total de ítens

    148
  • Registro em

  • Última visita

Posts postados por jackson Lima

  1. @André Ferreira de Moraes

    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 ;

    :?

  2. 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?

  3. @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.

     

    • Curtir 1
  4. 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

    • Curtir 3
  5. 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> :-D

  6. @André Ferreira de Moraes

    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

  7.  

    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>

    @André Ferreira de Moraes

    Está faltando a tag <Parametros> abrangendo as duas tags: <Parametro>

  8. @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>

     

  9. 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:

    http://andy.jgknet.de/blog/ide-tools/delphispeedup/

  10. 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...)

    Citar

    1. O PAF­ECF 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).

    Citar

    2. O PAF­ECF 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?

    Citar

    3. O PAF­ECF 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?

    Citar

    4. Os arquivos eletrônicos a que se refere os itens 2 e 3 devem ser
    gravados no mesmo subdiretório onde está instalado o PAF­ECF 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 PAF­ECF
    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:

    Citar

    5. 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 PAF­ECF 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 PAF­ECF 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? 

  11. 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?

  12. 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?

     

  13. 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.

     

    BLOCOX_ReducaoZ_01112016-085835.xml

  14. 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.

×
×
  • 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.