Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice

Índice
outlinetrue
stylenone
exclude.*ndice

Definição de Formulário Mobile

No Fluig, é possível movimentar solicitações workflow, a partir de aplicativos móveis. Devido a isso, ao salvar uma definição de formulários no Fluig, automaticamente a definição de formulários mobile é geradas, de acordo com o mapeamento dos campos do formulários do processo.

Apesar do Fluig dispor da geração automática, existem diversas particularidades para o desenvolvimento e customização de definição de formulário Mobile, estas serão tradadas no decorrer deste guia.

 

Recomendações para Processos com Definição de Formulário Mobile

 

  1. Definição de Formulário Responsivo: Hoje no mercado existem variados tamanhos de telas e resoluções, por isso qualquer definição de formulário desenvolvida para Mobile deve ser responsivo, ou seja, deve se ajustar a qualquer tamanho de tela.
     

  2. Estética: A aparência visual e design do html devem ser atraentes para os usuários, conseguimos isso através de CSS ou jQueryMobile que será explicado nas próximas sessões.
      

  3. Usabilidade: A Definição de Formulário deve ser fácil de usar, contendo apenas o campos importantes para tarefas ou processo.
     

  4. Área de clique: Os elementos do HTML devem estar bem posicionados de forma que facilite a área de clique, pois hoje existem dispositivos que as telas são muito pequenas.Segue um exemplo:


     

  5. Posicionamento das ações: As ações mais importantes devem estar posicionadas onde o usuário consegue alcançar mais facilmente, conforme a figura:

     
     

  6. Customizações: As customizações devem ser feitas dentro dos eventos do processo ou de definições de formulário na Web, todos os eventos que são aplicados nos formulários Web também são aplicados nos formulários Mobile. Para mais informações acesse o guia Customização de Formulários.

  7. Arquivos anexos: Os arquivos anexos da definição de formulário Web não são carregados para a definição de formulário Mobile, por isso o CSS e as funções Javascript's devem ser implementadas dentro do HTML Mobile.

  8. Acesso a serviços internos e externos: Qualquer acesso a webservices ou outros serviços interno ou externo deve ser feito via javascript. Recomendamos o uso de jQuery Soap para Webservices.

  9. Nem todas informações precisam estar na Definição de Formulário Mobile: O grande limitador do Mobile é o tamanho de tela, por isso mapeie os campos que são mais importantes para que tenham prioridade na definição formulário. Existem campos que são informativos e não tem grande utilidade no processo ou tarefas, estes não precisam ser inclusos na definição de formulário Mobile.

  10. Tipos: Definições de Formulário Mobile suporta os tipos:
    1. text
    2. textArea
    3. radio
    4. select
    5. combobox
    6. checkbox.

Benefícios

Porque devo usar a Definição de Formulário Mobile?

  • Permite iniciar/movimentar solicitações de qualquer dispositivo móvel, independente de sua localização geográfica.
  • Acesso rápido as informações, mostrando apenas as informações mais relevantes.
  • Permite a continuidade do processo, mesmo fora do ambiente empresarial.
  • Através da funcionalidade "Processo Off-line" consigo preencher informações mesmo sem acesso a internet, para futura sincronização.


Criando uma Definição de Formulário Mobile

No Fluig é possível criar definições de formulários de diferentes maneiras, utilizando o Fluig Studio, através da modelagem de processos workflow ou através de upload de definição de formulário na navegação de documentos.

Acompanhe a seguir, movimentando-se pelas abas abaixo, as formas de criação de formulários:

 

Deck of Cards
effectDuration0.5
idinstall-windows
historyfalse
effectTypefade
Card
defaulttrue
id1
labelFluig Studio
titleSelecione a linguagem


Fluig Studio

Para incluir um novo formulário com suporte a dispositivos móveis, realize o procedimento padrão para exportação da definição de formulário e selecione os campos que irão compor a definição de formulário mobile na tela antes da conclusão da exportação.

Após a exportação será incluído outro arquivo HTML marcado como "mobile" na pasta forms do projeto Fluig

 

Veja na imagem a seguir a tela de seleção mobile na exportação de uma definição de formulário:

Figura 15 - Definição de formulário mobile.

 

Após a exportação, a definição de formulário deve ficar conforme imagem a seguir:

 

Informações
titleNota

O Fluig identificada a definição de formulário Mobile pelo nome, este deve ter o mesmo nome do formulário Web acrescido da palavra "_ecmMobile".

Exemplo: Criado a definição de formulário web "compras.html", a definição de formulário Mobile, obrigatoriamente, deve ser nomeada como: "compras_ecmmobile.html"

Card
id2
labelFormulário Mobile em Processos
titleTermo de uso


Configuração de Definição de Formulário Mobile em Processos

É possível permitir a criação da Definição de Formulário Mobile também através do Gerador de Formulário, conforme passo a seguir:

 

Passo 1: Criar ou editar um processo existente e acionar o item Formulário.

 

Passo 2: Selecionar a pasta destino onde essa definição de formulário será publicada, também atribua um título e descrição. Após isso, clique em Criar Formulário.

 

