=========
`xMova Android <../doc.html>`_
=========
-----------
File Update
-----------
Quando habilitado permite ao dispositivo móvel fazer requisições de arquivos no formato aceito pela funcionalidade de Field Server de entrega de arquivos. O serviço de obtenção de arquivos irá funcionar enquanto o aplicativo estiver aberto; tanto em foreground quanto em background, é interrompido se o aplicativo for encerrado e retomado quando o aplicativo for iniciado.
---------
Atributos:
---------
* ``interval``: Determina o tempo mínimo entre a busca por novos arquivos disponíveis. Padrão de 5 minutos.
* ``connectionTimeout``: Determina o timeout de conexão quando um servidor for encontrado e estiver fazendo a requisição de novos arquivos. Padrão de 20 segundos.
* ``readTimeout``: Determina o timeout de leitura dos dados após a conexão com o servidor que irá prover os novos arquivos for estabelecida. Padrão 1 minuto.
* ``folder``: Determina onde serão salvos os arquivos que forem obtidos do servidor. Caso não seja informado nenhum valor será solicitado ao usuário quando o serviço for ser executado pela primeira vez.
* ``fileUpdateSyncOut``: Determina se os registros da entidade _FILE_UPDATE que serão salvos quando os arquivos forem recebidos devem ser enviados para o Web Service. Por padrão não são enviados
* ``fileUpdateCleanUpDays``: Determina quantos dias; no mínimo, devem ser mantidos os registros da entidade _FILE_UPDATE do arquivos recebidos. Padrão de 1 dia.
* ``versionPassword``: Especifica qual a senha para que as versões das aplicação sejam redefinidas e sejam feito o download a partir da primeira versão. (Padrão: v3rs!0n)
* ``serviceUrl``: Especifica qual URL o serviço deve tentar buscar os arquivos.
------
Langs :
------
* ``FixedKeyFileUpdateTitle``: Exibida na tela de configurações e onde for necessário o título da funcionalidade de sincronismo de arquivos (File Update). (Padrão: Sincronismo de Arquivos)
* ``FixedKeyWordFolder``: Palavra 'Diretório'. (Padrão: Diretório)
* ``FixedKeyFileUpdateSelectFolderToSaveFilesMsg``: Exibida quando a rotina de busca por arquivos irá iniciar e nenhum diretório foi configurado. (Padrão: Selecione o diretório onde deverão ser salvos os arquivos sincronizados)
* ``FixedKeyFileUpdateReceivedFileMsg``: Exibida quando um novo arquivo é recebido. Usar a tag caso queira exibir o nome do arquivo. (Padrão: Em branco, caso não esteja presente não é mostrada nenhuma mensagem)
* ``FixedKeyFileUpdateReceivedFilesCountLabel``: Usada para exibir a quantidade de arquivos que já foram salvos no dispositivo. (Padrão: Arquivos Recebidos)
* ``FixedKeyFileUpdateFileNameLabel``: Usada para exibir o nome do arquivo que foi feito o download. (Padrão: Nome )
* ``FixedKeyFileUpdateFileVersionLabel``: Usada para exibir a versão do arquivo que foi feito o download. (Padrão: Versão)
* ``FixedKeyFileUpdateFileSizeLabel``: Usada para exibir o tamanho do arquivo que foi feito o download. (Padrão: Tamanho)
* ``FixedKeyFileUpdateSyncActionLabel``: Usada para identificar a ação que permite ao usuário fazer a execução da rotina de busca de arquivos. (Padrão: Sincronizar)
* ``FixedKeyMsgWaitUi``: Exibida quando algum processamento está sendo executado. (Padrão: Processando, aguarde...)
* ``FixedKeyTypePassword``: Exibida quando uma senha é necessária para que a ação seja executada. (Padrão: Informe a senha)
* ``FixedKeyFileUpdateResetVersions``: Usada para reiniciar o versionamento dos arquivos. (Padrão: Redefinir Versões)
* ``FixedKeyTryingToReachServer``: Exibida quando o aplicativo fez alguma mudança na rede e está tentando verificar se é possível se comunicar com o servidor. (Padrão: Tentando se comunicar com o servidor...)
* ``FixedKeyHttpConnecting``: Exibida quando o aplicativo está se connectando a algum servidor. (Padrão: Conectando...)
* ``FixedKeyReceivingFileMsg``: Usada para indicar que um arquivo está sendo recebido. (Padrão: Recebendo Arquivo: \nTamanho: )
* ``FixedKeyValidatingFileMsg``: Usada para indicar que um arquivo está sendo validado. (Padrão: Validando Arquivo: \nTamanho: )
* ``FixedKeyWordExecuting``: Usada para indicar que alguma rotina está sendo executada. (Padrão: Executando)
* ``FixedKeySearchingFilesMsg``: Usada para indicar que uma rotina está realizando a busca por arquivos. (Padrão: Buscando arquivos)
* ``FixedKeySavingFileMsg``: Usada para indicar que um arquivo está sendo salvo. (Padrão: Salvando arquivo: )
* ``FixedKeyFileSavedMsg``: Usada para indicar que um arquivo foi salvo. (Padrão: Arquivo salvo: )
* ``FixedKeyFileUpdateNoApplicationDefinedMsg``: Usada para indicar que nenhuma aplicação foi definida para que a busca por arquivos possa ser realizada. (Padrão: Nenhuma aplicação definida para busca de arquivos)
* ``FixedKeyNoServerFoundMsg``: Usada para indicar que nenhum servidor está definido para que uma determinada rotina seja executada. (Padrão: Nenhum servidor definido)
**Exemplo de Configuração de um File Update**::
App appCode=X
id 30181
name xMova File Update
version 1.0.87
intVersion 88
install type=fillAuth inputEntity=AuthInput
server
defaultDataSource jsonServiceApi
jsonServiceApi url=%jsonServiceApiUrl
defaultOnlineValidator jsonServiceApi
defaultReceiver jsonServiceApi
versionControl Crc
fieldServerClient
reachServerTimeout 30s
serverUrl http://192.168.0.[100-180]:8080
fileUpdate
interval 30m
connectionTimeout 30s
readTimeout 1m
OnUpdateFileRequest
Area area = selectFirst From Area
application = area.id + @| + area.descricao
OnUpdateFileRequestSuccess
toast Sucesso!
**Modelo da Entidade _FILE_UPDATE**::
_FILE_UPDATE sync=out
id inc
name String
application String
version long
server String
date Now
-------
Eventos
-------
* ``OnUpdateFilePrepareRequestUrl``: Quando presente deve retornar a url que será chamada para a obtenção de arquivos, caso não esteja presente o aplicativo irá fazer a busca por Field Servers usando a configuração de fieldServerClient. É mandatório que o evento, o atributo **serviceUrl** ou a configuração estejam presentes, caso todos estejam presentes é dado preferência ao evento para obter a url, após o evento o aplicativo tentar acessar a url do serviço e no caso de falha busca por um XFS..
* ``OnUpdateFileRequest``: Executado para obter o valor dos campos **application** e **version**. Caso o **version** não seja definido, o aplicativo irá fazer o controle automaticamente do incremento da versão de acordo com os arquivos recebidos. O parâmetro **application** deve ser definido usando o padrão de separação de chave e valores por | (pipes) conforme a request definida na configuração de entrega de arquivos do Field Server.
* ``OnUpdateFileRequestSuccess``: Executado quando um arquivo é recebido com sucesso. Contém o record da entidade _FILE_UPDATE com os dados do arquivo recebido que será salvo no banco de dados.
-----------------------------------
Fotos da Utilização da Funcionalidade:
-----------------------------------
.. figure:: ../images/fileupdate/menuoption.png
:height: 400px
:width: 240px
:align: left
Exibição da opção que é adicionada ao menu superior para que seja possível visualizar a execução da rotina. A rotina é executada em background, sem a intervenção do usuário, mas é possível que o usuário selecione a opção de sincronizar para que a rotina seja executada. (Sincronismo de Arquivo)
.. figure:: ../images/fileupdate/selectdir1.png
:height: 400px
:width: 240px
:align: left
Quando a rotina é iniciada e não existe nenhum diretório selecionado é apresentada ao usuário a mensagem de que um diretório deve ser selecionado para que os arquivos sejam recebidos.
.. figure:: ../images/fileupdate/selectdir2.png
:height: 400px
:width: 240px
:align: left
Quando o usuário confirma a mensagem de que um diretório deve ser selecionado é apresentado um navegador de diretórios para a seleção do diretório.
.. figure:: ../images/fileupdate/receivingfile.png
:height: 400px
:width: 240px
:align: left
Exemplo de um arquivo sendo recebido, para que a tela mostre informações da rotina sendo executada é necessário que o usuário clique na opção "Sincronizar", caso contrário a rotina irá aguardar o agendamento para executar em background. Na lista é possível visualizar as informações dos arquivos que já foram recebidos.
.. figure:: ../images/fileupdate/menuconfiguration.png
:height: 400px
:width: 240px
:align: left
É possível alterar as configurações da rotina utilizando o menu de configurações
.. figure:: ../images/fileupdate/fileupdateoption.png
:height: 400px
:width: 240px
:align: left
Ao entrar na tela de configurações deve-se selecionar a opção "Sincronismo de Arquivos"
.. figure:: ../images/fileupdate/configurations.png
:height: 400px
:width: 240px
:align: left
Exibição dos parâmetros disponíveis, para que seja possível redefinir as versões das aplicações é necessário fazer uso da senha presente no parâmeto **versionPassword**