Árvore de páginas

Versões comparadas

Chave

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

...

Nota
titleAtenção!

O evento inputFields não foi criado para ser utilizado na "Movimentação em Bloco", seu foco é o tratamento de campos que vem do navegador.

Esse evento é disparado no momento em que os dados do formulário são passados para a BO responsável por formulário do fluig. O evento recebe como parâmetro um objeto do tipo FormController

Painel
borderColor#f2f2f2
bgColor#f2f2f2

O getValue não é utilizado em evento de formulário inputFields.

Este evento pode ser usado para que as datas persistidas por formulários customizados sejam salvas corretamente. Hoje no sistema as datas salvas através de formulários pelo navegador Chrome tem o padrão americano (yyyy-mm-dd), enquanto as datas nos demais navegadores tem o padrão brasileiro (dd/mm/yyyy). Para empresas que utilizam múltiplos navegadores e querem que os dados de data estejam padronizados, recomendamos a utilização do evento inputFields com o seguinte trecho de código.

Bloco de código
languagejs
titleCódigo para Datas
function inputFields(form) { 
    var regEx = /^\d{4}-\d{2}-\d{2}$/; 

    if (form.getValue("dt_solicitacao").match(regEx)) { 
        var split = form.getValue("dt_solicitacao").split('-'); 
        form.setValue("dt_solicitacao", split[2] + '-' + split[1] + '-' + split[0]); 
    } 
}

...

Bloco de código
languagejs
titleExemplo de implementação em um arquivo.js
linenumberstrue
  var beforeSendValidate = function(numState, nextState) {
    if (numState == 1 && nextState == 2 && document.form.codigo.value == '') {
      throw ("Erro: Para movimentar para a atividade 2, o código deve ser preenchido");
    }
    return true;
  }

getAttachments

É uma função que retorna uma Promise com a lista dos anexos do formulário.  Funciona de forma offline.

No exemplo abaixo utilizado um await para aguardar a lista dos arquivos que pode ser vazia caso não houver anexos.

Bloco de código
languagejs
titleChamada no JS

var listaArquivos = await JSInterface.getAttachments();

O objeto retorna sempre um json que é uma lista de arquivos. Cada arquivo pode ou não ter os dados, conforme abaixo:

Bloco de código
languagejs
themeEclipse
linenumberstrue
 [{
    "documentId": 4917,
    "version": 1000,
    "createDate": 1713872206178,
    "newAttach": false,
    "size": 1.2485828,
    "fileName": "file.pdf",
    "description": "file.pdf",
    "streamControlUrl": "" //Pode ser http ou caminho do arquivo /folder/file.pdf
  }]
Painel
borderColor#f2f2f2
bgColor#f2f2f2

Caso não tenha a informação no arquivo anexado, o valor será null por padrão.

Exemplo de chamada no JS de forma async:

Bloco de código
languagejs
async function getFiles() {  
    var listFiles = await JSInterface.getAttachments();
    
} 

sendAttachments

Para se ter sincronismo com o envio do formulário, pode-se utilizar o evento igual ao beforeSendValidate.

Esse código deve ser implementado em um arquivo javascript vinculado ao formulário html.

Bloco de código
languagejs
var sendAttachments = function(listFiles) { 
                             
} 
  • Os dados sempre serão uma lista de arquivos com os valores:
Bloco de código
languagepowershell
themeEclipse
linenumberstrue
 [{
    "documentId": 0,
    "version": 0,
    "createDate": null,
    "newAttach": true,
    "size": 1.2485828,
    "fileName": "file.pdf",
    "description": "file.pdf",
    "streamControlUrl": "" //Pode ser http ou caminho do arquivo /folder/file.pdf
  }]

setEnable

...

Este evento está depreciado e não é mais utilizado.

...