4D v16Configuração da aplicação Wakanda |
||||||||||||||||||||||||||||||||
|
4D v16
Configuração da aplicação Wakanda
|
Parâmetro | Tipo | Descrição |
nomLocal | Cadeia | Nome local do catálogo remoto |
endereço | Cadeia | Endereço IP do servidor de dados remoto (utilize HTTPS para maior segurança) |
usuário | Cadeia | Nome de usuário para a abertura da sessão |
senha | Cadeia | Senha para a abertura da sessão |
viaArquivoJS | Cadeia | (opcional) Via de acesso do arquivo JavaScript |
timeout | Num | (Opcional) Tempo de espera para conexão cliente a base 4D em minutos (por padrão 60) Lembre que este parâmetro só é levado em consideração se a conexão estiver aberta com um usuário e uma senha que não estejam em branco (é recomendado especialmente para proteger os acessos 4D Mobile do lado do servidor 4D) |
Para uma descrição detalhada, consulte a documentação do método mergeOutsideCatalog() no manual Wakanda Server-Side API.
O objeto model indica o "modelo" atual da aplicação Wakanda, em outras palavras, o conjunto de suas "classes de dados” (tabelas) e métodos. No contexto de uma arquitetura 4D Mobile, o modelo Wakanda pode estar vazio. Se a aplicação Wakanda já contém os objetos, as classes e métodos referenciados da aplicação 4D remota se fusionam ao modelo local quando utilize o método mergeOutsideCatalog().
Quando se estabelece a conexão corretamente, as tabelas 4D "expostas" se adicionam as classes do modelo do lado Wakanda. Em Wakanda Enterprise Studio, aparecem as tabelas remotas entre a lista de classes do modelo local. Os elementos externos se indicam com uma flecha vermelha. O catálogo externo também está representado em Wakanda Studio por um catálogo específico (chamado localName.waRemoteCatalog) que também se indica por uma flecha vermelha:
Nota: As extensões de arquivo podem ser ocultas em Wakanda Studio.
Pode fazer duplo clique neste arquivo para ver o catálogo externo no editor de modelos de Wakanda Enterprise Studio:
model.mergeOutsideCatalog("base4D","localhost:80", "admin", "123456");
model.mergeOutsideCatalog("base4D", { hostname: "http://localhost:8050", user: "wak", password: "123456", jsFile: "Model2.js" timeout: 15 });
Os métodos openRemoteStore() e addRemoteStore() são formas alternativas de estabelecer vínculos dinâmicos entre uma aplicação Wakanda e uma aplicação 4D.
Como mergeOutsideCatalog(), estes métodos oferecem acesso dinâmico aos dados das bases 4D mas funcionam de uma maneira diferente:
openRemoteStore() só devolve uma referência válida no contexto JavaScript atual, enquanto addRemoteStore() mantém a referência durante toda a sessão.
Para obter mais informação, consulte a descrição dos métodos openRemoteStore() e addRemoteStore() na documentação Wakanda.
Qualquer que seja o modo de conexão com o datastore 4D remota (usando a caixa de diálogo "Connect to Remote Datastore" de Wakanda Studio ou executando um método JavaScript), deve escolher se as classes (tabelas) remotas devem ser fusionados com o modelo ativo, ou ser localizado em um modelo dedicado.
Esta escolha se resume na seguinte tabela:
Para... | fusionar ao modelo ativo | utilizar um modelo dedicado |
Diálogo "Connect to Remote Datastore" | Selecionar Merge with active Model | Desselecionar Merge with active Model |
Método JavaScript | mergeOutsideCatalog() | openRemoteStore() ou addRemoteStore() |
Quando fusiona as tabelas 4D remotas com o modelo ativo, se integram ao modelo por padrão da aplicação (cujo datastore é o objeto ds), como as classes locais. Os princípios de acesso aos dados são os seguintes:
var invoiceList = ds.INVOICES.all(); //acesso a tabela INVOICES do catálogo por padrãol
Estes princípios facilitam o desenvolvimento das aplicações 4D Mobile mas podem dar lugar a conflitos de nomes entre as tabelas, em particular quando a aplicação Web chama a vários datastores. Neste caso, pode ser útil para localizar os elementos remotos em um modelo dedicado.
Quando as tabelas 4D remotas não se fundem com o modelo ativo, utilizam um modelo "dedicado". As classes remotas então utilizam um espaço de nomes que é específico para o datastore ao que a aplicação está conectada e não se podem acessar no objeto ds. Desta maneira é possível utilizar várias tabelas com o mesmo nome em várias datastores diferentes:
var invoiceList = my4Dstore.INVOICES.all(); //access to the INVOICES table of the my4Dstore datastore
No entanto, este princípio tem certas limitações na versão atual de Wakanda Enterprise:
Assim que geralmente se recomenda escolher o modo fusionado para as datastores remotas, se sua aplicação cliente deve acessar diretamente aos dados das tabelas 4D remotas.
Wakanda Enterprise lhe permite modificar certas características da versão local do modelo externo, por personalização, otimização ou segurança.
Para isso, só deve adicionar o código JavaScript em um arquivo .js que tem o mesmo nome local do catálogo mais o sufixo .js e colocar este arquivo na mesma pasta que o modelo. Por exemplo, se o nome do catálogo local é Emp4D.waRemoteModel, deve criar um arquivo chamado Emp4D.js na pasta do modelo.
Wakanda executa este arquivo quando inicializa o catálogo externo. Utilizando este arquivo, pode:
model.className.attributeName.scope ="publicOnServer"
model.className.attributeName.onGet = function() model.className.attributeName.onSet = function()
model.className.newAlias = new Attribute("alias", "number", "Link_15.cinteger");
model.DerivedClass = new DataClass("Emps", "public", "My4DTable")
model.DerivedClass = new DataClass("Emps", "public", "My4DTable") model.DerivedClass.removeAttribute("salary"); model.DerivedClass.removeAttribute("comments"); model.DerivedClass.removeAttribute("...");
Para obter mais informação sobre o código JavaScript para trabalhar com modelos, consulte a seção Model API na documentação de Wakanda.
Pode definir licenças específicas para Wakanda Server para o modelo remoto e/ou em forma individual para cada classe. Para obter mais informação sobre este ponto, consulte a seção Atribuição de licenças de grupos da documentação Wakanda.
Produto: 4D
Tema: Configuração da aplicação Wakanda
4D Mobile ( 4D v16)