Smart Device Apps

Olá, amigo Desenvolvedor ou curioso que caiu nesta página!

Durante estudos das ferramentas disponíveis no Genexus 16, reparei que nunca havia feito nenhuma aplicação offline. E acostumado a trabalhar com ele, sempre fiz minhas transações usando levels ou seja, todas as tabelas utilizando apenas um objeto. Exemplo:


Transação 1

Acontece que ao aplicar o Pattern Work With for Smart Devices, ele não apresentava erros e funcionava quando o banco era online, ou seja, salvando no servidor as alterações. Quando transformei a aplicação em Offline que começaram meus problemas. Quando a procedure que aplica as alterações feitas no dispositivo tenta subir as alterações no servidor, ele apresentava o erro 500 Internal Server Error com o a mensagem: json.org.json.JSONArray cannot be cast to java.lang.String.

Eu sabia que era relacionada a tabela filha "Customer" mas não entendia o porque, já que eu pensava que ele tratava a tabela filha como uma tabela independente. O que não é a realidade. 

Li  o artigo que My first Smart Devices offline application e vi que eles trabalham separando as tabelas, mesmo que elas sejam tabelas filhas em transações diferentes. No caso do exemplo deles, eles usam o CompanyId como chave estrangeira, mas no meu caso eu trato como uma tabela filha, ou seja, CompanyId e CustumerID compõe uma chave composta. 

A solução foi essa: separar os atributos de cada tabela em transações diferentes e PRONTO!

Minhas transações ficaram assim:

Transação 2 

Basta, ou utilizar os objetos Work With ou utilizar Business component para salvar e assim ativar a sincronização das tabelas. 

Espero que este post possa ajudar a alguém e fica aqui a promessa de novos posts no futuro!

Hoje, começamos a colocar alguns casos e algumas experiências usando ferramentas de desenvolvimento e metodologias que tivemos que passar e que não encontramos muitas referências, nem nos wiki da vida nem em grupos de discussão.

O primeiro foi sobre a ferramenta Genexus, uma ferramenta low-code torna a produção de sistemas e aplicativos simples e rápida. Não fiz uma introdução ao Genexus nem expliquei a fundo os objetos e estruturas que ele usa. Se quiser saber um pouco mais é só entrar no site deles clicando no link https://www.genexus.com/ ou entrar em contato conosco. Será um prazer ajudar!

Abraços, amigos!