Antes de Empezar
En este tutorial de 40 minutos se explica cómo crear una orquestación para realizar transacciones en una base de datos con JDBC habilitado y externa al sistema JD Edwards EnterpriseOne. Para interactuar con una base de datos externa, una orquestación requiere una solicitud de servicio de conector que contenga un script de Groovy personalizado para ejecutar las operaciones de la base de datos. La solicitud de servicio de conector utiliza un registro de codificación flexible de conexión, que crearemos también en este tutorial, para proporcionar la conexión con la base de datos.
En este ejemplo, se utiliza una base de datos MySQL e incluye instrucciones para crear una tabla de bases de datos, que necesitará para hacer otras tareas de este tutorial.
Antecedentes
Cree un conector de base de datos en JD Edwards EnterpriseOne Orchestrator Studio para que, al añadirlo a una orquestación, le permita ejecutar operaciones en una base de datos externa al sistema EnterpriseOne. La base de datos debe admitir JDBC.
La página de diseño Connector (Conector) de Orchestrator Studio incluye una plantilla Groovy que puede usar como base para crear un script de Groovy que ejecute operaciones de base de datos. Para crear un conector de base de datos, debe conocer el lenguaje de scripting de Groovy. Sin embargo, en este tutorial le proporcionaremos un script de Groovy de ejemplo.
¿Qué se necesita?
- Orchestrator Studio 6.1.0.0 o una versión posterior desplegada en un entorno de prueba JD Edwards EnterpriseOne con EnterpriseOne Tools 9.2.2.1. como mínimo.
- Una base de datos con JDBC, preferiblemente una base de datos MySQL, con credenciales de usuario y permisos de acceso para ejecutar operaciones SQL en las tablas existentes y los datos de la base de datos.
- Una configuración de red que permita al servidor de EnterpriseOne Application Interface Services (AIS) acceder a la base de datos.
Configuración de la Tabla en la Base de Datos Externa
Para poder realizar el resto de las tareas de este tutorial, es preciso que haya determinados datos en una tabla de base de datos. Siga estos pasos para añadir una tabla con esos datos a la base de datos, preferiblemente MySQL.
- Incluya una tabla nueva llamada
vineyard_moisture
en la base de datos y añádale los siguientes campos.Campo
Tipo
Nulo
Clave
DATE
char(10)
NO
PRI
LOCATION
char(10)
NO
PRI
PRECIP
float
YES
MOISTURE
float
YES
HIGH
int(11)
YES
LOW
int(11)
YES
- Añada estos registros a la tabla, que necesitará para probar la orquestación que va a crear más tarde en este tutorial:
DATE LOCATION PRECIP MOISTURE HIGH LOW 12/21/2017 VIN1 0.1 0.15 61 30 12/22/2017 VIN1 0.1 0.15 55 25 12/23/2017 VIN1 0.1 0.1 54 35 12/24/2017 VIN1 0.1 0.1 56 39 12/25/2017 VIN1 0 0.15 57 35 12/26/2017 VIN1 0 0.1 61 29 12/27/2017 VIN1 0 0.1 59 30 12/28/2017 VIN1 0 0.1 63 30 12/30/2017 VIN1 0 0.1 62 34 12/31/2017 VIN1 0.06 0.2 63 30 1/1/2018 VIN1 0 0.1 57 32 1/2/2018 VIN1 0 0.1 64 35 1/3/2018 VIN1 0 0.1 63 32 1/4/2018 VIN1 0 0.1 57 30
Creación de un Registro de Conexión Flexible para la Conexión con la Base de Datos
Para establecer una conexión con la base de datos, lleve a cabo lo siguiente. En la siguiente tarea, tendrá que crear una solicitud de servicio de conector que use esta conexión para acceder a la base de datos externa.
- Conéctese a Orchestrator Studio.
- Acceda a la página Tools (Herram) y haga clic en el icono Connections (Conexiones).
- Haga clic en New Connection (Nueva conexión).
- En la sección Connection Information (Información de conexión), rellene estos campos:
- Name (Nombre) = Introduzca un nombre único para la conexión.
- Description (Descripción) = Introduzca una descripción.
- Type (Tipo) = Seleccione Database (Base de datos).
- User/Role (Usuario/Función) = Introduzca el usuario autorizado para ejecutar la orquestación de origen; es decir, la orquestación en el sistema local que llamará a la base de datos externa. Puede ser un usuario o función de EnterpriseOne, o bien *PUBLIC.
- Environment (Entorno). Introduzca el entorno en el que residen las orquestaciones locales.
- En la sección Database Connection Details (Detalles conexión base datos), rellene estos campos:
- Connection (Conexión) = En este ejemplo, la conexión es para una base de datos MySQL. La cadena de conexión es específica del tipo de base de datos; por lo tanto, el valor puede ser diferente en función del tipo de base de datos.
- User (Usuario) = Introduzca el usuario de la base de datos.
- Password (Contraseña) = Introduzca la contraseña del usuario de la base de datos.
- Driver (Controlador) = El controlador es específico del tipo de base de datos. En este ejemplo, el controlador de la base de datos MySQL ya se ha instalado en el servidor AIS. Si tiene una base de datos diferente, es posible que tenga que cargar un controlador y asegurarse de que esté indicado en el classpath del servidor AIS.

