Sincronização Problemas na Execução de WebService



  • Tive uma duvida referente a Webservice no link: http://forum.softwell.com.br/viewtopic.php?f=9&t=527

    Na aplicação web apos solucionadas minhas duvidas conforme link acima esta agora tudo funcionando. Agora quando exporto para o Tablet no simulador quando a aplicação que consome o Webservice tenta acessar o mesmo da um erro na tela do tablet, confirme imagem em anexo.

    Como consigo solucionar esse problema? No Tablet posso consumir um web service ?


  • Qual função você está usando para chamar o WS no dispositivo?


  • Prezado Raphael,


    Eu estava usando o fluxo errado (Chamar Serviço Web) ao invés de usar o serviço (Chamar Serviço Web para Dispositivos Moveis) obrigado.

    Fiz a correção, agora após corrigir esta me retornando o erro em anexo.
    [305_erro_maker2.jpg](/assets/uploads/files/305_erro_maker2.jpg)


  • Não consigo visualizar sua imagem :?


  • Mensagem de Erro:

    Type Error: Cannot read property 'length' of undefined


  • humm.. complicado de saber se o problema é na
    função ou em outra coisa no seu fluxo.. :?
    qual usuário você usa para compilar ?
    Posso tentar ver se houve alguma notificação na compilação... 8-)


  • usuario: PAMARQUES
    empresa: FONTDATA TECNOLOGIA


  • Pelo que verifiquei, não existe nenhum tipo de notificação na geração
    do seu projeto gerado no dia 14/05/2012 às 10:37:44...
    Ou seja, muito provavelmente é algo na construção do fluxo..

    Seria interessante que você debugasse, pois nós não temos acesso ao seu sistema ..
    Tente isolar o erro..executando processo por processo pra ter certeza que o problema é no WS


  • Tarso,



    Se executo o fluxo na aplicação WEB com com Web Services para Web os dois fluxos funcionam, tanto o que publica o WS tanto o que consome.

    Se execute atra vés do WS para Dispositivos Moveis é que causa a falha. Tem como debugar o Fluxo no dispositivo movel ?


  • Qual o retorno do fluxo que você está consumindo no WS?


  • O WebService consistema em receber uma data e retorna os registros modificados em uma tabela. Esses são retornados como uma lista.

    A aplicação Mobile recebera essa lista e irá gravar no banco de dados do Tablet os registros dessa lista.

    Como aplicação Web tudo funciona nos dois fluxos, mas no emulador que não funciona.


  • OK,
    Essa função não retorna Objetos Complexos.. ou seja.. Lista , Mapa , Etc..
    Somente Objetos primitivos... string e inteiro..

    Terá que retornar uma STRING.. ao invés de lista.. ;)


  • Mas Tarso,


    O mesmo erro que ocorre nesse fluxo que acessa um Webservice que retorna uma lista, ocorre em outro fluxo, que acesso um outro webservice e que me retorna uma String com o nome de um cliente.

    Não acredito que o erro esteja nos fluxos que publicam os webservices mas sim nos fluxos que consomem esses webservices através do dispositivo movel, através da função Chamar Serviço Web para Dispositivo Móvel.

    Estou usando essa função e passando os parametros: endereço do web service, porta, nome do metodo, nome do parametro e valor do parametro, e o retorno disso estou atribuindo a uma lista.

    No outro fluxo que tambem ocorre o erro estou enviando o codigo de um cliente e o webservice me retorna o nome dele como uma string.

    Acredito que esteja certa a forma como estou usando.


  • [quote="pamcba"]Mas Tarso,


    O mesmo erro que ocorre nesse fluxo que acessa um Webservice que retorna uma lista, ocorre em outro fluxo, que acesso um outro webservice e que me retorna uma String com o nome de um cliente.

    Não acredito que o erro esteja nos fluxos que publicam os webservices mas sim nos fluxos que consomem esses webservices através do dispositivo movel, através da função Chamar Serviço Web para Dispositivo Móvel.

    Estou usando essa função e passando os parametros: endereço do web service, porta, nome do metodo, nome do parametro e valor do parametro, e o retorno disso estou atribuindo a uma lista.

    No outro fluxo que tambem ocorre o erro estou enviando o codigo de um cliente e o webservice me retorna o nome dele como uma string.

    Acredito que esteja certa a forma como estou usando.[/quote] Creio então que pode haver um bug na função... :o seria melhor você emcaminhar isso ao suporte..


  • O tipo do retorno é variante ou letras no WS que retorna apenas o nome do cliente? tipos complexos ainda não aceitos como retorno para esta função no mobile, ou seja, por mais que o retorno seja uma string se o tipo dela não for letras (for variante) este erro ocorrerá.


  • Raphael,


    No fluxo que publica o webservices estava como Variant mesmo o tipo de variavel, mudei para Letras e continua o mesmo problema.


  • Sua ultima compilação 15/05/2012 20:16:39 - [b]function.ebfResultSetToList not found.[/b]
    Existe uma função Chamanda [b]Tabela pra Lista[/b] que você está usando, que
    não funciona no Mobile.. :roll:


  • É que estou tendo problemas em dois webservices em um eu retorno uma lista mesmo. Mas no outro eu retorno apenas uma variavel do tipo Letras e causa o mesmo erro.


  • Faça o seguinte então:

    - Salve o projeto no Maker;
    - pare o servidor de aplicações (possivelmente tomcat)
    - vá no contexto do webrun onde estão publicados os WS e procure pela pasta webservices([u][i]C:\Program Files (x86)\Softwell Solutions\Maker 2.7\Webrun 2\tomcat\webapps\webrun\webservices[/i][/u])
    - dentro desta pasta exclua o arquivo [i][u]<sigla do sistema>Servisces.jws[/u][/i]
    - inicie novamente o servidor de aplicações
    - acesse o sistema que contém os WS (para recriar o arquivo .jws apagado)
    - teste novamente

    Pode ser que ainda esteja dando erro pelo fato do WS não estar atualizado, este procedimento garante que o WS está atualizado.
    :)


  • Issso eu ja havia efetuado, inclusive apagando a pasta WEBRUN completamente e acessando para que ele possa recria-la e ocorre o mesmo problema.

Log in to reply