Saltar al contenido

Conector de App Builder en Jitterbit App Builder

Descripción general

El conector de App Builder es una función que permite que una aplicación use tablas y objetos de negocio de otra aplicación de App Builder, o de un entorno de App Builder completamente diferente, como si fueran parte de su propia fuente de datos, sin duplicar los datos subyacentes.

La variante que uses depende de dónde se encuentre esa otra aplicación:

  • Un conector local vincula dos fuentes de datos en el mismo servidor de App Builder. Por ejemplo, si tu servidor aloja tanto una fuente de datos Northwinds como una My Application separada, y My Application necesita leer (y opcionalmente escribir) datos de Northwinds, un conector local le da a My Application acceso directo a las tablas de Northwinds, sin copiar esos datos en la propia base de datos de My Application. Como ambas aplicaciones se ejecutan en el mismo servidor, App Builder maneja la conexión internamente: no se requiere ninguna llamada de red ni un paso de autenticación separado.

  • Un conector remoto vincula dos entornos de App Builder completamente separados, cada uno con su propia URL, a través de HTTP. Por ejemplo, conectar el servidor de App Builder de tu organización a una instalación de App Builder diferente, ya sea un entorno separado, la instalación de un cliente diferente, o cualquier otra instancia alojada de forma independiente. Como la conexión atraviesa la red hacia una instancia de App Builder asegurada por separado, se autentica usando una clave de API, de la misma manera que lo haría cualquier otro cliente REST externo.

Esta página cubre:

Además, esta página también contiene una sección de Limitaciones que cubre restricciones conocidas a tener en cuenta antes de depender del conector de App Builder, y una sección de Solución de problemas que cubre errores comunes y cómo resolverlos.

Advertencia

Recomendamos consultar con tu consultor dedicado de Jitterbit antes de configurar un conector de App Builder por tu cuenta.

Conector local de App Builder

Un conector local de App Builder permite que una aplicación en tu servidor de App Builder use directamente tablas y objetos de negocio que se encuentran en la fuente de datos de otra aplicación en ese mismo servidor, sin copiar los datos ni configurar ninguna autenticación de red. Por ejemplo, si My Application necesita leer datos que se encuentran en la fuente de datos Northwinds, ambas alojadas en el mismo servidor, un conector local le da a My Application acceso directo a las tablas públicas de Northwinds.

Esta sección cubre:

Considera usar Extend Table en su lugar

Si solo necesitas traer una tabla de otra fuente de datos en el mismo servidor, Extend Table generalmente es la mejor opción: a diferencia de un conector local, no requiere empaquetar y enviar ambas aplicaciones juntas cada vez que haces una versión.

Paso 1: Crear un conector local de App Builder

Configura el servidor del conector de App Builder, para que App Builder sepa que debe enrutar las solicitudes de esta conexión localmente en lugar de a través de HTTP:

  1. Selecciona IDE > Data Servers.
  2. Haz clic en + Server desde el panel Data Servers. Se abre el diálogo Server. Ingresa los siguientes valores:

    Server dialog

    • Name: Asigna un nombre a tu conexión de servidor. Jitterbit recomienda Local App Builder.
    • Type: Selecciona App Builder Connector.
    • App Builder Type: Selecciona Local.
  3. Haz clic en Save y cierra el diálogo.

Step 2: Permitir acceso público a las tablas y objetos de negocio que deseas usar en tu conector

Una tabla o regla debe marcarse como Public antes de que un conector pueda usarla:

  1. Navega al App Workbench de la aplicación que deseas usar.
  2. Marca las tablas o reglas que deseas usar en tu conector como Public:

    • Para marcar una tabla como pública:

      1. Ve a la pestaña Tables.
      2. Localiza la tabla que buscas en el panel Tables y haz clic en su icono de edición o haz doble clic en su fila. Se abre la página Table Definition de esa tabla.
      3. En el panel Table, haz clic en More > Edge Case. Se abre el diálogo Edge Case Settings:

        Edge Case Settings dialog

      4. En el grupo de campos Public Access, marca Allow Read y/o Allow Write según sea necesario.

    • Para marcar una regla como pública:

      1. Ve a la pestaña Rules.
      2. Localiza la regla que buscas en el panel Rules y haz clic en su icono de edición o haz doble clic en su fila. Se abre el Rule Builder de esa regla.
      3. En el panel Rule, haz clic en More > Edge Case. Se abre el diálogo Edge Case Settings:

        Edge Case Settings dialog 2

      4. En el grupo de campos Allow Public Access, marca Read para permitir la lectura de los datos de la regla, y/o Write para permitir su modificación.

Nota

Se recomienda ampliamente no modificar una tabla u objeto de negocio público una vez que se ha hecho público y se usa en un conector. Consulta Limitations para obtener más información.

Step 3: Crear una fuente de datos usando el conector local de App Builder

Con el servidor del conector en su lugar y tus objetos marcados como públicos, crea una fuente de datos que apunte a la aplicación específica cuyos datos deseas usar:

  1. Ve a IDE > Data Servers.
  2. En el panel Data Servers, selecciona Local App Builder.
  3. Haz clic en + Source. Aparece un asistente para guiarte a través del proceso:

    Choose Database wizard

  4. Selecciona una base de datos en la que crear una fuente de datos. La fuente de datos se crea con el mismo nombre que la base de datos. Haz clic en Next.

    Nota

    La base de datos relacional que buscas debe tener al menos una tabla o regla pública (consulta Step 2); de lo contrario, no es seleccionable.

  5. En el siguiente paso del asistente, elige qué tablas, vistas y procedimientos almacenados importar a la fuente recién creada, o haz clic en Import All para importarlo todo. Haz clic en Next.

  6. El asistente presenta un resumen de la nueva fuente de datos. Haz clic en Done. La nueva fuente de datos ahora aparece listada bajo + Source.
  7. (Recomendado) Es una buena práctica renombrar la fuente de datos siguiendo la convención [Data Source You're Connecting to] ([Application Using the Connector]). Por ejemplo, un conector local para Northwinds, conectándose a una aplicación llamada My Application, se llamaría Northwinds (My Application). Para renombrar tu fuente de datos, sigue estos pasos:

  8. Haz clic en el icono de nueva ventana en el mosaico de la fuente de datos o haz doble clic en el mosaico. Se abre el diálogo App Builder Connector:

    ![Diálogo App Builder Connector](/_download/images/app-builder/connect/app-builder-connector-dialog.png){style="width: 600px"}
    
    1. Haz clic en Edit. Se abre el diálogo Data Storage Layer:

      Diálogo Data Storage Layer

    2. Haz clic en Edit nuevamente. Ingresa un nombre apropiado en el campo Data Source Name.

    3. Haz clic en Save.

Consejo

Crea una fuente de datos separada cada vez que desees conectar una aplicación a otra base de datos relacional, en lugar de reutilizar una en varias aplicaciones. Por ejemplo, si dos aplicaciones necesitan una conexión local a Northwinds, crea dos fuentes de datos siguiendo la convención de nombres anterior: Northwinds (My Application 1) y Northwinds (My Application 2).

Paso 4: Importa tablas y objetos de negocio en tu conector

Si seguiste los pasos anteriores en orden, las tablas y reglas públicas se importaron cuando creaste la fuente de datos. Continúa con el Paso 5. Sin embargo, si creaste la fuente de datos antes de permitir acceso público a las tablas y reglas que necesitas, puedes importarlas ahora.

  1. Ve a IDE > Data Servers.
  2. En el panel Data Servers, selecciona Local App Builder.
  3. En el panel lateral, haz clic en el icono de nueva ventana en el mosaico de la fuente de datos o haz doble clic en el mosaico. Se abre el diálogo App Builder Connector:

    Diálogo App Builder Connector Import

  4. En Data Storage Layer, haz clic en Import. Se abre el diálogo Import Schema:

    Diálogo Import Schema

    • Para importar todas las tablas que marcaste como públicas, haz clic en Import nuevamente desde Import Capabilities.

    • Para importar solo un subconjunto, ingresa primero un nombre de tabla u objeto de negocio en el campo Import Pattern y luego haz clic en Import desde Import Capabilities.

  5. Haz clic en Proceed. App Builder ejecuta una tarea de fondo para completar la importación.

Paso 5: Agrega tu conector local de App Builder como fuente de datos a tu aplicación

La fuente de datos que creaste en el Paso 3 existe en el servidor, pero tu aplicación no puede usarla hasta que la agregues explícitamente como fuente:

  1. Navega al App Workbench de la aplicación que deseas modificar.
  2. Ve a la pestaña Data Sources.
  3. En el panel Data Sources, haz clic en + Source. Se abre el diálogo Add a Source to your application.
  4. Selecciona Link to existing source y luego haz clic en Next.
  5. Localiza la fuente de datos que creaste en el Paso 3 y luego haz clic en Link 1 Source.
  6. Revisa la actualización propuesta y luego haz clic en Done.

Vincular fuentes te permite crear reglas entre fuentes de datos en cualquier dirección:

  • Para crear reglas con la base de datos relacional como fuente y tu fuente de datos del conector local de App Builder como destino:

    1. Navega al App Workbench de la aplicación que deseas modificar.
    2. Ve a la pestaña Data Sources.
    3. Selecciona la base de datos relacional que deseas vincular. El panel lateral se completa con sus opciones.
    4. En el grupo de campos Business Logic Layer, haz clic en Link Sources. Se abre el diálogo Linked Data Sources.
    5. Haz clic en Create y luego selecciona la fuente de datos del conector local de App Builder que agregaste a tu aplicación en el Paso 5.
    6. Haz clic en la marca de verificación para guardar el registro.

Una vez vinculado, puedes usar tablas y objetos de negocio de la fuente de datos local de App Builder en reglas de negocio y reglas XP CRUD creadas en la base de datos relacional, incluyendo reglas XP CRUD cuya fuente de datos es la base de datos relacional y cuyo destino es tu fuente de datos local de App Builder. Crea estas reglas XP CRUD en la base de datos relacional.

  • Para crear reglas en la dirección opuesta, con tu conector local de App Builder como origen y la base de datos relacional como destino:

    1. Navega a App Workbench de la aplicación que deseas modificar.
    2. Ve a la pestaña Data Sources.
    3. Selecciona el conector local de App Builder que deseas vincular. El panel lateral se completa con sus opciones.
    4. En el grupo de campos Business Logic Layer, haz clic en Link Sources. Se abre el diálogo Linked Data Sources.
    5. Haz clic en Create y luego selecciona la fuente de datos relacional a la que deseas conectarte.
    6. Haz clic en la marca de verificación para guardar el registro.

    Una vez vinculado, puedes usar tablas y objetos de negocio de la base de datos relacional en reglas de negocio y reglas XP CRUD creadas en el conector local de App Builder, incluyendo reglas XP CRUD cuya fuente de datos es la fuente de datos local de App Builder y cuyo destino es tu fuente de datos relacional. Crea estas reglas XP CRUD en el conector local de App Builder.

Conector remoto

Un conector remoto permite que una aplicación en un entorno de App Builder use un objeto compartido de un entorno de App Builder completamente separado, accesible en su propia URL, a través de HTTP. A diferencia de un conector local, los dos entornos no comparten un servidor, por lo que deben autenticarse explícitamente entre sí usando una clave API. Los pasos a continuación comparten un objeto en el entorno de origen primero, luego se conectan a él desde el remoto.

Esta sección cubre:

Paso 1: Crear el objeto a compartir usando el conector de App Builder

Antes de que un entorno remoto pueda extraer datos de este, necesitas algo para compartir. Este paso crea una regla que define exactamente qué se expone:

  1. Navega a App Workbench de la aplicación desde la que deseas compartir, luego ve a la pestaña Rules.
  2. Haz clic en + Rule. Se abre Rule Builder:

    • Name: Asigna un nombre para la regla. Por ejemplo: Customer (Remote).
    • Purpose: Selecciona Business Object.
    • Target: Selecciona una tabla de destino para la regla. Por ejemplo: Customer.
  3. Haz clic en Create.

  4. En el panel Tables, selecciona las columnas que deseas compartir.
  5. En el panel Rule, ve a More > Edge Case. Se abre el diálogo Edge Case Settings:

    Edge Case Settings dialog 2

  6. En Allow Public Access, marca Read y/o Write según corresponda, para que el entorno remoto pueda acceder al objeto.

  7. Haz clic en Proceed.

Paso 2: Habilitar conexiones remotas de App Builder

Compartir un objeto no es suficiente por sí solo: la aplicación también debe estar explícitamente autorizada para aceptar solicitudes de conector remoto y, desde App Builder 4.67, estar asociada con los proveedores permitidos para autenticarlas:

  1. Ve a IDE > Configuración Adicional.
  2. En el panel Configurar, haz clic en Remote Connector. Se abre el diálogo Fuentes de Datos:

    Diálogo Fuentes de Datos

  3. Marca la columna Permitir para la aplicación en la que deseas permitir conexiones remotas.

  4. Haz clic en Continuar o en la marca de verificación .
  5. (Desde App Builder 4.67.) Haz clic en el botón Configurar Autenticación para la aplicación. Se abre el diálogo Proveedores de Autenticación. Agrega los proveedores de clave API, HTTP o Servidor de Autorización que deseas permitir para autenticar las solicitudes de Remote Connector. Consulta Configurar un endpoint para conocer los pasos exactos.

Paso 3: Confirmar que un proveedor de seguridad de clave API está configurado

El entorno remoto se autentica en este usando una clave API, así que confirma que este proveedor de seguridad existe y está habilitado antes de generar una:

  1. Ve a IDE > Proveedores de Seguridad.
  2. Confirma que un proveedor de seguridad Clave API habilitado esté configurado. Si no es así, configura uno (consulta Proveedor de seguridad - Clave API para aprender cómo hacerlo).

Paso 4: Crear un rol para compartir el objeto

Los pasos 4 al 6 son una práctica recomendada, no un requisito: limitan el acceso del entorno remoto solo al objeto que estás compartiendo, mediante la creación de un rol, grupo y usuario dedicados, y luego generando la clave API para ese usuario. Si los omites y generas una clave API para un usuario existente en su lugar, y la fuente de datos de ese usuario no tiene roles configurados, la clave otorga acceso a todos los objetos que marcaste como Permitir Lectura y/o Permitir Escritura en el Paso 1, no solo al que estás compartiendo aquí.

  1. Navega al App Workbench de la aplicación y ve a la pestaña Roles. Si la aplicación tiene más de una fuente de datos, selecciona la que contiene el objeto compartido desde el menú de fuentes de datos en la parte superior de la página.
  2. Haz clic en + Rol (se muestra a continuación):

    Pestaña Roles

  3. Se abre el diálogo Rol. Asigna un Nombre para el rol. Por ejemplo: Remote Connector.

  4. Haz clic en Guardar. El panel Permisos está disponible para interactuar:

    Diálogo Rol

  5. Haz clic en + Permiso, selecciona el objeto que creaste en el Paso 1 y marca Lectura, Insertar, Actualizar y/o Eliminar según sea necesario.

  6. Haz clic en la marca de verificación para guardar.

Nota

Para obtener más información sobre roles, consulta Privilegios y permisos.

Paso 5: Crear un grupo y otorgarle acceso

Crea un grupo dedicado para que el entorno remoto se autentique como:

  1. Navega a IDE > Gestión de Usuarios y selecciona la pestaña Grupos:

    Página Grupos

  2. Haz clic en + Grupo. Se abre el diálogo Grupo:

    Diálogo Grupo

  3. Asigna un Nombre. Por ejemplo: Remote Connector.

  4. Haz clic en Guardar.
  5. Haz clic en Gestionar Privilegios. Se abren los paneles Privilegios y Roles.
  6. En el panel Privilegios, haz clic en Crear. Se abre el diálogo Privilegio:

    Diálogo Privilegio

    • Tipo: Selecciona Aplicación.
    • Aplicación: Selecciona la aplicación que contiene el objeto que estás compartiendo. Por ejemplo: Global Imports.
  7. Haz clic en Guardar.

  8. En el panel Roles, localiza y haz clic en Otorgar para el rol que creaste en el Paso 4.

Nota

El entorno remoto también necesita el rol integrado App Builder Remote Connector, referenciado en error 403 forbidden. Si aún no se ha otorgado, localiza y haz clic en Grant para él también, en el mismo panel de Roles.

Paso 6: Crear un usuario, generar una clave de API y agregarlo al grupo

Crea un usuario dedicado para que el entorno remoto se autentique y genera la credencial con la que se conecta:

  1. Selecciona la pestaña Users:

    Página Users

  2. Haz clic en + User. Se abre el diálogo User:

    Diálogo User

  3. Asigna un User Name. Por ejemplo: RemoteConnector.

  4. Haz clic en Save.
  5. Haz clic en More > Keys.
  6. Haz clic en Create. Se abre el diálogo Generate Key:

    Diálogo Generate Key

  7. Selecciona API Key como Provider, luego haz clic en Save.

  8. Copia el valor de Key generado a tu portapapeles.

    Precaución

    El valor de clave generado no se puede recuperar nuevamente una vez que salgas de la pantalla Generate Key. Si lo pierdes, tendrás que generar uno nuevo.

  9. Haz clic en + Membership, selecciona el grupo que creaste en Paso 5, luego haz clic en la marca de verificación para guardar.

Paso 7: Configurar la conexión desde el entorno remoto

Todos los pasos hasta ahora tuvieron lugar en el entorno que comparte el objeto. Este paso final cambia al entorno remoto y utiliza las credenciales que acabas de crear para establecer la conexión:

  1. Navega al entorno remoto desde el que deseas conectarte, luego ve a App Workbench de la aplicación que deseas conectar y selecciona la pestaña Data Sources.
  2. Haz clic en + Source. Se abre un asistente para ayudarte.
  3. En la primera pantalla del asistente, selecciona New Connection, luego haz clic en Next.
  4. Selecciona Other como Connection Category, luego busca y selecciona App Builder Connector:

    Pantalla Choose Connection Type

  5. Haz clic en Next. El asistente omite el paso Choose Provider para este tipo de conexión e ir directamente a Create Connection.

  6. Ingresa los siguientes valores:

    Pantalla Create New Connection

    • Server Name: Asigna un nombre. Por ejemplo: Remote.
    • App Builder Type: Confirma que esté configurado en Remote.
    • Url: Ingresa la URL del entorno al que te estás conectando. Por ejemplo: https://example.com.
    • Api Key: Pega el valor de clave que copiaste en Paso 6.
  7. Haz clic en Next, luego continúa con los pasos restantes del asistente (Choose Database, Import Schema y Summary) para seleccionar la base de datos, importar las tablas, vistas y procedimientos almacenados que deseas conectar, y confirmar la nueva conexión.

  8. Selecciona la fuente de datos del conector App Builder remoto, luego haz clic en Logic.
  9. Haz clic en el icono Results de una entrada para confirmar que ves datos.
  10. Prueba la conexión: edita un registro y guarda, luego regresa al otro entorno y confirma que la actualización también aparezca allí.

Limitaciones

Ten en cuenta las siguientes limitaciones al trabajar con el conector App Builder:

  • El conector App Builder no admite Reach.
  • El conector App Builder admite Full audit, pero Full audit debe estar habilitado en la tabla subyacente para que funcione.
  • Para un conector App Builder local, ambas bases de datos deben ser bases de datos relacionales y deben existir en el mismo entorno de servidor.
  • Para un conector App Builder local, si agregas o modificas columnas en una tabla pública u objeto de negocio, debes mantener manualmente sincronizadas las tablas u objetos de negocio correspondientes en cada lado.

Nota

Recomendamos crear objetos de negocio dedicados para usar con el conector App Builder, en lugar de reutilizar los existentes. Una vez que hayas importado un objeto, cambia el objeto público solo cuando sea necesario; si lo haces, realiza el mismo cambio en su contraparte en el conector App Builder local.

Solución de problemas

Error 403 Prohibido

  • Síntoma: La conexión a un entorno remoto de App Builder mediante el conector App Builder devuelve un error 403 Prohibido.

  • Causa posible: La cuenta de usuario configurada para el conector no ha recibido el rol App Builder Remote Connector en el entorno App Builder de origen.

  • Resolución: Asigna el rol App Builder Remote Connector a ese usuario. Consulta Paso 5: Crear un grupo y otorgarle acceso del conector remoto para conocer los pasos de configuración.

Detalle completo del error
Response status code does not indicate success
at void Vinyl.Business.Application.Events.RemoteEventRunner.AssertSuccessStatusCode(HttpResponseMessage response, string uri, EventTableRef eventTableRef)
at async Task<EventTableRef> Vinyl.Business.Application.Events.RemoteEventRunner.Invoke(EventTableRef eventTableRef, VinylConnectorEndpoint connectorEndpoint)
at async Task<EventTableRef> Vinyl.Business.Application.Events.RemoteEventRunner.InvokeCountAsync(EventTableRef eventTableRef)
at async Task<EventTableRef> Vinyl.DataSource.VinylConnector.VinylConnectorDataSourceServerHandler.CountPublicDataSourcesAsync(EventContext eventContext)
at async Task Vinyl.DataSource.VinylConnector.VinylConnectorDataSourceServerHandler.PingAsync(EventContext eventContext, CancellationToken cancellationToken)
at async Task Vinyl.DataSource.Plugins.DataSourceManagement.PingDataSourceServer.InvokeAsync(ValidationRule validationRule, EventInputRow input)

Reason
Forbidden
Status
403
Uri
https://{{App BuilderRootURI}}/connector/v1/count
Remote DataSourceId
19b4051a-b959-4b0c-9bd4-98b7cf2be132
Remote Table Name
DataSource_Public
Remote Event Name
null
Source
Vinyl.Business

Para la solución de problemas relacionados, consulta App Builder Connector: No se puede recuperar la clave API generada después de salir de la pantalla en la guía de solución de problemas de App Builder.