Mudanças entre as edições de "Sincronização"
(→Aplicativo Diário de Classe (tablet)) |
m (uma edição) |
(Sem diferença)
| |
Edição atual tal como às 18h22min de 10 de maio de 2016
API
Métodos que retornam dados do Gestão (GET) e métodos que gravam dados no Gestão (POST).
Para não sobrecarregar o site, os métodos POST apenas gravam os dados na tabela DCL_Protocolo. Esses protocolos são processados por um serviço do Gestão configurado para executar de tempo em tempo.
As APIs ficam no projeto GestaoEscolar/GestaoAcademica.WebApi, na pasta Controllers.
Aplicativo Diário de Classe (tablet)
Uma API está inicialmente configurada por perfil de cliente. É possível verificar e alterar a url da API na tela de configuração, logado como administrador (admin / @1dm.n).
A sincronização inicial pode ser feita por escola, na tela de configuração, logado como administrador. Ou pode ser feita por um docente no momento do login.
Sempre ao logar o docente também pode escolher a turma que deseja sincronizar, isso agiliza o processo porque sincroniza apenas o necessário.
É possível configurar também, pelo banco do Gestão, a periodicidade para a execução de algumas sincronizações no tablet, mantendo os dados atualizados.
Para cada método de sincronização deve ser criada uma classe de sincronização em apk [diarioclasse-apk] > src > br.com.mstech.diarioclasse > sync na pasta get ou post. Deve também adicionar as chamadas no arquivo Sync.java e adicionar no enumerador em apk [diarioclasse-apk] > src > br.com.mstech.diarioclasse > enumeration > ApiEnum.java.
As chamadas ao métodos de sincronização devem ser assíncronas, utilizando uma AssyncTask ou uma Thread. Modelo de AssyncTask:
private class CarregarAulasTask extends AsyncTask<TIPO_PARAMETRO_ENTRADA, TIPO_PARAMETRO_PROGRESSO, TIPO_PARAMETRO_SAIDA> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(TIPO_PARAMETRO_ENTRADA... params) {
TIPO_PARAMETRO_SAIDA retorno;
TIPO_PARAMETRO_PROGRESSO status;
publishProgress(status);
return retorno;
}
@Override
protected void onProgressUpdate(TIPO_PARAMETRO_PROGRESSO... status) {
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
new CarregarAulasTask().execute();
Exemplo de Thread com repetição:
final Handler handler = new Handler();
final Runnable sincronismo = new Runnable() {
@Override
public void run() {
if (NetworkUtil.verificaConexaoInternet(getApplicationContext())) {
Sync sync = new Sync(getApplicationContext());
if (sync.postSincronizarDiarioClasse(common.getEscola().getId())) {
// remove repetição
handler.removeCallbacks(this);
} else {
handler.postDelayed(this, 5000);
}
} else {
handler.postDelayed(this, 5000);
}
}
};
new Thread(sincronismo).start();
Serviço
Pelo site do Gestão é possível configurar a periodicidade de execução dos serviços que processam os protocolos do Diário de Classe.
Um serviço diferente é executado para cada tipo de protocolo.
Os serviços ficam no projeto Serviços/MSTech.GestaoEscolar.Jobs, dentro da solução do Gestão.
Existe também o projeto Serviços/Testes, que pode ser utilizado para testar um protocolo específico ou a execução de um serviço.