Árvore de páginas

Versões comparadas

Chave

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

...

Deck of Cards
id1
Card
labelLocalizar o formulário

Localizar o formulário

01. Dentro do ECM, localize o formulário que está sendo utilizado no processo e em seguida acione Propriedades.

Card
labelDatasets do Formulário

Datasets do formulário

02. Após acionar as clicar nas propriedades do formulário, navegue até a aba Datasets do Formulário e relacione o dataset ao qual está sendo utilizado no campo zoom.


...

A partir do TOTVS Fluig Plataforma 1.5.2 (server), temos uma técnica para utilização de Pai e Filho e Zoom que vai facilitar em muito facilita o desenvolvimento sobre nossa a plataforma. Usando o Fluig Style Guide tudo ficará mais responsivo e esses dois componentes se adequam a web e ao mobile.

Painel
borderColor#f2f2f2
bgColor#f2f2f2

Leia mais detalhes na nossa documentação: Desenvolvimento de Formulários - Zoom e Desenvolvimento de Formulários - Pai x Filho.

...



Nota
titleAtenção
  • O Fluig dispõe de um serviço nativo para consumo de dados de datasets no componente de zoom. Não é permitido o uso de serviços personalizados para este componente.
  • Procure utilizar um número limitado de campos em componentes de Zoom para que se adequem melhor ao tamanho de tela. A utilização de um grande número de campos, ou do zoom dentro outros componentes, pode comprometer a visualização dos dados.

...

Informações
titleA partir da atualização 1.5.5

O método JSinterface.showCamera, também é aplicado na plataforma web. Acessando a plataforma o Fluig Plataforma pelo navegador, ao clicar em um botão utilizando o recurso você será direcionado para a aba Anexos e uma janela será exibida para a seleção dos arquivos.

Acessando a aba de Anexos será possível realizar o upload de apenas um arquivo por vez.

Painel
borderColor#f2f2f2
bgColor#f2f2f2

Tentar selecionar mais que um causará erro.


...

Com esse recurso é possível aplicar um desenvolvimento e/ou restrição somente no formulário mobile, independente da Web. Assim posso definir que um processo ou atividade vai receber um valor diferenciado ou que determinada atividade não pode ser executada pelo Mobile mobile via desenvolvimento.

Existe duas formas de fazer tal desenvolvimento:

...

O acesso de datasets pelo mobile é realizado com o xmlPRC, desse modo é possível trocar de informações com Fluig via AJAX. Para utiliza-lo, basta acionar as seguintes importações no HTML do formulário:


Bloco de código
languagejavascript
<script src="../vcXMLRPC.js"></script>
<script src="http://URL_DO_SERVIDOR/portal/resources/js/jquery/jquery.js"></script>


O acesso aos Datasets é igual à Webweb, a seguir são apresentados alguns exemplos:


Datasets internos Fluig:


Este este tipo de Dataset permite navegar em dados das entidades do próprio Fluig plataformaPlataforma, como usuários, grupos, processos ou tarefas por exemplo. Esses datasets são pré-definidos, por isso não podem ser alterados pelo usuário. A lista com os datasets disponíveis pode ser consultada aqui.


Bloco de código
languagejs
linenumberstrue
var filter = new Object();
filter["colleaguePK.colleagueId"] = "john"; 
var colleagues = DatasetFactory.getDatasetValues("colleague", filter);
if(colleagues.length > 0){       
	document.getElementById("colleagueName").value = colleagues[0].colleagueName;
	document.getElementById("login").value = colleagues[0].login;
}else{
	alert("Nenhum Usuário Encontrado");
}
Atenção



Painel
borderColor#f2f2f2
bgColor#f2f2f2


Para atualizações anteriores ao TOTVS Fluig Plataforma 1.5.6, substituir a linha 3 por:

Bloco de código
languagejavascript
var colleagues = getDatasetValues("colleague", filter);


2) Datasets internos formulário:


Este este tipo de Dataset permite navegar nos dados existentes em formulários de uma determinada definição de formulário publicada no Fluig. Para que uma definição de formulário seja disponibilizada como Dataset,  é é necessário preencher o campo Nome Dataset na publicação da definição de formulário. O

valor informado será utilizado para a busca do Dataset no Fluig;


Bloco de código
languagejavascript
var c1 = DatasetFactory.createConstraint("cod_area", "2", "2", ConstraintType.MUST); 
var constraints = new Array(c1);
			
var area = DatasetFactory.getDataset("areas", null, constraints, null);
			
if(area.values.length){
	document.getElementById("cod_area").value = area.values[0].cod_area;
	document.getElementById("area").value = area.values[0].area;
}else{
	alert("Area não encontrada") ;
}
info
Painel
borderColor#f2f2f2
bgColor#f2f2f2

Para fazer o download de um exemplo de formulário utilizando xmlPRC clique aqui.


