Boa tarde, estou utilizando o ACBReSocial para fazer o envio através da leitura dos XMLs gerados pela minha aplicação, porém ao carregar vários eventos de vários tipos, somente os do primeiro tipo são carregados.
Segue o código realizado:
procedure TeSocialTransmissor.MontarEventosTeste;
begin
with FACBrComponent.Configuracoes.Geral do
begin
IdEmpregador:= '06376436000166';
IdTransmissor:= '06376436000166';
end;
FACBrComponent.Eventos.LoadFromFile(ExtractFilePath(Application.ExeName) + '/exemplos/empregador.xml');
FACBrComponent.Eventos.LoadFromFile(ExtractFilePath(Application.ExeName) + '/exemplos/cargo1.xml');
FACBrComponent.Eventos.LoadFromFile(ExtractFilePath(Application.ExeName) + '/exemplos/cargo2.xml');
FACBrComponent.Eventos.LoadFromFile(ExtractFilePath(Application.ExeName) + '/exemplos/cargo3.xml');
end;
Como pode ser visto, carrego um evento de empregador e outros 3 de cargo, porém somente o empregador é carregado.
CORREÇÃO PROPOSTA
Analisando o fonte encontrei onde está o problema, ele se encontra na unit (ACBReSocialEventos) no método (TEventos.LoadFromString), esse problema acontece porque quando é executado na segunda vez a primeira condição retorna True devido a já existir o evento empregador. Então para corrigir é preciso mudar a estrutura para que seja executado todos os métodos de adição dos eventos.
Segue imagem da alteração que foi realizada e após ela o lote com todos os eventos foi montado e enviado com sucesso:
Segue em anexo os XMLs usados para teste.
cargo1.xml
cargo2.xml
cargo3.xml
empregador.xml