Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 248 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa Tarde

Encontrei um problema ao consultar o boleto na API do Sicoob.

no arquivo ACBrBoletoRet_Bancoob.pas linha 130

esta disparando uma exceção devido ao retorno da consulta não ser do tipo array conforme documentação da api:

image.png.f4a3dd13ed86e67be0ea3c9f037e7cd0.png

 

então fiz a seguinte alteração para continuar preenchendo o componente, não sei se é a melhor forma, mas precisar ser ajustado senão a consulta não alimenta o componente mesma retornando os dados corretamente.

alterei a linha

aJsonViolacoes := aJson.Values['resultado'].AsArray;

para:

        try
          aJsonViolacoes := aJson.Values['resultado'].AsArray;
        except
          aJsonViolacoes := TJsonArray.Create;
        end;

segue o arquivo em anexo.

   

ACBrBoletoRet_Bancoob.pas

Postado

poderia utilizar a seguinte abordagem então para resolvermos o except:

        if (aJson.Values['resultado'].ValueType = jvArray) then begin
            aJsonViolacoes := aJson.Values['resultado'].AsArray;
        end else begin
            aJsonViolacoes := TJsonArray.Create;
       end;

neste caso verifico se se o tipo é um Array senão crio o objeto vazio para continuar a execução sem causar erros.

  • Solution
Postado

Bom dia.

É só adicionar um if pelo tipo da operação. Por que nesse caso não tem o objeto status que esta tentando carregar ali.

Como mencionei em

 

  • Este tópico foi criado há 248 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

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.