Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Fluig - Plataforma - DES - Não é possível transformar um Dataset em Offline

relogio_tempo_leitura_2.png Tempo aproximado para leitura: 00:05:00 min

Dúvida
Ao acessar o Dataset em painel de controle para ativar a sincronização retorna o aviso "Este Dataset não está completamente preparado para sincronização, sendo necessário implementar a estrutura padrão para utilizá-lo em cache ou Offline mobile."

Ambiente
TOTVS Fluig Plataforma - Desenvolvimento - Todas as versões


Solução

Para um Dataset estar disponível offline, é necessário implementar algumas funções padrões no desenvolvimento, mesmo que elas estejam vazias.

Na documentação, há um tópico que detalha essas exigências:

Atenção

A função defineStructure é obrigatória para configuração do dataset offline. Dentro do defineStructure, os nomes informados nos métodos coluna (addColumn), chave (setKey) e índice (addIndex) devem ser sempre em maiúsculo.

Você pode acessar o link para mais informações: https://tdn.totvs.com/pages/viewpage.action?pageId=212899013#Sincroniza%C3%A7%C3%A3odedatasets-Definindoaestruturadodataset

Abaixo, segue um exemplo de como desenvolver um Dataset que pode ser configurado para funcionar offline.

 
/**
* Datasets

* O componente Dataset, padroniza o acesso as informações, independente da origem dos dados.
* É possível visualizar ou processar informações na própria plataforma ou através de integração

 * Para maiores informações, acesse nossa documentação sobre Desenvolvimento de Datasets:
* https://tdn.totvs.com/display/fluig/Desenvolvimento+de+Datasets
*
 * Dataset Simples: https://tdn.totvs.com/display/fluig/Dataset+Simples
* Dataset Avançado:  https://tdn.totvs.com/pages/viewpage.action?pageId=412888219

*/
/**
 * createDataset: função responsável criar a instrução que o Dataset irá executar. 
* Nesse exemplo, está consultando o banco de dados da plataforma e retornando uma lista de usuários   
*
 * @param fields
* @param constraints
* @param sortFields
*
*/
function createDataset(fields, constraints, sortFields) {
log.info(" -------------------------------------------------------- ");
  var newDataset = DatasetBuilder.newDataset();
  log.info("Consulta para retornar os usuários da plataforma: " + myQuery);
  var tenantId = getValue("WKCompany");
  var dataSource = "/jdbc/AppDS";
    var ic = new javax.naming.InitialContext();
  var ds = ic.lookup(dataSource);
  var created = false;
    var myQuery = "select ut.email, ut.login from fdn_usertenant ut  where ut.TENANT_ID = " + tenantId;
  try {
        var conn = ds.getConnection();
      var stmt = conn.createStatement();
      var rs = stmt.executeQuery(myQuery);
      var columnCount = rs.getMetaData().getColumnCount();
      while (rs.next()) {
          if (!created) {
              for (var i = 1; i <= columnCount; i++) {
                  newDataset.addColumn(rs.getMetaData().getColumnName(i));
              }
              created = true;
          }
          var Arr = new Array();
          for (var i = 1; i <= columnCount; i++) {
              var obj = rs.getObject(rs.getMetaData().getColumnName(i));
              if (null != obj) {
                  Arr[i - 1] = rs.getObject(rs.getMetaData().getColumnName(i)).toString();
              } else {
                  Arr[i - 1] = "null";
              }
          }
          newDataset.addRow(Arr);
      }
  } catch (e) {
      log.error("ERRO==============> " + e.message);
  } finally {
      if (rs != null) {
          rs.close();
      }
      if (stmt != null) {
          stmt.close();
      }
      if (conn != null) {
          conn.close();
      }
  }
  return newDataset;
}
/**
* A função onMobileSync é chamada apenas durante a atualização de um dataset offline já existente. 
*
* @param user 
 */
function onMobileSync(user) {
var sortingFields = [];
var columnCount = rs.getMetaData().getColumnCount();
var constraints = [];
var result = {
'fields': fields,
'constraints': constraints,
'sortingFields': sortingFields
};
return result;
}
/**
* Através do método defineStructure é possível definir de forma mais detalhada quais são os campos da tabela bem como seus tipos.
* Também é possível criar índices e uma chave principal para obter ainda mais performance durante as consultas aos dados do dataset.
 * 
* ATENÇÃO: A função defineStructure é OBRIGATÓRIA para configuração do dataset offline.
* Para mais informações sobre o defineStructure, acesse nossa documentação:
* https://tdn.totvs.com/pages/viewpage.action?pageId=212899013#Sincroniza%C3%A7%C3%A3odedatasets-Definindoaestruturadodataset

 */
function defineStructure() {
  addColumn("EMAIL");
  addColumn("LOGIN");
    setKey(["EMAIL"]);
}
/**
* No método OnSync é possível determinar quais são as linhas novas a serem adicionadas na tabela como na sincronização comum.
* https://tdn.totvs.com/pages/viewpage.action?pageId=212899013#Sincroniza%C3%A7%C3%A3odedatasets-Sincroniza%C3%A7%C3%A3odeinforma%C3%A7%C3%B5es
*  
* @param lastSyncDate
*/
function onSync(lastSyncDate) {
}

Saiba Mais 

Datasets acessando banco de dados externo

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _