Pesquisar na Comunidade
Showing results for tags 'thread'.
Encontrado 8 registros
-
O usuário do discord GEW Tecnologia reportou sucesso ao implementar a ACBrLibNFe Multithread (MT) com o Node, fez da seguinte forma: export const AcbrNfe = ffi.Library(libPath, { NFE_Inicializar: ['int', ['pointer', 'string', 'string']], NFE_Finalizar: ['int', ['pointer']], NFE_ConfigGravarValor: ['int', ['pointer', 'string', 'string', 'string']], NFE_CarregarINI: ['int', ['pointer', 'string']], NFE_ObterXml: ['int', ['pointer', 'int', 'string', 'string']], NFE_Enviar: ['int', ['pointer', 'int', 'bool', 'bool', 'bool', 'string', 'string']], NFE_EnviarEmail: ['int', ['pointer', 'string', 'string', 'bool', 'string', 'string', 'string', 'string']], }); import * as ref from 'ref-napi'; import { AcbrNfe } from 'src/config/acbrlib/ffi/nfe.ffi'; let handle = ref.alloc('pointer'); AcbrNfe.NFE_Inicializar(handle, eArqConfig, eChaveCrypt); handle = ref.readPointer(handle, 0, 8192); AcbrNfe.NFE_ConfigGravarValor(handle, item.sessao, item.chave, item.valor); AcbrNfe.NFE_CarregarINI(handle, conteudoIni); AcbrNfe.NFE_ObterXml(handle, 0, alocResposta, alocTamanho); AcbrNfe.NFE_Enviar(handle, numeroLote, imprimirDanfe, enviarEmModoSincrono, enviarArquivoZipado, alocResposta, alocTamanho); AcbrNfe.NFE_EnviarEmail(handle, dadosEmail.destinatario, dadosEmail?.conteudoXml, dadosEmail.isEnviarPdf, dadosEmail.assunto, dadosEmail?.cc, dadosEmail?.anexos, dadosEmail.mensagem); AcbrNfe.NFE_Finalizar(handle); Ele baixou este exemplo: https://stsw.com.br/exemplos-mt-acbr-lib.zip Ele cita estes 2 postes como base de conhecimento. Link da postagem oficial do discord, clique aqui Obrigado GEW Tecnologia pela colaboração !
-
Olá, No meu sistema necessito fazer o processamento de envio de e-mail porém para uso via thread não consigo rastrear a origem do envio. Para tanto fiz um patch para poder copiar o id do registro no banco de dados para a propriedade "Tag" do objeto AcbrMail para que depois no retorno de envio da thread consiga recuperar o id do registro lendo a propriedade no evento OnMailProcess. ACBrMail.pas.patch
-
Erro de "CoInitialize" na emissão de nfe usando Thread.
um tópico no fórum postou carlosmarian ACBrNFe
Olá, Estou efetuando a migração para a trunk2, a primeira etapa de instalação já consegui ultrapassar. Estou agora adaptando o sistema as alterações do ACBr. Minha aplicação efetua emissão de notas(transmissão para sefaz) usando threads, na versão trunk foram efetuados ajustes adicionando as chamadas aos métodos de "CoInitialize" e "CoUninitialize" em alguns pontos do processo(exemplo: "ValidaMSXML", "AssinarMSXML", ..). Agora na nova versão(trunk2) a chamada("CoInitialize" e "CoUninitialize") ficou restrita ao "initialization" e "finalization" da classe "ACBrDFeCapicom". Este ajuste esta trazendo alguns erros ao consumir webservice(consulta de status), assinatura e/ou validação do XML, apresenta falha "CoInitialize não foi chamado, ClassID: {XXXXX". Analisando o código fiz alguns ajustes e consegui eliminar estes erros. Gostaria de avaliar com vcs se estes ajustes são válidos e se podem ser adicionados ao repositório. Os ajustes se são no fonte(ACBrDFeCapicom.pas) e basicamente a chamada do "CoInitialize" e "CoUninitialize" dentro do método de assinatura e validação e tbm no "CarregarCertificado". Segue em anexo o fonte ajustado. No aguardo. ACBrDFeCapicom.pas -
Bom dia Pessoal Segue em anexo as correções para o boleto usando fastreport funcionar como thread, trabalho com datasnap e intraweb e estava tendo vários problemas, com as correções que fiz em anexo consigo resolver os problemas e já está em produção. Inclui atualização no demo do boleto que havia um erro e uma alteração para funcionar em fastreport basta documentar a linha do arquivo report.inc que está no diretório. Grato Boleto.zip
-
Gostaria de sugerir uma alteração para o fonte ACBrMDFeUtil.pas no método ValidaModalMSXML pois não esta disponível CoInitialize(nil) e o CoUninitialize, se faz necessário para o acesso em um ambiente de threads no Delphi (no meu caso Servidor REST Delphi XE5), verifiquei que no método ValidaMSXML já possui, somente adicionei no método ValidaModalMSXML. Se for possível enviar essa alteração para o SVN agradeço. O fonte alterado foi este que esta em anexo. ACBrMDFeUtil.pas ACBrMDFeUtil.pas
- 3 replies
-
- CoInitialize
- ValidaModalMSXML
- (e 3 mais)
-
Boa tarde, pessoal. Tive o problema retratado neste tópico qual dentro de um bloco Try/Except não conseguia capturar caso ocorria uma exception dentro da Thread. Implementei o envio "normal" como também existe na unit do CT-e. Espero ter colaborado Abraços Gustavo Kato ACBrBoleto.pas
-
Dúvida - Mensagens Do Webservice Do Acbr Nf-E/nfc-E Com Thread
um tópico no fórum postou Leandro Araújo ACBrNFe
Olá, bom dia. Estou com uma dúvida. Passamos o processamento da NF-e/NFC-e para uma thread no nosso sistema, de modo a evitar que tome conta da thread principal. Tenho duas threads, uma que executa o envio e outra que atualiza uma barra de progresso (Synchronized) no form e completa a atualização dos componentes na tela assim que a outra notifica a finalização do processo de envio. Minha única dúvida é com relação aos diálogos do webservice que o ACBr lança na tela, existe alguma maneira, não sei, de jogar esses diálogos na thread principal, da VCL, ou os mesmos já executam na thread principal? Sendo que a VCL ocupa a fila principal do programa... Acontece que estou tendo um problema ao voltar para o formulário, está dando um erro no .ShowModal nesse formulário, e acontece após mostrar alguma mensagem do WebService. Também vou verificar com quem desenvolveu a parte de chamar o form, mas por enquanto, alguém tem alguma idéia? Obrigado. -
Boa noite pessoal, Estou afastado a algum tempo do projeto e parece que muita coisa mudou. Comecei a testar o componente de Email, TACBrMail, para automatizar o envio de notas e outros arquivos e verifiquei que o componente não está trabalhando com thread no método de envio, portanto fiz a alteração e estou disponibilizando para a comunidade. O método send foi protegido e um novo método "Enviar" tomou o seu lugar como método publico. Realizei o teste no Delphi 7 e XE3 e em ambos está funcionando perfeitamente. ACBrMail.pas ACBrMail.pas