3) Chamadas assíncronas:


 A partir do TOTVS Fluig Plataforma 1.5.6, você também pode é possível realizar chamadas assíncronas:


Bloco de código
languagejavascript
var filter = new Object();
filter["colleaguePK.colleagueId"] = "john"; 
var colleagues = DatasetFactory.getDatasetValues("colleague", filter,
{ success: function(colleagues) {
	if(colleagues.length > 0){       
		document.getElementById("colleagueName").value = colleagues[0].colleagueName;
		document.getElementById("login").value = colleagues[0].login;
	}else{
		alert("Nenhum Usuário Encontrado");
	}
}, error: function(jqXHR, textStatus, errorThrown) {}
});
Bloco de código
languagejavascript
DatasetFactory.getDataset("areas", null, constraints, null, { 
	success: function(area) {
		if(area.values.length){
			document.getElementById("cod_area").value = area.values[0].cod_area;
			document.getElementById("area").value = area.values[0].area;
		}else{
			alert("Area não encontrada") ;
		}
	}
}, error: function(jqXHR, textStatus, errorThrown) {}
);
Deck of Cards
idsample
Nota
titleImportante!
  • A geolocalização funciona apenas em ambientes https. Em ambientes http o navegador não permite informar a geolocalização. 
  • Essa técnica pode ser aplicada em Android quanto em iOS.
Card
id1
labelGeolocalização em formulários


Para utilizar a Geolocalização geolocalização em formulários é bem simples, basta incluir esse script no html:


Bloco de código
languagejavascript
function getLocation()
    {
        if (navigator.geolocation)
        {
        navigator.geolocation.getCurrentPosition(showPosition,showError);
		
        }
    }

    function showPosition(position)
    {
        var latlon=position.coords.latitude+","+position.coords.longitude;


        var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
        +latlon+"&zoom=14&size=300x200&sensor=false";
        document.getElementById("map").innerHTML="<img src='"+img_url+"'>";
		
		var lat = position.coords.latitude;
		var longi = position.coords.longitude;
		document.getElementById("latitude").value = lat;
		document.getElementById("longitude").value = longi;
    }

    function showError(error)
    {
        switch(error.code) 
        {
        case error.PERMISSION_DENIED:
          doc.innerHTML="Pedido de Geolocalização negado pelo usuário."
          break;
        case error.POSITION_UNAVAILABLE:
          doc.innerHTML="Informação de localização não está disponível."
          break;
        case error.TIMEOUT:
          doc.innerHTML="Solicitação de localização não retornou em tempo hábil (timeout)."
          break;
        case error.UNKNOWN_ERROR:
          doc.innerHTML="Erro desconhecido."
          break;
        }
    }
Card
id2
labelGeolocalização em páginas


Para utilizar a Geolocalização geolocalização em páginas, processos e na home é bem simples, basta incluir esse script no html:


Bloco de código
languagejavascript
function getLocation()
    {
        if (navigator.geolocation)
        {         
        navigator.geolocation.getCurrentPosition(showPosition, showError, { timeout: 10000 });            
}
    }

    function showPosition(position)
    {
        var latlon=position.coords.latitude+","+position.coords.longitude;


        var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
        +latlon+"&zoom=14&size=300x200&sensor=false";
        document.getElementById("map").innerHTML="<img src='"+img_url+"'>";
		
		var lat = position.coords.latitude;
		var longi = position.coords.longitude;
		document.getElementById("latitude").value = lat;
		document.getElementById("longitude").value = longi;
    }

    function showError(error)
    {
        switch(error.code) 
        {
        case error.PERMISSION_DENIED:
          doc.innerHTML="Pedido de Geolocalização negado pelo usuário."
          break;
        case error.POSITION_UNAVAILABLE:
          doc.innerHTML="Informação de localização não está disponível."
          break;
        case error.TIMEOUT:
          doc.innerHTML="Solicitação de localização não retornou em tempo hábil (timeout)."
          break;
        case error.UNKNOWN_ERROR:
          doc.innerHTML="Erro desconhecido."
          break;
        }
    }


Dica
titleDica

Para baixar um exemplo de formulário com geolocalização clique aqui.


Informações

Veja o exemplo (form-mobile-waze) em nosso repositório aqui.

Nota
titleImportante
Esta técnica funciona apenas em ambiente HTTPS a partir do Android 6.0 e iOS 10.


...

Guia de estilos off-line

Agora é possível utilizar o guia de estilos em modo off-line sem a necessidade de qualquer conexão a internet, ficou bem mais fácil e independente personalizar seu formulário para processo off-line. Uma vez ao dia o Fluig Mobile ira verificar novas atualizações, caso alguma atualização esteja disponível, o download da mesma será feita automaticamente de forma rápida e transparente, sem precisar se atentar a formas manuais e demoradas para atualização. O guia de estilos off-line está disponível tanto para Android como para IOS. 


...