¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Problema ao analisar XML no iOS com SDK SUP OData: Como resolver o erro NSInvalidArgumentException?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 2 Vistas
0
Cargando...

Olá,

(Eu havia postado isso no fórum de desenvolvimento do iPhone/iPad, mas quero consultar os especialistas deste fórum se já passaram por isso antes ou não, estou conectando do iOS->SAP Netweaver Gateway através do OData)

Esta é a primeira vez que estou lidando com o SDK OData SUP iOS. Construí os aplicativos com base nos guias da SDN.

Terminei de construir o Modelo e a classe de Dados no SAP, e o serviço de gateway está funcionando bem. Consigo enviar a URL no meu navegador e obter a resposta de volta com o XML esperado.

Agora, estou construindo um aplicativo iOS, que enviará a mesma URL de volta para o SAP, e receberá o XML. Estou usando o SDK SUP OData para iOS, o guia do desenvolvedor está disponível aqui: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc01708.0210/doc/html/nkr1311702599475...

O aplicativo envia a URL com o componente SDMConnectivity, através do HTTPRequest, e a conexão com o SAP funciona bem, e o XML do documento de serviço esperado é obtido corretamente. O próximo passo é analisar o XML do documento de serviço e convertê-lo em um objeto de documento de serviço em Objective C. Faço a análise com o componente SDMParse. O problema surge aqui.

1. Estou seguindo o guia, para analisar os documentos de serviço XML com este código:

SDMODataServiceDocument* sdmParseODataServiceDocumentXML(NSData* const cont_in);
 self.serviceDocument = sdmParseODataServiceDocumentXML([self.httpRequest responseData]);

2. O erro ocorre após executar a segunda linha de código, o erro mostrado no console é:

2011-12-29 18:21:31.412 OData_SUP_1[4032:15203] +[NSString isNullOrEmpty:] reconhecimento de seletor inválido enviado para a classe 0x17c9c3c
2011-12-29 18:21:31.414 OData_SUP_1[4032:15203] *** Terminando o aplicativo devido a uma exceção não capturada 'NSInvalidArgumentException', motivo: '+[NSString isNullOrEmpty:]: seletor não reconhecido enviado para a classe 0x17c9c3c'
*** Primeira pilha de chamadas:
(0xaeb062 0x39add0a 0xaecaed 0xa51f10 0xa51cf2 0x4091d 0x3a8fb 0x3b29b 0x3ba88 0x27731 0x1652672 0x4548b37 0x454edab 0x1650e0d 0x270f0 0x27b2d 0x2817a 0x3859 0xc802c6 0xc81196 0xc90033 0xc90ae8 0xc84399 0x1facfa9 0xabf1d5 0xa24042 0xa2292a 0xa21dd4 0xa21ceb 0xc80b97 0xc8238b 0x34f 0x2d15 0x1)
terminate called throwing an exception

Em seguida, fiquei preso nesse erro o dia todo. Não consigo depurar o código-fonte porque o SDK não fornece o arquivo de implementação. Tentei imaginar o melhor possível o que deu errado, mas não consigo resolver. Até tentei converter os Dados que recebi de [self.httpRequest responseData] em XML e compará-los com o resultado do Navegador e dos Guias, nada parece estar errado.

Alguém já passou por esse problema antes? Ou podem me aconselhar sobre o que posso fazer no Xcode para entender melhor o erro que obtive?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Wang,

Obrigado pela sua resposta. Segui o que me disseste, ao executar a aplicação no cliente, estou a obter um erro como Erro de Canal de Mensagens [Erro no controlador do canal de mensagens]. Deixa-me explicar tudo o que tenho em mãos.

Estou a tentar alcançar o fluxo ios<->Relayserver<->Servidor SUP<->NWGW<->SAP

Do lado do SUP.

1. Forneci uma URL de serviço, com essa URL consigo obter a resposta no navegador.

2. Nas propriedades de conexões da aplicação, inseri a URL no ponto final da aplicação.

3. No cliente consigo obter o ponto final, quando tento solicitar essa URL, obtenho um erro como o que mencionei anteriormente.

4. Na seção de conexão do SCC, no modelo de proxy, inseri a mesma URL. Ao testar a conexão, recebi uma falha no ping.

Do lado do SAP.

1. Criei um serviço de canal genérico e não um serviço de canal oData.

2. Configurei o ponto final de push no SAP.

O canal causará algum problema e quais são todas as configurações que preciso manter do lado do SAP? Quando consigo ver a resposta no navegador, por que o teste de conexão ao proxy falha? Estou realmente preso, podes por favor ajudar-me a resolver este problema? Não consigo encontrar os passos corretos a serem seguidos. Se puderes, por favor, dá-me todos os passos que seguiste tanto no gateway como no SUP. Obrigado antecipadamente!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá DinyBee,

Suponho que você tem uma URL que pode obter resposta do seu Serviço de Gateway de Canal OData. Você pode testar isso em seu navegador. A URL deve ser algo como: http://gateway.company.com:8000/sap/opu/sdata/sap/APLICAÇÃO/XXXCollection?sap-client=100&$format=x...

Se a URL funcionar, você pode configurar uma Conexão de Aplicativo em seu SCC seguindo os passos:

1. Selecione Aplicativos, depois vá para a aba Conexão de Aplicativos

2. Registre um novo Usuário, com todas as informações corretas do Servidor, lembre-se de especificar seu código de ativação.

3. Depois de registrar o usuário, na mesma aba de Conexão de Aplicativos, selecione seu usuário e clique em Propriedades.

4. Vá para a opção Proxy, e insira a URL "http://gateway.company.com:8000/sap/opu/sdata/sap/APLICAÇÃO/" no Ponto Final do Aplicativo. Em seguida, clique em Aceitar.

5. No código de sua aplicação iOS, registre seu Aplicativo usando o objeto LiteSUPUserManager, e depois obtenha o Ponto Final do Aplicativo usando o objeto LiteSUPAppSetting.

6. Agora, seu aplicativo está online no SUP e também sabe a que URL se conectar.

7. A partir de agora, você pode usar o objeto SDMRequestBuilder para construir a solicitação e obter a resposta do Gateway OData.

Estes são apenas passos em alto nível para você usar como referência, consulte a documentação da Sybase para obter mais informações sobre os objetos mencionados.

Obrigado.

Saudações,

Edison Wang

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Wang,

Também estou tentando criar um aplicativo baseado em Odata no SUP2.1, mas fiquei preso desde o início. Como configurar a conexão do Proxy no SCC? Tenho uma URL de serviço, mas ao fornecê-la, recebo um erro de ping. Você pode me ajudar com esse problema, fornecendo os passos de configuração adequados para configurar o canal Odata no SUP?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Edison,

Não acredito que esta seja a seção correta do fórum para o seu problema, parece estar mais relacionado ao desenvolvimento de SUP / iOS.

Sugiro que pergunte no [fórum de suporte da Sybase](http://www.sybase.com/detail_list?id=11507) ou no [Projeto SUP no Code Exchange](https://cw.sdn.sap.com/cw/groups/sup-apps)

Saudações,

Ivan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?