Pular para o conteúdo principal

Tablas Personalizadas

Resumen

Las Tablas Personalizadas le permiten ampliar el modelo de datos de Skills Workflow creando sus propias tablas, columnas y tipos de datos.

Soportan:

  • esquema personalizado
  • permisos por rol
  • CRUD completo desde UI, SDK o API
  • consultas SQL con el namespace CustomTable
  • importación y exportación en JSON

  1. Vaya a Maintenance en el menú principal
  2. Seleccione el módulo Custom Tables

img-box-shadow

Lista de tablas personalizadas en Maintenance

Crear una tabla personalizada

  1. Haga clic en +
  2. Defina el nombre de la tabla
  3. Configure la columna clave, normalmente Oid con tipo UniqueIdentifier
  4. Agregue las columnas necesarias y sus tipos de datos

img-box-shadow

Creación de una nueva tabla personalizada

Gestionar permisos

Cada tabla personalizada tiene dos roles:

  • Read Role para leer datos
  • Save Role para insertar, actualizar o eliminar

img-box-shadow

Configuración de permisos de lectura y escritura

Ver datos

La cuadrícula muestra la columna clave, las columnas personalizadas y el conteo total de filas.

img-box-shadow

Cuadrícula de datos de la tabla personalizada

Leer datos mediante consultas

Al crear consultas en Maintenance → Queries, configure el namespace como CustomTable y consulte el esquema [customtables].

SELECT Oid, Name, Price, IsActive
FROM [customtables].[ProductCatalog]
WHERE IsActive = 1
ORDER BY Name

Referencia del SDK

Ver métodos del SDK

get

Descripción

Obtiene todas las filas de una tabla personalizada y las devuelve como objetos JavaScript planos. Opcionalmente ordena el resultado por una columna en el cliente.

Método(s)

declare function get(
customTableName: string,
orderByColumnName?: string
): Promise<object[]>
ParámetroTipoObligatorioPor defectoDescripción
customTableNamestringtrueNombre de la tabla personalizada
orderByColumnNamestringfalsenullColumna usada para ordenar los resultados

Uso básico

const rows = await SW.Document.CustomTable.get("ProductCatalog");
const sorted = await SW.Document.CustomTable.get("ProductCatalog", "Name");

create

Descripción

Crea la definición de una tabla personalizada o agrega columnas a una tabla existente.

Método(s)

declare function create(
customTableName: string,
model: CustomTablePostModel
): Promise<any>
ParámetroTipoObligatorioDescripción
customTableNamestringtrueNombre de la tabla
modelCustomTablePostModeltrueDefinición de clave y columnas
await SW.Document.CustomTable.create("ProductCatalog", {
KeyColumnName: "Oid",
KeyDataTypeId: 9,
Columns: [
{ ColumnName: "Name", ColumnDataTypeId: 6 },
{ ColumnName: "Price", ColumnDataTypeId: 4 },
{ ColumnName: "IsActive", ColumnDataTypeId: 0 }
]
});

insert

Descripción

Inserta o actualiza una o varias filas en una tabla personalizada.

Método(s)

declare function insert(
customTableName: string,
rows: CustomTableRowPostModel | CustomTableRowPostModel[]
): Promise<any[]>
await SW.Document.CustomTable.insert("ProductCatalog", {
KeyValue: SW.Utils.Guid.getNew(),
KeyColumnName: "Oid",
Columns: [
{ ColumnName: "Name", ColumnDataTypeId: 6, Value: "Widget A" },
{ ColumnName: "Price", ColumnDataTypeId: 4, Value: 29.99 }
]
});

Referencia de tipos de datos

IDTipoDescripción
0BooleanVerdadero / Falso
1DateFecha
2FloatNúmero decimal
3IntegerNúmero entero
4MoneyImporte monetario
5Varchar50Texto hasta 50 caracteres
6Varchar100Texto hasta 100 caracteres
7VarcharMaxTexto sin límite práctico
8TextTexto largo
9UniqueIdentifierGUID / UUID
10Varchar200Texto hasta 200 caracteres

Referencia de API

Ver endpoints de API

Todos los endpoints requieren autenticación mediante la cabecera X-AccessToken.

Ruta base: api/v3

Endpoints

MétodoRutaDescripción
GET/custom-tablesLista todas las tablas personalizadas
GET/custom-tables/{tableName}Obtiene el esquema de la tabla
GET/custom-tables/{tableName}/rows/valuesObtiene todas las filas
GET/custom-tables/{tableName}/rowObtiene una fila por clave
GET/custom-tables/{tableName}/rows/columnValueObtiene un valor de columna
POST/custom-tables/{tableName}Crea la tabla o agrega columnas
PUT/custom-tables/{tableName}/rowsInserta o actualiza filas
PUT/custom-table-definitions/{id}Actualiza permisos
DELETE/custom-tables/{tableName}/rowsElimina filas
DELETE/custom-tables/{tableName}Elimina la tabla
GET/custom-tables/{tableName}/exportExporta a JSON
PUT/custom-tables/{tableName}/importImporta desde JSON

Insertar / Actualizar filas

PUT /api/v3/custom-tables/{tableName}/rows

OperationTypeValorDescripción
Update0Actualiza una fila
UpdateMany1Inserta o actualiza múltiples filas
UpsertMany2Inserta si no existe y actualiza si existe
{
"OperationType": "UpdateMany",
"UpdateManyModel": [
{
"KeyColumnName": "Oid",
"KeyValue": "a1b2c3d4-0000-0000-0000-000000000001",
"KeyDataTypeId": 9,
"Columns": [
{ "ColumnName": "Name", "Value": "Product A" },
{ "ColumnName": "Category", "Value": "Electronics" }
]
}
]
}

Eliminar filas

DELETE /api/v3/custom-tables/{tableName}/rows

{
"OperationType": "Delete",
"DeleteModel": {
"KeyColumnName": "Oid",
"KeyValue": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}

Leer datos mediante consultas

Al crear consultas SQL en Mantenimiento → Consultas, use CustomTable como namespace. El esquema físico de base de datos es [customtables].

SELECT Oid, Name, Price, IsActive
FROM [customtables].[ProductCatalog]
WHERE IsActive = 1
ORDER BY Name