Ir para conteúdo
  • Cadastre-se

Igor Grava

Membros
  • Total de ítens

    4
  • Registro em

  • Última visita

Reputação

0 Neutro

Sobre Igor Grava

  • Rank
    Novato

Profile Information

  • Sexo
    Masculino
  • Localização
    Santos,SP

Últimos Visitantes

68 visualizações
  1. Certo, estou buscando alternativas pois pelo que verificamos o problema está justamente dentro da procedure Assinar da Procedure ACBrDFeXsLibXml2, me parece ser justamente nestas linhas: if URI = '' then Canon := AnsiString(CanonC14n(aDoc, docElement)) else Canon := AnsiString(CanonC14n(aDoc, infElement));
  2. No cliente o estoque tem cerca de 10mil produtos, Segue o código: if DecimalSeparator = '.' then begin DecimalSeparator := ','; ThousandSeparator:= '.'; end; with AACBrBlocoX do begin with Estoque do begin DataReferencia := DATE; //Abrindo Query EstoqueAtual DM_BlocoX.QEstoqueAtual.Close; DM_BlocoX.QEstoqueAtual.Open; DM_BlocoX.QEstoqueAtual.First; //Abriu Query EstoqueAtual Produtos.Clear; while not DM_BlocoX.QEstoqueAtual.EoF do begin with Produtos.Add do begin Codigo.Tipo := tpcEAN; Codigo.CodigoProprio := DM_BlocoX.QEstoqueAtualPRODUTO.AsString; Codigo.CodigoCEST := DM_BlocoX.QEstoqueAtualCODIGO_CEST.Value; Codigo.CodigoGTIN := DM_BlocoX.QEstoqueAtualEAN.Value; Codigo.CodigoNCMSH := DM_BlocoX.QEstoqueAtualNCM.Value; Descricao := DM_BlocoX.QEstoqueAtualDESCRICAO.Value; ValorUnitario := DM_BlocoX.QEstoqueAtualPRECO.Value; if DM_BlocoX.QEstoqueAtualIPPT.Value = 'T' then Ippt := ipptTerceiros else Ippt := ipptProprio; SituacaoTributaria := stTributado; Aliquota := DM_BlocoX.QEstoqueAtualALIQUOTA_ICMS.Value; Unidade := DM_BlocoX.QEstoqueAtualUNIDADE_MEDIDA.Value; Quantidade := DM_BlocoX.QEstoqueAtualSALDO.Value; IndicadorArredondamento := False; end; DM_BlocoX.QEstoqueAtual.Next; end; //Fim da Query - Salvar XML GerarXML(True); end; end; if DecimalSeparator = '.' then begin DecimalSeparator := ','; ThousandSeparator:= '.'; end;
  3. Elton, boa tarde Tentei desta forma que enviou, explorando dentro da função GerarXML vi essa chamada e fiz desta forma: DM_BlocoX.QXMLEstoque.Close; DM_BlocoX.QXMLEstoque.ParamByName('inscricao_estadual').Value := DM_PDV.ParametrosINSCRICAO_ESTADUAL.Value; DM_BlocoX.QXMLEstoque.Open; oBlocoX.WebServices.EnviarBlocoX.XML := oBlocoX.SSL.Assinar(DM_BlocoX.QXMLEstoqueXML_CONTEUDO.Value, 'Estoque', 'Mensagem'); Após alguns problemas com a formatação dos valores numéricos, alguns com 3 casas decimais e todos utilizando vírgula como separadores decimais, consegui o envio sem problemas de minha máquina, porém em teste no cliente justamente a linha do Assinar que está demorando cerca de 10 minutos agora e ainda não finalizou, ainda aguardando para ver se fica na casa dos 30 minutos como pelo GerarXML ou se terá alguma diferença mesmo. Como essa função do Assinar é chamada dentro da GerarXML estou achando que é justamente ela que causa a lentidão, embora cheguei a testar a GerarXML enviando o parâmetro Assinar = False e demorou da mesma forma.
  4. Estou gerando o BlocoX de Estoque e ReduçãoZ, seguindo os exemplos do ACBr versão Lazarus sem problemas em minha máquina de desenvolvimento, porém ao testar nas máquinas de PDV do Cliente a geração do XML de Estoque está demorando cerca de 30 minutos, me parece que o problema está na função GerarXML, justamente quando são criados os nós baseados em como os objetos de produto são informados, pelo que verifiquei na base de dados do cliente existem cerca de 10mil produtos, mas ainda não me parece ser justificável essa demora apenas pelo volume de dados, pode ser até performance nas máquinas do cliente. Buscando solucionar isso, pensei na alternativa de gerar o XML por outras rotinas, como vi neste Tópico, porém não encontrei como informaria o XML externo para o ACBrBlocoX assinar e enviar, existe algum exemplo deste cenário? A propriedade ACBrBlocoX.Estoque.XMLOriginal é protected. Tentei da seguinte forma sem sucesso: DM_BlocoX.QXMLEstoque.Close; DM_BlocoX.QXMLEstoque.ParamByName('inscricao_estadual').Value := DM_PDV.QParametrosINSCRICAO_ESTADUAL.Value; DM_BlocoX.QXMLEstoque.ParamByName('numero_credenciamento').Value := '123456789'; DM_BlocoX.QXMLEstoque.Open; ACBrBlocoX.WebServices.EnviarBlocoX.XML := DM_BlocoX.QXMLEstoqueXML_ESTOQUE.Value; Gerando o XML diretamente pelo SQL, porém neste caso o XML não seria assinado, certo?
×