Ir al contenido

Database Activities

Versión: 1.0.0  ·  ID: zoan-packages-database  ·  Autor: Zoan Software

El paquete Database permite que tu automatización lea y modifique bases de datos directamente con SQL. Es la forma más eficiente de trabajar con grandes volúmenes de datos cuando tienes acceso a la base: consultar miles de registros, insertar resultados, actualizar estados. Soporta SQL Server, PostgreSQL, MySQL y cualquier fuente vía ODBC.

El modelo: conectar → consultar → cerrar

Sección titulada «El modelo: conectar → consultar → cerrar»

Trabajar con una base de datos sigue el patrón abrir → usar → cerrar:

  1. DB Connect abre una conexión y devuelve una sesión (ZoanDbSession).
  2. Ejecutas una o varias consultas con DB Query, DB Execute o DB Scalar.
  3. DB Close cierra la conexión.

Como en otros paquetes con sesión, hay dos formas:

Opción A — DB Connect con body (recomendada)

Sección titulada «Opción A — DB Connect con body (recomendada)»

Las actividades dentro del body heredan la conexión automáticamente (no configuras session), y la conexión se cierra sola al terminar.

DB Connect provider = sqlserver connectionString = = credential("db-ventas").ToPlainText()
└─ body:
DB Query sql = "SELECT * FROM Clientes WHERE Activo = 1" → output: clientes
DB Execute sql = "UPDATE Procesos SET UltimaCorrida = GETDATE()"

DB Connect guarda la sesión en una variable; cada actividad la recibe en session, y cierras con DB Close.

DB Connect provider = postgres connectionString = = credential("db").ToPlainText() → output: db
DB Query session = = db sql = "SELECT * FROM pedidos" → output: pedidos
DB Close session = = db
providerMotor
sqlserverMicrosoft SQL Server
postgresPostgreSQL
mysqlMySQL / MariaDB
odbcCualquier fuente con driver ODBC

La cadena de conexión (connectionString) es el texto estándar de ADO.NET que indica servidor, base de datos y credenciales:

Server=db.empresa.com;Database=ventas;User Id=bot;Password=...;

Nunca metas valores de variables directamente en el texto SQL concatenando. En su lugar, usa parámetros: pon @nombre en la consulta y pasa los valores en el campo params (un objeto { nombre: valor }).

DB Query
sql = "SELECT * FROM Clientes WHERE Ciudad = @ciudad AND Activo = @activo"
params = { "ciudad": = ciudadBuscada, "activo": true }
→ output: resultado
ActividadPara quéDevuelve
DB QuerySELECT que devuelve varias filasDataTable
DB ScalarSELECT que devuelve un solo valor (un COUNT, un MAX)el valor
DB ExecuteINSERT / UPDATE / DELETEnº de filas afectadas
ActividadTipoSalidaQué hace
DB Connectdb-connectZoanDbSessionAbre una conexión y devuelve una sesión
DB Querydb-queryDataTableEjecuta un SELECT y devuelve las filas
DB Scalardb-scalarobjectEjecuta un SELECT y devuelve un único valor
DB Executedb-executeintEjecuta INSERT/UPDATE/DELETE; devuelve filas afectadas
DB Closedb-closeCierra la conexión

Leer pedidos pendientes y marcarlos como procesados:

DB Connect provider = sqlserver connectionString = = credential("db-erp").ToPlainText()
└─ body:
DB Query sql = "SELECT * FROM Pedidos WHERE Estado = @e" params = { "e": "pendiente" } → output: pedidos
For Each items = = pedidos itemVariable = fila
└─ activities:
... procesar ...
DB Execute sql = "UPDATE Pedidos SET Estado = 'procesado' WHERE Id = @id" params = { "id": = fila["Id"] }