Passo 3:  Inclua os campos e em cada um deles, selecione se este será também adicionado à definição de formulário para dispositivos móveis, clicando na opção Formulário Mobile?.

 

Informações
iconfalse
titleInformação

Nem todos os campos mapeados no formulário do processo, podem ser mapeados para o formulário para dispositivos móveis. Os campos que podem ser mapeados exibem a opção "Formulário Mobile?".



Card
id3
labelUpload via Navegação de Documentos
titleInstalação do fluig


Upload via Navegação de Documentos

No upload via navegação de documentos é feito como uma publicação padrão de definição de formulário, onde o formulário web deve ter um nome definido e o Formulário Mobile deve ser acrescido com o termo _ecmmobile

 

Informações
titleNota

O Fluig identificada o formulário Mobile pelo nome, o formulário Mobile deve ter o mesmo nome do formulário Web acrescido da palavra "_ecmMobile".

Exemplo: Criado o formulário web "compras.html", o formulário Mobile, obrigatoriamente, deve ser nomeado como: "compras_ecmmobile.html"

Nota
titleAtenção

As Definições de Formulários geradas pelos métodos de criação acima elencados, precisam ser editados caso necessite de alguma customização especial, eles são gerados automaticamente contendo os itens básicos para seu funcionamento.

 

Customizando de Definição de Formulário Mobile

Com a inclusão de definição de formulários que suportem a visualização em dispositivos móveis, é possível movimentar solicitações Workflow e realizar o preenchimento das informações da definição de formulários com maior mobilidade e agilidade.

Como já vimos, a Definição de Formulário Mobile não carrega arquivos anexos, logo, toda customização deve ser feita dentro do HTML, este possui uma série de particularidades que serão tratadas a seguir:

CSS

Ao customizar uma Definição de Formulário Mobile, o CSS utilizado para parte Web provavelmente não se aplica ao para o arquivo do dispositivo móvel, por isso é recomendado que a Definição de Formulário Mobile use um CSS próprio que mantenha o formulário responsivo.

O CSS deve ser inserido dentro da head no arquivo .html Mobile e deve ser utilizada a tag:

Bloco de código
languagecss
<style type="text/css"> Insira aqui o CSS </style>.

 

Acompanhe a seguir, movimentando-se pelas abas abaixo, alguns exemplos de componentes CSS que podem ser aplicados na definição de formulários Mobile:

 

Deck of Cards
effectDuration0.5
idinstall-windows
historyfalse
effectTypefade
Card
defaulttrue
id1
labelBody
titleSelecione a linguagem


Body

Bloco de código
languagecss
body {
font-family: Verdana, Geneva, Tahoma, sans-serif;
background-color: #D1D3D4; /* Background color */
color: #58595B; /* Foreground color used for text */
font-family: Helvetica;
font-size: 14px;
margin: 0; /* Amount of negative space around the outside of the body */
padding: 0; /* Amount of negative space around the inside of the body */ 
min-width:300px;
}
Card
id2
labelHeadings
titleTermo de uso


Headings

Bloco de código
languagecss
h1 {
margin: 0;
padding: 0;
background-color: #D1D3D4;
color: #FFF;
display: block;
font-size: 18px;
font-weight: bold;
padding: 10px 0;
text-align: center;
text-decoration: none;
}
Card
id3
labelList
titleInstalação do fluig


List

Bloco de código
languagecss
ul {
list-style: none;
margin: 10px;
padding: 0;
}
ul li {
background-color: #FFFFFF;
border: 1px solid #999999;
color: #58595B;
display: block;
font-size: 14px;
font-weight: bold;
margin-bottom: -1px;
padding: 12px 10px;
text-decoration: none;
}
ul li:first-child {
-webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px;
 
}
ul li:last-child {
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
 position:relative;
}
Card
id4
labelLabel
titleInstalação do fluig


Label

Bloco de código
languagecss
.mylabel {
width: 28%;
 overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
display:inline-block;
 position:relative;
 float:left;
 line-height:32px;
}
Card
id5
labelInput Text
titleInstalação do fluig


Input Text

Bloco de código
languagecss
input[type=text] {
width: 70%; 
 font-family: Verdana, Geneva, Tahoma, sans-serif;
font-size: 14px;
background-color: #E8E8E8;
 position:relative;
 float:right;
}
Card
id3
labelTextArea
titleInstalação do fluig


TextArea

Bloco de código
languagecss
textarea {
width: 70%; 
 font-family: Verdana, Geneva, Tahoma, sans-serif;
font-size: 14px;
background-color: #E8E8E8;
 position:relative;
 float:right;
}
Card
id3
labelSelect
titleInstalação do fluig


Select

Bloco de código
languagecss
select {
width: 70%; 
 font-family: Verdana, Geneva, Tahoma, sans-serif;
font-size: 14px;
background-color: #E8E8E8;
 position:relative;
 float:right;
}

 

Você deve tratar no CSS todos os componentes que serão utilizados no seu HTML Mobile para que todos tenham o mesmo padrão, seu HTML Mobile com CSS deve ter essa estrutura:

