4D v16Configuración de la aplicación Wakanda |
||||||||||||||||||||||||||||||||
|
4D v16
Configuración de la aplicación Wakanda
Configuración de la aplicación Wakanda
Del lado Wakanda Enterprise, puede conectarse a una base 4D:
Una vez se establece la conexión entre Wakanda y 4D, la aplicación Wakanda puede utilizar las tablas, atributos y métodos proyecto expuestos de la aplicación 4D como objetos locales. También puede utilizar este método para ejecutar código JavaScript adicional, por ejemplo, puede modificar localmente propiedades de atributos remotos o extender las clases, o añadir atributos calculados. En Wakanda Enterprise Studio, el comando Connect to Remote Datastore... (que se encuentra en el menú File y en el menú contextual del proyecto) abre un enlace con un datastore remoto. Este datastore remoto puede ser una base 4D u otra aplicación Wakanda. En ambos casos, el servidor HTTP del datastore remoto debe iniciarse para que Wakanda Enterprise Studio para poder acceder al modelo remoto. Contiene los parámetros de conexión siguientes:
Cuando se establece una conexión entre Wakanda y 4D Server a través de la caja de diálogo "Connect to a Remote Datastore", Wakanda Enterprise Studio crea automáticamente dos archivos (iconos con una flecha roja) en la carpeta del proyecto:
Nota: puede ver las extensiones de los archivos en un mensaje de ayuda que aparece cuando se seleccionan los archivos en el Explorador de Wakanda Studio. Wakanda Enterprise Server le permite establecer un enlace con una base 4D mediante la ejecución de un método JavaScript. El método de conexión por lo general debe ubicarse en el código que se ejecuta cuando se abre la aplicación (bootstrap.js) o cuando el modelo se abre (model.js) para que el enlace esté disponible durante cada sesión.
La principal diferencia entre estos métodos es el modo de integración de los objetos procedentes del datastore remoto en la aplicación Wakanda: model.mergeOutsideCatalog() fusiona el catálogo remoto con el modelo activo, mientras que addRemoteStore() y openRemoteStore() generan modelos dedicados. Para obtener más información sobre este punto, consulte Integrar al modelo activo o utilizar un modelo dedicado a continuación. El método JavaScript mergeOutsideCatalog() designa un catálogo de datos remoto y lo utiliza dentro de su modelo Wakanda actual. Debe llamar a este método en un archivo .js asociado al modelo actual y ejecutado por Wakanda Server. Hay dos posibles sintaxis:
La ventaja de usar la sintaxis con objeto es que se puede añadir un archivo .js que se ejecuta después de la conexión a la base 4D. Este archivo permite modificar localmente el catálogo referenciado de la base remota.
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:
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.
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:
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:
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.
Wakanda ejecuta este archivo cuando inicializa el catálogo externo. Utilizando este archivo, puede:
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.
Ver también
|
PROPIEDADES
Producto: 4D
HISTORIA
ARTICLE USAGE
4D Mobile ( 4D v16) |
||||||||||||||||||||||||||||||