Pular para o conteúdo principal

Fonte de dados Genérica

Como fazer uso dela e otimizar a performance de seus artefatos?

A fonte genérica é uma fonte de dados existente nos scripts dos sistemas Folha (Cloud), Recursos Humanos (Cloud) e Ponto (Cloud), a qual tem por finalidade auxiliar na criação de scripts que necessitam de um controle do dado gerado/enviado. Basicamente esta fonte faz operações de CRUD em uma tabela onde o desenvolvedor cria um identificador único para o item, para que assim, ele possa consultar, inserir, alterar e remover um dado via fonte de dados.

Confira abaixo as propriedades da fonte e exemplo de uso de cada método.

id

É o id do próprio registro da tabela dinâmica, é necessário quando for atualizar um, excluir um registro existente, neste caso será passado o id que deseja alterar.

TipoRegistro

Use um identificador macro como integracao-minha-folha-pessoas ou integracao-tribunal-SC-ATOS. Você deve definir um identificador que faça sentido ao tipo de registro que está guardando, não use um identificador muito genérico como pessoas ou atos" para não correr o risco de algum acabar usando indevidamente para outro fim, como sugestão sempre use a finalidade no tipo de registro conforme exemplos acima.

Identificador

O identificador único do registro, normalmente o mais indicado é utilizar o próprio id do registro que está integrando, por exemplo, se for uma integração de matrículas, pode usar o id da matrícula, de pessoas, o id da pessoa, quando for necessário criar outro identificador pode ser feito, respeitando que: o integrador deve ser único por tipo de registro e você deve ter uma lógica que lhe permita recuperá-lo na consulta.

Conteúdo

O conteúdo é a informação que necessita ser armazenada, normalmente um id de um registro integrado, no entanto, é possível armazenar qualquer outra informação no formato de uma string.

Caso o valor a ser armazenado seja um json ele deve ser guardado como uma string de json, podendo utilizar a função JSON.escrever() para isso, e posteriormente a função JSON.ler() quando for necessário parsear o json na consulta.

Consulta

tipoRegistro = "integracao-exemplo-pessoas"

identificador = pessoas.id

idBanco = buscaPorIdentificador(tipoRegistro, tipoRegistro, true )

/**

*Abaixo uma função de busca que pode ser utilizada na consulta, podendo retornar o id do registro ou conteúdo*

*/

def buscaPorIdentificador = { tipoRegistro, identificador, somenteID = false ->

String tipo = tipoRegistro

def json

json = fonteFonteGenerica.busca( criterio : "tipoRegistro = '${tipo}' and identificador = '${identificador.toString()}'" ,  campos: "id, identificador, tipoRegistro, conteudo", primeiro : true )

if ( somenteID ){

return json?.id

  }

}

Inserção

fonteFonteGenerica = Dados.folha.v1.fonteGenerica;

tipoRegistro = "integracao-exemplo-pessoas"

idIntegracao = pessoas.id

idGerado = "5f158cfa0e717c0001488f2c"

Object registro = [ tipoRegistro : tipoRegistro , identificador : idIntegracao , conteudo : idGerado ] 

fonteFonteGenerica.importa(conteudo : registro);

Atualização

fonteFonteGenerica = Dados.folha.v1.fonteGenerica;

tipoRegistro = "integracao-exemplo-pessoas"

idIntegracao = pessoas.id

idGerado = "5f158cfa0e717c0001488f2c"

idBancoFolha = buscaPorIdentificador(tipoRegistro , idIntegracao, true ); 

Object registro = [ id : idBancoFolha, tipoRegistro : tipoRegistro , identificador : idIntegracao , conteudo : idGerado ] 

fonteFonteGenerica.atualiza( parametros : [ "id" : idBancoFolha ] , conteudo : registro );

Remoção

fonteFonteGenerica = Dados.folha.v1.fonteGenerica;

idBancoFolha = buscaPorIdentificador(tipoRegistro , idIntegracao, true ); 

fonteFonteGenerica.exclui(parametros : [ "id" : idBancoFolha] );