Class: Classes

@nginstack/engine/lib/database/Classes~ Classes


new Classes()

Classe que permite obter informações sobre as classes do sistema da base de dados corrente da sessão de usuário.

Methods


<static> getInstance()

Obtém uma instância compartilhada desta classe.

Returns:
Type
Classes

checkClassPath(classKey)

Verifica se o caminho da classe informada até a Raiz é válido. Será gerado caso a classe seja órfã, esteja em um ramo órfão ou em um ramo com uma referência circular inválida.

Parameters:
Name Type Description
classKey number

Classe que será verificada.


formatToMessage(classKey)

Dada a chave de uma classe, retorna seu caminho completo, seguido da chave entre parênteses.

Parameters:
Name Type Description
classKey number

A chave da classe que deve ser formatada para uma mensagem.

Returns:

Uma string contendo o caminho completo da classe seguido de sua chave entre parênteses.

Type
string

getCachedDataSet(classKey [, userKey] [, securityExtraFilter])

Obtém visão de uma classe do cache local. Método que substitui o connection.cloneLocalCacheByClass()

Parameters:
Name Type Argument Description
classKey number

Chave da classe ou nome da classe. Ao usar o nome da classe e se houver mais de uma classe com o mesmo nome, será retornada a primeira que possuir vínculo com uma tabela.

userKey number <optional>

Chave do usuário usada para fins de verificação de permissão de acesso.

securityExtraFilter string | Array.<Array.<string>> <optional>
Returns:

DataSet com a visão da classe do cache local informada em classKeyOrClassName.

Type
DataSet

getChildren(classKeyOrClassKeys [, userKey] [, permissionFieldName])

Traz as chaves das classes filhas da classe informada, bem como a própria classe. Podendo fazer um filtro por usuário.

Parameters:
Name Type Argument Description
classKeyOrClassKeys number | string

Chave de uma classe ou lista de chaves de classes separadas por vírgula ou ponto e vírgula.

userKey number <optional>

Chave do usuário para fins de validação de permissão de acesso.

permissionFieldName string <optional>

Nome do campo onde estão as permissões dos usuários.

Returns:

Chaves das classes filhas da classe informada e a própria classe separados por vírgula.

Type
string
Example
var classKeys = classes.getChildren(123456, session.userKey);

getClassDefinitionSource(classKey, type [, vfs] [, classes] [, ignoredClassKeys])

Obtém o código fonte das definições, model, x-class, view, e config de uma determinada classe. Existe uma ordem pré definida das definições retornadas: 1 - Todo o conteúdo dos arquivos do tipo model 2 - Todo o conteúdo dos arquivos do tipo x-class 3 - Todo o conteúdo dos arquivos do tipo view O conteúdo será avaliado na ordem acima.

Parameters:
Name Type Argument Description
classKey number

Chave da classe de onde serão obtidas as definições dos arquivos model, x-class, view e config.

type SourceType

Definirá o modo utilizado para retorno das definições, são eles: SourceType.MODEL, que trará as definições de arquivos x-model e x-class. SourceType.VIEW, que trará as definições dos arquivos x-model, x-class e x-view. SourceType.CONFIG, que trará as definições dos arquivos x-config.

vfs DataSet <optional>

DataSet usado para buscar os arquivos de definição de uma classe. Se não for informado, será usada toda a tabela iVFS.

classes DataSet <optional>

DataSet usado para validar a classe passada. Se não for informado, será usada toda a tabela Classe.

ignoredClassKeys Array.<number> <optional>

Array de chaves de x-class, x-model ou x-view que devem ser ignorados.

Returns:

Retorna um código-fonte contendo uma função _func com as definições dos arquivos que estão na VFS (model, x-class, view ou config) dentro da classe referenciada por classKey. A função _func deve atuar como um construtor a fim de obter instâncias que possuem por padrão as propriedades abaixo:
currentLicenseKey - Possui a chave da licença da classe ou null caso seja uma classe positiva.
sourceFile - Possui a chave do arquivo da classe.
key - Chave da classe, semelhante ao parâmetro "classKey" informado.
parent - Chave da classe mãe informada, semelhante a "DBKey.num(classKey, 'MAE')".

Type
string

getCommonAncestor(classA, classB)

Obtém o ancestral comum de duas classes.

Parameters:
Name Type Description
classA number

Uma das classes para a qual se deseja obter o ancestral comum.

classB number

A outra classe para a qual se deseja obter o ancestral comum.

Returns:

A chave da classe que é o ancestral comum das duas classes informadas.

Type
number

getFieldValue(classKey, keyOrCode, fieldName)

Obtém o valor do campo de um registro.

Parameters:
Name Type Description
classKey number

Chave da classe ou nome da classe.

keyOrCode number | string

Chave do registro ou o valor de um dos seguintes campos: iUrl, iCode, iName, CODIGO, NOME, TITULO ou URL.

fieldName string

Nome do campo buscado.

Returns:

Valor do campo buscado.

Type
number | string | Date

getHierarchicalProperty(classKey, propertyName)

Pega uma propriedade de uma classe de forma hierárquica.

Parameters:
Name Type Description
classKey number

Chave ou nome da classe.

propertyName string

