Fonte de dados Genérica
Como fazer uso dela e otimizar a performance de seus artefatos?
Confira abaixo as propriedades da fonte e exemplo de uso de cada método
- id
É o id do próprio do 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 de 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] );