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.
Navegar para Tabelas Personalizadas
- Vá a Maintenance
- Escolha o módulo Custom Tables

Criar uma tabela personalizada
- Clique em +
- Defina o nome da tabela
- Configure a coluna chave, normalmente
Oid - Adicione as colunas e respetivos tipos de dados

Permissões
Cada tabela tem:
- Read Role para leitura
- Save Role para inserção, atualização e remoção

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
| ID | Tipo | Descrição |
|---|---|---|
0 | Boolean | Verdadeiro / Falso |
1 | Date | Data |
2 | Float | Número decimal |
3 | Integer | Número inteiro |
4 | Money | Valor monetário |
5 | Varchar50 | Texto até 50 caracteres |
6 | Varchar100 | Texto até 100 caracteres |
7 | VarcharMax | Texto sem limite prático |
8 | Text | Texto longo |
9 | UniqueIdentifier | GUID / UUID |
10 | Varchar200 | Texto 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étodo | Rota | Descrição |
|---|---|---|
| GET | /custom-tables | Lista todas as tabelas personalizadas |
| GET | /custom-tables/{tableName} | Obtém o esquema da tabela |
| GET | /custom-tables/{tableName}/rows/values | Obtém todas as linhas |
| POST | /custom-tables/{tableName} | Cria a tabela ou adiciona colunas |
| PUT | /custom-tables/{tableName}/rows | Insere ou atualiza linhas |
| DELETE | /custom-tables/{tableName}/rows | Remove linhas |
| DELETE | /custom-tables/{tableName} | Remove a tabela |
| GET | /custom-tables/{tableName}/export | Exporta para JSON |
| PUT | /custom-tables/{tableName}/import | Importa 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