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