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

É 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.

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.

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

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.

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

  }

}

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);

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 );

fonteFonteGenerica = Dados.folha.v1.fonteGenerica;

idBancoFolha = buscaPorIdentificador(tipoRegistro , idIntegracao, true ); 

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