4D v16Configuración de la aplicación Wakanda |
||||||||||||||||||||||||||||||||
|
4D v16
Configuración de la aplicación Wakanda
|
Parámetro | Tipo | Descripción |
nomLocal | Cadena | Nombre local del catálogo remoto |
dirección | Cadena | Dirección IP del servidor de datos remoto (utilice HTTPS para mayor seguridad) |
usuario | Cadena | Nombre de usuario para la apertura de la sesión |
contraseña | Cadena | Contraseña para la apertura de la sesión |
jsFile | Cadena | (opcional)Ruta relativa de acceso del archivo JavaScript ubicado en la misma carpeta que el modelo (ver [#title id="3392" anchor="1284321"/]) |
timeout | Num | (Opcional) Tiempo de espera para conexión cliente a la base 4D en minutos (por defecto 60). Tenga en cuenta que este parámetro sólo se tiene en cuenta si la conexión está abierta con un usuario y una contraseña que no están en blanco (se recomienda especialmente para proteger los accesos 4D Mobile del lado del servidor 4D) |
Para una descripción detallada, consulte la documentación del método mergeOutsideCatalog() en el manual Wakanda Server-Side API.
El objeto model indica el "modelo" actual de la aplicación Wakanda, en otras palabras, el conjunto de sus "clases de datos” (tablas) y métodos. En el contexto de una arquitectura 4D Mobile, el modelo Wakanda puede estar vacío. Si la aplicación Wakanda ya contiene los objetos, las clases y métodos referenciados de la aplicación 4D remota se fusionan al modelo local cuando utilice el método mergeOutsideCatalog().
Cuando se establece la conexión correctamente, las tablas 4D "expuestas" se añaden a las clases del modelo del lado Wakanda. En Wakanda Enterprise Studio, aparecen las tablas remotas entre la lista de clases del modelo local. Los elementos externos se indican con una flecha roja. El catálogo externo también está representado en Wakanda Studio por un catálogo especifico (llamado localName.waRemoteCatalog) que también se indica por una flecha roja:
Nota: las extensiones de archivo se pueden ocultar en Wakanda Studio.
Puede hacer doble clic en este archivo para ver el catálogo externo en el 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 });
Los métodos openRemoteStore() y addRemoteStore() son formas alternativas de establecer vínculos dinámicos entre una aplicación Wakanda y una aplicación 4D.
Como mergeOutsideCatalog(), estos métodos ofrecen acceso dinámico a los datos de las bases 4D pero funcionan de una manera diferente:
openRemoteStore() sólo devuelve una referencia válida en el contexto JavaScript actual, mientras que addRemoteStore() mantiene la referencia durante toda la sesión.
Para obtener más información, consulte la descripción de los métodos openRemoteStore() y addRemoteStore() en la documentación Wakanda.
Cualquiera que sea el modo de conexión con la datastore 4D remota (usando la caja de diálogo "Connect to Remote Datastore" de Wakanda Studio o ejecutando un método JavaScript), debe elegir si las clases (tablas) remotas deben fusionarse con el modelo activo, o ubicarse en un modelo dedicado.
Esta elección se resume en la siguiente tabla:
Para... | fusionar al modelo activo | utilizar un modelo dedicado |
Diálogo "Connect to Remote Datastore" | Seleccionar Merge with active Model | Deseleccionar Merge with active Model |
Método JavaScript | mergeOutsideCatalog() | openRemoteStore() o addRemoteStore() |
Cuando fusiona las tablas 4D remotas con el modelo activo, se integran al modelo por defecto de la aplicación (cuyo datastore es el objeto ds), como las clases locales. Los principios de acceso a los datos son los siguientes:
var invoiceList = ds.INVOICES.all(); //acceso a la tabla INVOICES del catálogo por defecto
Estos principios facilitan el desarrollo de las aplicaciones 4D Mobile pero pueden dar lugar a conflictos de nombres entre las tablas, en particular cuando la aplicación Web llama a varios datastores. En este caso, puede ser útil para ubicar los elementos remotos en un modelo dedicado.
Cuando las tablas 4D remotas no se fusionan con el modelo activo, utilizan un modelo "dedicado". Las clases remotas entonces utilizan un espacio de nombres que es específico para el datastore al que la aplicación está conectada y no se pueden acceder en el objeto ds. De esta manera es posible utilizar varias tablas con el mismo nombre en varias datastores diferentes:
var invoiceList = my4Dstore.INVOICES.all(); //access to the INVOICES table of the my4Dstore datastore
Sin embargo, este principio tiene ciertas limitaciones en la versión actual de Wakanda Enterprise:
Así que por lo general se recomienda elegir el modo fusionado para las datastores remotas, si su aplicación cliente debe acceder directamente a los datos de las tablas 4D remotas.
Wakanda Enterprise le permite modificar ciertas características de la versión local del modelo externo, por personalización, optimización o seguridad.
Para ello, sólo tiene que añadir el código JavaScript en un archivo .js que tiene el mismo nombre local del catálogo más el sufijo .js y poner este archivo en la misma carpeta que el modelo. Por ejemplo, si el nombre del catálogo local es Emp4D.waRemoteModel, debe utilizar un archivo llamado Emp4D.js ubicado en la carpeta del modelo.
Notas:
Wakanda ejecuta este archivo cuando inicializa el catálogo externo. Utilizando este archivo, puede:
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 más información sobre el código JavaScript para trabajar con modelos, consulte la sección Model API en la documentación de Wakanda.
Puede definir permisos específicos para Wakanda Server para el modelo remoto y/o en forma individual para cada clase. Para obtener más información sobre este punto, consulte la sección Asignación de permisos de grupos de la documentación Wakanda.
Producto: 4D
Tema: Configuración de la aplicación Wakanda
4D Mobile ( 4D v16)