Entidade ENTITY_REPLICATION_SCOPES

RTREPLICATOR.ENTITY_REPLICATION_SCOPES

Descrição

Esta entidade permite configurar os algoritmos que definem o escopo de cada registro na base de dados do sistema.

O escopo deve ser uma das identificações definidas em Escopos de replicação. Uma vez definido o escopo, os registros de cada entidade são replicados apenas para os Nodos replicados que estiverem associados a esse escopo conforme definido em Escopos dos nodos de replicação.

Poderá existir apenas 1 algoritmo para cada entidade do sistema.

Entidades que não possuam um algoritmo definido irão gerar um escopo "NULO", o que significa que os registros serão distribuídos para TODOS os nodes.

Atributos

AtributoDomínioRegrasDescrição
IDID(18)Rqd PK Id:
Chave de identificação interna
ENTITY_IDID(18)Rqd UK FK Entity:
Referencia para a entidade.

Referência para ENTIDADES_SISTEMAS
SCOPE_SCRIPTSOURCE_CODEScript para escopo:
Script/comando que define o escopo de um registro. O script pode ser definido das seguintes formas:

Atributo

Caso seja informado apenas um nome de atributo, esse será considerado o escopo do registro. Exemplo:
ESTABELECIMENTO_ID

Expressão SQL

Caso a expressão seja iniciada com um comando "SELECT ", então essa será uma expressão SQL que deve retornar uma única linha com uma única coluna que indica o escopo do registro. A expressão SQL deverá utilizar o objeto "rec" para contextualizar a expressão. Exemplo:
SELECT estabelecimento_id from pedidos where id = ${rec.pedido_id}

Script

Caso a expressão inicie com "#!" seguida do nome da linguagem de programação, a expressão será considerada um script que recebe o objeto "rec" e deverá retornar um objeto "scope" do tipo String. Exemplo:
#! Groovy
scope = rec.valueOfEstabelecimentoId();
ADAPTIVE_SCRIPTSOURCE_CODEScript adaptivo:
Script (DSL) que permite adaptar um registro recebido por replicação. Quando configurado, este script será executado sempre que receber um registro pela replicação. O script é uma DSL contendo um comando por linha.

Comandos aceitos:

nullFK COLUNA TABELA

Verifica se o comando (insert ou update) está preenchendo a COLUNA. Se estiver, verifica se o ID informado na COLUNA existe na TABELA. Se não existir, ajusta o parâmetro do DML para NULL. Esse comando deve ser usado no caso de registros que fazem parte do contexto mas que tem algum relacionamento opcional com um registro que não faz parte do escopo.

Exemplo:
  • Itens de documento que fazem referência a um item de pedido de outro estabelecimento (que não está no escopo deste nodo).

ignoreFK COLUNA TABELA

Verifica se o comando (insert ou update) está preenchendo a COLUNA. Se estiver, verifica se o ID informado na COLUNA existe na TABELA. Se não existir, não executa o respectivo DML. Esse comando deve ser usado no caso de registros que fazem parte do contexto mas que tem algum relacionamento obrigatório com um registro que não faz parte do escopo.

Exemplo:
  • Itens de documento que fazem referência a um item de pedido de outro estabelecimento (que não está no escopo deste nodo).

Regras

Atualizar memória

(Depois de inserir, Depois de alterar, Depois de excluir)
Sempre que algum dos registros for alterado, atualiza a cópia em memória que é utilizada pelo replicador.