Bloco de código
languagehtml/xml
<html >
<head>
<title>Formulário de Compras </title>
<style type="text/css">
 <!--Aqui você deve incluir a estrutura do CSS de cada componente-->
</style>
</head>
<body>
</ body >
</html>
Nota
titleAtenção

Essa é a estrutura básica, dentro de cada tag deve ter elementos e lógicas correspondentes a elas.

 

jQuery Mobile

O jQuery Mobile é um framework de interface para dispositivos móveis que visa dar um layout responsivo para as definições de formulários. Ele facilita muito no desenvolvimento, pois você não precisa ficar criando um CSS próprio para cada elemento e pode ser utilizado no Fluig Mobile. É possível acompanhar exemplos no link: http://demos.jquerymobile.com/1.4.2/.

 

Este pode ser incorporado no HMTL Mobile de forma simples:

Bloco de código
languagehtml/xml
<html >
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
</head>
<body>
</ body >
</html>

 

JavaScript

Assim como o CSS, o javascript também deve estar dentro do HTML Mobile, logo toda lógica que na web, normalmente, fica em arquivos .js, deve ser transferido para a Definição de Formulário Mobile.

Para manter uma organização dentro do HTML, recomendamos deixar as lógicas no final no arquivo:


Bloco de código
languagehtml/xml
<html>
<head>
</head>
<body>
</body>
</html>
<script language="javascript">
 /* Aqui você deve incluir a lógica javascript */
</script>
Nota
titleAtenção

Para testar a Definição de Formulário Mobile, abra o arquivo html Mobile em um navegador no desktop. Se não houverem inconsistências, o formulário provavelmente abrirá corretamente também no Fluig Mobile.

 

Serviços

Para utilizar serviços internos ou externos ao Fluig é necessário instanciar, executar e tratar o retorno do serviço via javascript. Para webservices, recomendamos o uso de jQuery Soap.

Segue algumas dicas:

  • O uso de serviços internos do Fluig, como por exemplo Dataset, devem ser feitos preferencialmente nas eventos de customização de Definição de Formulário e Processos, desta maneira o que será customizado para a web, também será adotado para mobile, evitando a replicação de código.
  • Técnicas especiais para formulário web, como por exemplo a chamadas de dataset dentro do formulário, não são aplicadas no Mobile. 

 

Tradução de Formulários

A tradução de Definição de Formulário Mobile deve ser feita seguindo o guia de Tradução de Formulários . Porém o diferencial, é que será preciso incluir três novos arquivos com as literais seguindo a nomenclatura abaixo:

  • Português: nome_do_formulario_mobile_pt_BR.properties;
  • Inglês: nome_do_formulario_mobile_en_US.properties;
  • Espanhol: nome_do_formulario_mobile_es.properties.
Exemplo: Se a Definição de Formulário chama-se compras_ecmmobile, então os nomes dos arquivos .properties serão:
  • compras_ecmmobile_pt_BR.properties;
  • compras_ecmmobile_en_US.properties;
  • compras_ecmmobile_es.properties.

 

Pai Filho para dispositivos móveis

Os campos que empregam a técnica de pai e filho não são inseridos na definição de formulário gerado automaticamente para dispositivos móveis pelo Fluig. Porem o produto lhe permite desenvolver uma definição de formulário customizada para dispositivos móveis consultando estes campos.

Nota
A edição de campos pai e filho através de dispositivos móveis não é possível, mesmo em definição de formulários customizadas. Estes campos são disponíveis apenas para consulta.

 

A consulta aos campos pai e filho em dispositivos móveis é realizada por meio de funções javaScript, disponíveis dentro do objeto masterList no momento da exibição do formulário. São elas:

 

getValue

Retorna uma string com o valor de um campo pai e filho, recebendo como parâmetros o numero de sequencia do filho e o nome do campo.

Bloco de código
languagejavascript
masterList.getValue(sequence,field);


getValues

Retorna um objeto com todos os valores dos campos pai e filho, agrupados pelo numero de sequencia. Este método não possui parâmetros.

Bloco de código
languagejavascript
masterList.getValues();

 

getValuesBySequence

Retorna um objeto com todos os valores do campos de uma determinada sequencia. Recebe como paramento o numero da sequencia.

Bloco de código
languagejavascript
masterList.getValuesBySequence(sequence);


getValuesByField

Retorna todas as sequencias e valores de um determinado campo. Recebe como parâmetro o nome do campo.

Bloco de código
masterList.getValuesByField(field);

 

Exemplo

Faça o download dos arquivos exemplo aqui

Abaixo segue um exemplo de definição de formulário que foi mapeado para uso em dispositivos móveis:

 

  • Definição de Formulário Web

 

  • Definição de Formulário Mobile

 

Informações
titleNota

Como podemos ver, a Definição de Formulário Web tem muitos campos e seu mapeamento para dispositivos móveis deve ser feito com muito cuidado.

Os campos Dados da proposta foram mapeados para Mobile, notem que tem campos que não existem no Mobile, pois não se faz necessário neste contexto:

 

Itens que estão em uma tabela podem ser transformados em um collapsible do jQueryMobile.

Ao acionar o botão '+', o item é expandido: