Bom dia.
Estou enviando correção para NFSeX do provedor Siat.
Tive situações onde retornou o Sucesso=N mas não capturou o motivo do erro, pois não estava no padrão esperado de Codigo/Descricao.
Segue exemplo:
<RetornoConsultaLote xmlns:ns1="http://localhost:8080/WsNFe2/lote" xmlns:tipos="http://localhost:8080/WsNFe2/tp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost:8080/WsNFe2/lote http://localhost:8080/WsNFe2/xsd/RetornoErro.xsd "><Cabecalho><CodCidade>427</CodCidade><Sucesso>N</Sucesso><Versao>1</Versao><Erros><Erro>RPS_001_002: Sistema temporariamente bloqueado para novas requisições, aguarde pelo menos cinco minutos antes da próxima consulta/envio.</Erro></Erros></Cabecalho></RetornoConsultaLote>
Segue alteração que eu fiz para contornar o problema.
procedure TACBrNFSeProviderISSDSF.ProcessarMensagemErros(
[..]
ANodeArray := ANode.Childrens.FindAllAnyNs(AMessageTag);
for I := Low(ANodeArray) to High(ANodeArray) do
begin
Codigo := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Codigo'), tcStr);
Descricao := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Descricao'), tcStr);
if Descricao = '' then begin
Descricao := ANodeArray[I].AsString;
end;
Obrigado.
ISSDSF.Provider.pas