Nome da propriedade.

Returns:

Valor da propriedade dentro da hierarquia da classe informada em classKey.

Type
string | number | Date | Record.<*, *>
Example
// Obtém o valor da propriedade 'ajuda' da classe 'Entidades'.
// Neste caso, se a classe "Entidade" não possuir valor para a propriedade "ajuda",
// busca na classe mãe, e assim sucessivamente.

var helpDeEntidades = classes.getHierarchicalProperty( "Entidades", "ajuda" )

getHierarchyList(startClass, endClass [, level] [, concatenator] [, returnClassesKey])

Devolve a hierarquia de classes.

Este método substitui o uso do connection.getHierarchicalClass()

Parameters:
Name Type Argument Description
startClass number

Chave da classe de onde deve iniciar a montagem da hierarquia.

endClass number

Chave da classe onde deve finalizar a montagem da hierarquia.

level number <optional>

Quantidade de classes que irá pegar a partir da inicial.

concatenator string <optional>

String que irá separar as classes. O Valor padrão é "/".

returnClassesKey boolean <optional>

Determina se trará as chaves das classes.

Returns:

Lista de chaves das classe.

Type
string
Example
const path = classes.getHierarchyList(-1898146248, -1898187811, 5, ' > ', false);
path; // => 'Dados > Sistema > Grupos, Papéis e Usuários'

getLevel(classKey)

Calcula em qual nível de hierarquia (profundidade) a classe se encontra.

Parameters:
Name Type Description
classKey number

Chave da classe.

Returns:

Nível em que a classe se encontra.

Type
number

getOrphans()

Busca todas as classes órfãs no sistema. Caso uma classe seja descendente de uma classe órfã, ela também será considerada.

Returns:

Lista ordenada das chaves das classes órfãs do sistema.

Type
Array.<number>

getRemoteChildren(classKey, database)

Dada uma classe e uma conexão, este método pesquisará por uma classe e suas filhas em uma outra base. Semelhante ao getChildren do cache local.

No pior dos casos essa função executará uma query para cada nível de profundidade das filhas. Isso vai ocorrer quando a base de destino tiver classes filhas que não estão na base de origem.

Parameters:
Name Type Description
classKey number

Chave da classe a ser pesquisado os filhos.

database Database

Conexão com o banco onde deverá ser realizada a busca.

Returns:

Chaves das classes filhas da classe informada e a própria classe separados por vírgula.

Type
string

getTableName(classKey)

Obtém o nome da tabela no banco de dados que armazena os registros de uma determinada classe

Parameters:
Name Type Description
classKey number

Chave da classe que será obtido a nome da tabela que armazena os seus registros.

Returns:

Nome da tabela que armazena os registros da classe cuja a chave é informada em classKey.

Type
string

getTabularHierarchy(rootClassKey [, opt_filters])

Faz uma busca completa em uma classe retornando um DataSet com a relação de todas as classes descendentes e a própria classe informada.

Parameters:
Name Type Argument Description
rootClassKey number

Classe que é o ponto de partida para o início da busca.

opt_filters Object <optional>

Filtros que podem ser aplicados no resultado desta função.

Properties
Name Type Description
licenses Array.<number> | number

Licenças que serão exibidas nesta montagem.

justProducts boolean

Indica que o dataset resultante só deverá conter registros negativos.

excludeOrphans boolean

Indica que as classes órfãs e suas filhas não serão incluídos no dataset resultante.

Returns:

Reproduz a árvore hierárquica completa do campo passado como raiz de forma tabulada. Os campos deste DataSet são: iKey {number} Chave da classe; iParent {number} Mãe da classe (Virá nulo quando for a classe raiz); iName {string} Nome da classe; iOrder {string} Ordem de exibição das classes. Esse campo virá no formato: "0001/0006" o que significa que essa classe é a sexta filha da primeira classe. O DataSet vem ordenado por este campo.

Type
DataSet

hasCachedData(classKey)

Avalia se a classe de dados informada faz parte do cache local, ou seja, se os registros desta classe podem ser acessado por meio do dbCache.

Parameters:
Name Type Description
classKey number

Classe de dados a ser verificada.

Returns:

True se a classe informada fizer parte do cache local.

Type
boolean

isChildOf(key, parent)

Verifica se a chave informada é filha ou igual a classe especificada. São verificadas as seguintes situações:

  • Se uma classe "key" é filha de "parent";
  • Se a classe do registro "key" é filho de "parent";
  • Se um registro iVfs "key" é filho de "parent".
Parameters:
Name Type Description
key number

Chave da classe ou do registro a qual deseja verificar a hierarquia.

parent number

Chave da classe a qual se deseja verificar se é mãe da chave passado no parâmetro "key".

Returns:
Type
boolean
Example
// Se a classe "Pessoas" é filha da classe "Entidades"
if ( classes.isChildOf( -2007890000, -2007900000 ) ){
   ...
}

// Se o cliente "Consumidor Final" é filho da classe "Clientes"
if ( classes.isChildOf( -1899931617, -2007889000 ) ) {
   ...
}

// Se o usuário "administrator" é filho da classe "Users"
if ( classes.isChildOf( -1898186559, -1898187809 ) ) {
   ...
}