Creación de una Solicitud de Servicio de Conector de Base de Datos con Groovy
- En la página inicial de Orchestrator Studio, haga clic en el icono Service Requests (Solicitudes de servicio).
- Haga clic en Create Service Request (Crear solicitud servicio), y seleccione Connector (Conector).
- Asigne el nombre
Insert Moisture Record
(Insertar registro de humedad) al conector e introduzca una descripción si lo desea. - Haga clic en la lista desplegable Product Code (Código de producto) y seleccione un código de producto de cliente del 55 al 59.
- Haga clic en el campo Connection (Conexión) y seleccione la conexión que ha creado en la tarea anterior, que debe mostrarse en la lista de la categoría Database.
- Sustituya la plantilla de Groovy por este script de Groovy, que intentará insertar un registro. Si falla la inserción, intente eliminar cualquier registro duplicado e inténtelo de nuevo.
- Añada las siguientes variables en la lista de entrada, debajo del editor de scripts:
VineyardID
Precipitation
Moisture Content
High Temp
Low Temp
Las entradas de los scripts de Groovy deben ser siempre cadenas; si se necesitan otros tipos, se pueden convertir en Groovy.
- Añada las siguientes variables a la lista de salida debajo del editor de scripts. Los valores de devolución son siempre cadenas.
Salida Nombre de variable insertError insertError - Guarde la solicitud de servicio.
Tenga en cuenta que el editor de scripts de Groovy contiene una plantilla básica de Groovy.
Consulte los comentarios del script para obtener más detalles sobre el proceso.
Adición de la Solicitud de Servicio de Conector a una Orquestación
En esta tarea, tendrá que crear una orquestación y añadirle la solicitud de servicio de conector, asociando las entradas de la orquestación con las entradas de la solicitud de servicio de conector.
- En la página de inicio de Orchestrator Studio, haga clic en el icono Orchestrations (Orquestaciones).
- Haga clic en New Orchestration (Nueva orquestación).
- Complete los siguientes campos:
- Orchestration (Orquestación) =
External Database Example
(Ejemplo de base de datos externa) - Enter Short Description (Introducir descripción corta) =
Insert record in external database.
(Insertar registro en base de datos externa).
- Orchestration (Orquestación) =
- Haga clic en la lista desplegable Product Code (Código de producto) y seleccione un código de producto de cliente del 55 al 59.
- Añada la solicitud de servicio de conector Insert Moisture Record a la orquestación:
- En lugar de añadir entradas a la orquestación de forma manual, puede generar entradas de orquestación a partir de las entradas definidas en la solicitud de servicio de conector. Para ello, haga clic en el botón Add Inputs to the Orchestration (Añadir entradas a la orquestación) situado al final de la fila Service Request.
- Para asociar las entradas, en la sección Transformations, pulse el botón Auto Map (Correl auto).
- Guarde la orquestación.
- Añada salidas a la orquestación para devolver el valor insertError.
a. Junto a Orchestration Steps (Pasos orquestación), haga clic en Add Step (Añadir paso).
b. En el elemento emergente Enter Type of Step (Introducir tipo paso), haga clic en la lista desplegable, seleccione Service Request y después haga clic en OK.
c. Al final de la fila Service Request (Solic servicio), haga clic en la flecha desplegable y seleccione Insert Moisture Record.
Las entradas se mostrarán en la cuadrícula Orchestration Inputs (Entradas de orquestación). Necesita asociar estas entradas a las de la solicitud de servicio de conector en la cuadrícula Transformations (Transformaciones).
En este punto, la orquestación debería ser similar a esta:

a. Haga clic en el botón Orchestration Output (Salida orquestación). Si el botón aparece atenuado, guarde la orquestación para activarlo.
b. Haga clic en Add (Añadir) para ver una lista de todos los pasos (componentes) de la orquestación que contienen campos de devolución.
c. Expanda el paso de la solicitud de servicio para ver los campos de devolución. En la columna Output Field (Campo Salida), se muestra el nombre de la variable definida para un campo de devolución.
d. En la columna Select (Seleccionar), haga clic en la casilla de selección situada junto al campo de devolución insertError.
e. Haga clic en OK.
f. Haga clic en el icono Close (Cerrar).
g. Guarde la orquestación.
Prueba de la Orquestación
Utilice Orchestrator Client para probar la orquestación y comprobar que inserta un registro en una base de datos externa.
- En Orchestrator Studio, haga clic en el enlace Tools (Herram) situado en la esquina superior derecha y, a continuación, haga clic en el icono Orchestrator Client (Cliente Orchestrator).
- Conéctese a Orchestrator Client con las mismas credenciales que haya usado para acceder a Studio.
- Haga clic en la lista desplegable Orchestration Name (Nombre de orquestación) y seleccione External Database Example (Ejemplo base de datos externa).
- Indique los valores que desea insertar en la base de datos:
- Pulse el botón Run para ejecutar la orquestación.
- Para confirmar que la orquestación se ha ejecutado correctamente:
Puede introducir valores de forma manual en la sección para las entradas o seleccionar la casilla JSON Input (Entrada de JSON) y copiar y pegar el siguiente código en el campo de entrada.
{
"inputs" : [ {
"name" : "VineyardID",
"value" : "VIN2"
}, {
"name" : "Precipitation",
"value" : "0.15"
}, {
"name" : "Moisture Content",
"value" : "0.2"
}, {
"name" : "High Temp",
"value" : "55"
}, {
"name" : "Low Temp",
"value" : "24"
} ]
}
En el apartado Output, debería mostrarse la siguiente respuesta:
{
"insertError" : "false"
}

