consegui resolver criando em separado e evento e adicionado ele posteriormente.
procedure PrestacaoServicoDesacordoCTe(xObs, UFTomador, CNPJTomador, Chave : string);
var
iLote: Integer;
obCteSefaz : TCteSefaz;
novoEvento : TInfEvento ;
begin
novoEvento := TInfEvento.Create;
novoEvento.cOrgao := UFtoCUF(UFTomador);
novoEvento.chCTe := Chave;
novoEvento.CNPJ := RemoverCaracteresEspeciais(CNPJTomador);
novoEvento.dhEvento := now;
novoEvento.tpEvento := tePrestDesacordo;
novoEvento.detEvento.xOBS := xObs;
obCteSefaz := TCteSefaz.Create;
with obCTeSefaz do
begin
ACBrCTe.Conhecimentos.Clear;
ACBrCTe.EventoCTe.Evento.Clear;
ACBrCTe.EventoCTe.Evento.New.InfEvento := novoEvento;
iLote := 1; // Numero do Lote do Evento
ACBrCTe.EnviarEvento(iLote);
ACBrCTe.Free;
end;
obCTeSefaz.Free;
end;
Parece que o ADD faz algum tipo de validação e acabava por "eliminar" o conteúdo. Ou não esta sendo passado ao adicionar... Não achei isso no código, apenas especulação.
De qualquer forma, fica essa solução temporária, parece gambiarra mas funcionou.
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.