Pular para o conteúdo principal

Tabelas Personalizadas

Visão geral

As Tabelas Personalizadas permitem estender o modelo de dados do Skills Workflow com tabelas, colunas e tipos de dados próprios.


  1. Vá a Maintenance
  2. Escolha o módulo Custom Tables

img-box-shadow

Lista de tabelas personalizadas

Criar uma tabela personalizada

  1. Clique em +
  2. Defina o nome da tabela
  3. Configure a coluna chave, normalmente Oid
  4. Adicione as colunas e respetivos tipos de dados

img-box-shadow

Criação de uma nova tabela personalizada

Permissões

Cada tabela tem:

  • Read Role para leitura
  • Save Role para inserção, atualização e remoção

img-box-shadow

Configuração de permissões

Ler dados por query

Use o namespace CustomTable nas queries e consulte o esquema [customtables].

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

Referência SDK

Ver métodos SDK

get

Descrição

Obtém todas as linhas de uma tabela personalizada e devolve-as como objetos JavaScript simples. Opcionalmente ordena o resultado por uma coluna no cliente.

Método(s)

declare function get(
customTableName: string,
orderByColumnName?: string
): Promise<object[]>

Utilização básica

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

create

Descrição

Cria a definição de uma tabela personalizada ou adiciona colunas a uma tabela já existente.

await SW.Document.CustomTable.create("ProductCatalog", {
KeyColumnName: "Oid",
KeyDataTypeId: 9,
Columns: [
{ ColumnName: "Name", ColumnDataTypeId: 6 },
{ ColumnName: "Price", ColumnDataTypeId: 4 },
{ ColumnName: "IsActive", ColumnDataTypeId: 0 }
]
});

insert

Descrição

Insere ou atualiza uma ou várias linhas numa tabela personalizada.

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 }
]
});

Referência de tipos de dados

IDTipoDescrição
0BooleanVerdadeiro / Falso
1DateData
2FloatNúmero decimal
3IntegerNúmero inteiro
4MoneyValor monetário
5Varchar50Texto até 50 caracteres
6Varchar100Texto até 100 caracteres
7VarcharMaxTexto sem limite prático
8TextTexto longo
9UniqueIdentifierGUID / UUID
10Varchar200Texto até 200 caracteres

Referência API

Ver endpoints API

Todos os endpoints exigem autenticação através do cabeçalho X-AccessToken.

Base path: api/v3

Endpoints

MétodoRotaDescrição
GET/custom-tablesLista todas as tabelas personalizadas
GET/custom-tables/{tableName}Obtém o esquema da tabela
GET/custom-tables/{tableName}/rows/valuesObtém todas as linhas
POST/custom-tables/{tableName}Cria a tabela ou adiciona colunas
PUT/custom-tables/{tableName}/rowsInsere ou atualiza linhas
DELETE/custom-tables/{tableName}/rowsRemove linhas
DELETE/custom-tables/{tableName}Remove a tabela
GET/custom-tables/{tableName}/exportExporta para JSON
PUT/custom-tables/{tableName}/importImporta a partir de JSON

Ler dados através de queries

Nas queries de Maintenance → Queries, use CustomTable como namespace.

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