La base de datos debería incluir un registro nuevo con los siguientes datos:
DATE | LOCATION | PRECIP | MOISTURE | HIGH | LOW |
2/2/2018 | VIN2 | 0.15 | 0.2 | 55 | 24 |
Si la orquestación ha fallado porque la tabla no existía en la base de datos, la respuesta sería similar a esta:
{
"insertError" : "Table 'testdb.vineyard_moisture' doesn't exist"
}
Nota: el script de Groovy en la solicitud de servicio de conector incluye también operaciones para grabar entradas de registro, que puede encontrar en las entradas de registro del servidor AIS. Por ejemplo:
[WARN ] JDE - [CUSTOM] START Groovy Record Vineyard Conditions Connector
[WARN ] JDE - [CUSTOM] VineyardID VIN2
[WARN ] JDE - [CUSTOM] Precipitation 0.15
[WARN ] JDE - [CUSTOM] Moisture Content 0.2
[WARN ] JDE - [CUSTOM] High Temp 55
[WARN ] JDE - [CUSTOM] Low Temp 24
[WARN ] JDE - [CUSTOM] returnMap [insertError:false]
Adición de Otra Solicitud de Servicio de Conector para Ejecutar Operaciones SQL Adicionales
En esta tarea, seguiremos trabajando con la base de datos externa y veremos cómo crear una solicitud de servicio de conector para extraer registros de la tabla vineyard_moisture.
- En la página Orchestrations (Orquestaciones) de Orchestrator Studio, seleccione External Database Example en la lista de orquestaciones y haga clic en Edit Orchestration (Editar orquestación).
- En la página de diseño Orchestration, resalte el paso Insert Moisture Record y pulse el botón Insert Step After (Insertar paso después de) para añadir otro paso a la orquestación.
- En el cuadro emergente, seleccione Service Request y haga clic en OK (+).
- Haga clic en el botón Edit (lápiz) y seleccione Connector (Conector) en la lista emergente.
- En la página de diseño Connector, introduzca
Calculate Averages
(Calcular promedios) como nombre de la solicitud de servicio. - Haga clic en la lista desplegable Product Code (Código de producto) y seleccione un código de producto de cliente, 55 -59.
- Haga clic en la lista desplegable Connection (Conexión) y seleccione la conexión MYSQL.
- Sustituya la plantilla Groovy por este script de Groovy.
- Debajo del editor del script, añada la variable
Vineyard
a la lista de entradas. - Añada las siguientes salidas:
Salida Nombre de variable averageMoisture averageMoisture averageHigh averageHigh averageError averageError - Guarde la solicitud de servicio y ciérrela para volver a la orquestación.
- En la fila de la nueva solicitud de servicio, haga clic en la flecha hacia abajo y seleccione la solicitud de servicio Calculate Averages que acaba de crear.
- En la sección Transformations, asocie la entrada de orquestación
VineyardID
con la entradaVineyard
en la nueva solicitud de servicio. - Guarde la orquestación.
- Haga clic en el botón Orchestration Output (Salida orquestación).
- Haga clic en el botón Add (Añadir).
- En la sección Calculate Averages Connector, añada estas tres salidas nuevas a la orquestación y marque la casilla Select junto a cada una de ellas:
averageMoisture
,averageHigh
,averageError
.Definición de las salidas de la orquestación - Haga clic en OK, cierre las salidas y guarde la orquestación.
La orquestación debería incluir las siguientes salidas:

Prueba de los Promedios
Lleve a cabo otra prueba de la orquestación; en esta ocasión, para confirmar que la orquestación realiza las dos operaciones para añadir un registro nuevo y obtener los promedios.
- En Orchestrator Studio, acceda a Orchestration Client desde la página Tools. Es posible que tengan que conectarse de nuevo a Orchestrator Client.
- En la lista desplegable Orchestration Name, seleccione External Database Example.
- Introduzca los valores que desea que la orquestación inserte en la base de datos. En esta ocasión, utilice
VIN1
para que recopile los registros existentes en la tabla.
- Haga clic en Run (Ejecutar) para ejecutar la orquestación.
Puede introducir valores de forma manual en la sección para las entradas o marcar la casilla JSON Input, y copiar y pegar el siguiente código en el campo de entrada:
{
"inputs" : [ {
"name" : "VineyardID",
"value" : "VIN1"
}, {
"name" : "Precipitation",
"value" : "0.15"
}, {
"name" : "Moisture Content",
"value" : "0.2"
}, {
"name" : "High Temp",
"value" : "55"
}, {
"name" : "Low Temp",
"value" : "24"
} ]
}
Si es correcta, en el apartado Output se mostrará el siguiente código JSON:
{
"insertError" : "false",
"averageMoisture" : "0.12333333591620127",
"averageHigh" : "59.1333",
"averageError" : "false"
}
Además, debería haberse añadido un nuevo registro a la base de datos:
DATE | LOCATION | PRECIP | MOISTURE | HIGH | LOW |
2/2/2018 | VIN1 | 0.15 | 0.2 | 55 | 24 |
Asimismo, deberían mostrarse en el servidor AIS las entradas de registro escritas por el script de Groovy. Por ejemplo:
[WARN ] JDE - [CUSTOM] first: [AVG(MOISTURE):0.12333333591620127, AVG(HIGH):59.1333]
[WARN ] JDE - [CUSTOM] first avg moisture: 0.12333333591620127
[WARN ] JDE - [CUSTOM] first avg high: 59.1333
[WARN ] JDE - [CUSTOM] returnMap [averageMoisture:0.12333333591620127, averageHigh:59.1333, error:false]