Boa tarde, não sei se está correto mas consegui desta forma, Vou deixar aqui pois pode ajudar alguém que esteja com o mesmo problema:
tmCancelarNFSe:
begin
with CancelaNFSe do
begin
memoLog.Lines.Add('Método Executado: ' + MetodoToStr(tmCancelarNFSe));
memoLog.Lines.Add(' ');
memoLog.Lines.Add('Parâmetros de Envio');
memoLog.Lines.Add('Numero da NFSe: ' + InfCancelamento.NumeroNFSe);
memoLog.Lines.Add('Série da NFSe : ' + InfCancelamento.SerieNFSe);
memoLog.Lines.Add(' ');
memoLog.Lines.Add('Parâmetros de Retorno');
memoLog.Lines.Add('Situação: ' + Situacao);
memoLog.Lines.Add('Link : ' + Link);
memoLog.Lines.Add('Sucesso : ' + BoolToStr(Sucesso, True));
memoLog.Lines.Add(' ');
memoLog.Lines.Add('Retorno do Pedido de Cancelamento:');
memoLog.Lines.Add('Situação : ' + RetCancelamento.Situacao);
memoLog.Lines.Add('Data/Hora: ' + DateToStr(RetCancelamento.DataHora));
memoLog.Lines.Add('Mensagem : ' + RetCancelamento.MsgCanc);
memoLog.Lines.Add('Sucesso : ' + RetCancelamento.Sucesso);
memoLog.Lines.Add('Link : ' + RetCancelamento.Link);
memoLog.Lines.Add('Nome Arq.: ' + PathNome);
if ACBrNFSeX1.WebService.CancelaNFSe.RetCancelamento.Situacao = 'Cancelado' then
begin
try
Sucesso_Canc := true;
cancelaNFS(vCodigoCanc, qryNFSE.FieldByName('nfs_Numero').AsString);
exec;
except
on e: Exception do
begin
If dtmUsinagem.AdoUsinarte.InTransaction then
dtmUsinagem.AdoUsinarte.RollbackTrans;
Alerta(ErroExcept, 'Atenção!!!',
'Erro ao cancelar NFSE.' + #13 + 'Motivo: ' + e.Message);
Exit;
end;
end;
end
else
begin
Sucesso_Canc := false;
if (ACBrNFSeX1.Configuracoes.Geral.Layout = loABRASF) and
(ACBrNFSeX1.Configuracoes.Geral.Provedor = proVersaTecnologia) then
begin
if Erros.Count > 0 then
begin
for i := 0 to Erros.Count -1 do
begin
if (Erros[i].Codigo = 'E906') and
(Erros[i].Descricao = 'Esta NFSe já foi cancelada') then
begin
Sucesso_Canc := true;
cancelaNFS(vCodigoCanc, qryNFSE.FieldByName('nfs_Numero').AsString);
end;
end;
end;
end;
end;
LoadXML(XmlEnvio, WBXmlEnvio, 'temp1.xml');
LoadXML(XmlRetorno, WBXmlRetorno, 'temp2.xml');
ListaDeErros(Erros);
ListaDeAlertas(Alertas);
end;