feat: upgrade to async extractor, add RAG processing, link healing and Docker support

This commit is contained in:
rodolpho
2026-05-07 18:43:43 -03:00
parent 68dc35abbd
commit 570292d8a9
116 changed files with 16277 additions and 388 deletions
@@ -52,7 +52,7 @@ Vários locais da plataforma podem fazer uso dos dados retornados pelos *Dataset
No desenvolvimento de um widget, é possível acessar dados de *Datasets*, através da linguagem *Javascript*, utilizando a biblioteca *DatasetFactory*.
Consulte a documentação [Integrando widget com formulários/datasets da plataforma](../../Recurso de Páginas e Widgets (WCM)/Construção de Widgets e Layouts/Widgets/Como criar um widget que busque conteúdo/Integrando widget com formuláriosdatasets do Fluig Plataforma.md).
Consulte a documentação [Integrando widget com formulários/datasets da plataforma](../../Recurso de Páginas e Widgets (WCM).md)/Construção de Widgets e Layouts/Widgets/Como criar um widget que busque conteúdo/Integrando widget com formuláriosdatasets do Fluig Plataforma.md).
## Via pontos de customização
@@ -342,7 +342,7 @@ Nos exemplos a seguir, será mostrado das duas formas.
No exemplo a seguir é feito uma busca dos documentos com o filtro do tipo **SHOULD,** onde e para retornar os documentos do tipo 1 e 2 **(Pasta e documento).**
```
```javascript
var newDataset = DatasetBuilder.newDataset();
newDataset.addColumn("Document ID");
newDataset.addColumn("Document version");
@@ -369,7 +369,7 @@ var newDataset = DatasetBuilder.newDataset();
No exemplo a seguir, será realizada a pesquisa de documentos para retornar os registros que contenham a palavra **“API”,** utilizando o like e como o limite de cinco registros.
```
```javascript
var newDataset = DatasetBuilder.newDataset();
newDataset.addColumn("Document ID");
newDataset.addColumn("Document version");
@@ -55,7 +55,7 @@ A seguir serão apresentados alguns exemplos para codificação do dataset avan
---
```
```javascript
 function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
@@ -93,7 +93,7 @@ As constraints podem ser utilizadas apenas para Datasets internos. Datasets avan
Para acessar estas propriedades e analisar os valores de cada item, pode-se utilizar um laço de repetição, conforme implementação abaixo:
```
```javascript
function createDataset(fields, constraints, sortFields) {
var company;
var initialDate;
@@ -119,7 +119,7 @@ function createDataset(fields, constraints, sortFields) {
---
```
```javascript
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("DDD");
@@ -179,7 +179,7 @@ function getDefaultValues(){ // retorna valores default para serem filtrados
Consulta utilizando a *constraint*:
```
```javascript
function createDataset(fields, constraints, sortFields) {
var c1 = DatasetFactory.createConstraint("DDD", "47", "47", ConstraintType.MUST);
@@ -190,7 +190,7 @@ function createDataset(fields, constraints, sortFields) {
Caso necessário, também é possível obter o código da empresa e do usuário autenticado através do método getValue(), conforme exemplo abaixo:
```
```javascript
function createDataset(fields, constraints, sortFields) {
var companyId = getValue("WKCompany");
var currentUser = getValue("WKUser");
@@ -206,7 +206,7 @@ function createDataset(fields, constraints, sortFields) {
Abaixo temos um exemplo de como implementar o permissionamento em datasets avançados.
```
```javascript
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
try{
@@ -264,7 +264,7 @@ Através do uso de Datasets avançados é possível realizar uma série de busca
No exemplo abaixo, utilizando o método createDataset foi desenvolvida uma busca constituída por mais de um campo da tabela, que recebe o valor informado no campo zoom e em seguida retorna o dataset avançado com os registros encontrados em ambos ou em um único campo da busca. Caso não seja informado nenhum valor, serão retornados todos os registros encontrados no banco.
```
```javascript
 function createDataset(fields, constraints, sortFields) {
var c1 = null;
var c2 = null;
@@ -353,7 +353,7 @@ Para acessar informações de um "pai-filho" de uma definição de formulário
**Exemplo 1**
```
```javascript
function createDataset(fields, constraints, sortFields) {
//Cria as colunas
@@ -177,7 +177,7 @@ Neste tópico será apresentado o código necessário para criar um novo *datase
O exemplo abaixo apresenta o acesso ao *datasource* **MeuDataSet** criado anteriormente no arquivo **standalone.xml** (a partir da 2.0) ou **domain.xml** (1.6 até 1.8.2).
```
```javascript
function createDataset(fields, constraints, sortFields) {
var newDataset = DatasetBuilder.newDataset();
log.info("QUERY: " + myQuery);
@@ -157,7 +157,7 @@ Os métodos *updateRow* e *deleteRow* recebem uma lista de objetos que são os v
**Exemplo:**
```
```javascript
function onSync(lastSyncDate) {
var dataset = DatasetBuilder.newDataset();
var integracao = ServiceManager.getService('FLUIG3');
@@ -219,7 +219,7 @@ function onSync(lastSyncDate) {
Quando for necessário salvar no banco os dados do código, o corpo do método deve ser preenchido como abaixo.
```
```javascript
function onSync(lastSyncDate) {
var dataset = DatasetBuilder.newDataset();
dataset.addRow(new Array(2256, "SÃO PAULO", 1058, "6", "ESPORTE"));
@@ -361,7 +361,7 @@ As outras informações se referem a frequência e horário de execução da tar
Essa opção possibilita a consulta dos resultados do dataset no banco de dados da plataforma. Qualquer tipo de dataset pode ser consultado, mesmo aqueles que não tenham sincronização.
Para realizar a consulta, acione o ícone ![barras horizontais](..\..\..\images\fluigicon-list-dropdown%20(1).png) presente na coluna **Mais ações** e, em seguida, a opção **Consultar**.
Para realizar a consulta, acione o ícone ![barras horizontais](../../../images/fluigicon-list-dropdown%20(1).png).png) presente na coluna **Mais ações** e, em seguida, a opção **Consultar**.
![](..\..\..\images\Image%2022.jpg)
@@ -104,7 +104,7 @@ Um dataset pode ser associado somente a um único componente, caso haja mais de
Após essas configurações, basta realizar o deploy do arquivo **.ear** como de costume na central de componentes. Após receber a notificação de que o aplicativo foi instalado, basta ativá-lo na central de componentes.
Uma vez ativado, os datasets serão listados na página de **Datasets**. O ícone ![](..\..\..\images\flaticon-info%20(1).png) ficará ao lado do menu de ações, na listagem de dataset informando quando um dataset está vinculado a um componente, ao passar o mouse no indicativo apresentado, poderá ser verificado a qual componente o dataset pertence.
Uma vez ativado, os datasets serão listados na página de **Datasets**. O ícone ![](../../../images/flaticon-info%20(1).png).png) ficará ao lado do menu de ações, na listagem de dataset informando quando um dataset está vinculado a um componente, ao passar o mouse no indicativo apresentado, poderá ser verificado a qual componente o dataset pertence.
![](..\..\..\images\datasets%20e%20componentes.png)
@@ -136,7 +136,7 @@ Para atualizar o conteúdo de um dataset que seja dependente de um componente, b
**01.** Realize o upload do arquivo **.ear** atualizado.
**02.** Na visualização de dataset dependentes pela central de componentes, clique em **Atualizar ou Criar Datasets**. Essa visualização pode ser acessada através do ícone ![](..\..\..\images\flaticon-info%20(1).png).
**02.** Na visualização de dataset dependentes pela central de componentes, clique em **Atualizar ou Criar Datasets**. Essa visualização pode ser acessada através do ícone ![](../../../images/flaticon-info%20(1).png).png).
Datasets que precisam ser atualizados são identificados pela cor amarela, como na imagem abaixo.
@@ -38,7 +38,7 @@ O objetivo deste guia é descrever os eventos de formulários avançados no flui
---
Antes de iniciar, é importante que leia a documentação sobre [Desenvolvimento de Formulários](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários.md) e, durante a leitura você vai sentir a necessidade de entender um pouco mais sobre o parâmetro *form* ([FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md))
Antes de iniciar, é importante que leia a documentação sobre [Desenvolvimento de Formulários](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários.md) e, durante a leitura você vai sentir a necessidade de entender um pouco mais sobre o parâmetro *form* ([FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md))
# Como criar eventos de formulário
@@ -169,7 +169,7 @@ Os eventos de formulários são um conjunto de scripts carregados pela API de Fo
---
Esse evento é o primeiro a ser disparado. Ocorre antes de qualquer outro evento da definição de formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é o primeiro a ser disparado. Ocorre antes de qualquer outro evento da definição de formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Neste contexto, o FormControler deve ser usado apenas para consulta de dados, alterações nos dados não serão persistidas.
@@ -184,13 +184,13 @@ No contexto deste evento a variável *form* pode ser usada somente para consul
---
Esse evento é disparado no momento em que os objetos do formulário são apresentados. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md) e um parâmetro *customHTML* que serve para personalizar e inserir dados diretamente do servidor no formulário.
Esse evento é disparado no momento em que os objetos do formulário são apresentados. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md) e um parâmetro *customHTML* que serve para personalizar e inserir dados diretamente do servidor no formulário.
Esse evento pode ser utilizado para alterar os valores a serem apresentados no campo do formulário e é o único que permite a alteração antes da renderização. Para isto basta usar o seguinte procedimento:
**Ao modificar um registro, preenche o campo com o valor 1**
```
```javascript
function displayFields(form, customHTML) {
if ( form.getFormMode() == “MOD” ) {
form.setValue('RNC_colab_abertura', new java.lang.Integer(1));
@@ -200,7 +200,7 @@ function displayFields(form, customHTML) {
Você pode também ocultar campos pelo nome ou pelo id:
```
```javascript
function displayFields(form, customHTML) {
form.setVisible("campoA", false);
form.setVisibleById("linha___1", false);
@@ -217,7 +217,7 @@ Outras funções interessantes que podem ser usados neste evento são:
| Sem customizações | Com customização |
| --- | --- |
| | ``` function displayFields(form, customHTML) { form.setShowDisabledFields(true); form.setHidePrintLink(true); } ``` |
| | ```function displayFields(form, customHTML) { form.setShowDisabledFields(true); form.setHidePrintLink(true); } ``` |
| comdelete.png | ``` function displayFields(form, customHTML) { form.setHideDeleteButton(false); } ``` |
Formulário funcional com exemplos de utilização de***setVisible*,***setVisibleById***, setHideDeleteButton e setHidePrintLink****:****
@@ -310,7 +310,7 @@ Formulário funcional com exemplos de utilização de***setVisible*,***setVisibl
</div>
</body>
</html>
```
```javascript
**displayFields.js - Clique para expandir** Expandir origem
@@ -349,9 +349,9 @@ Formulário funcional com exemplos de utilização de***setVisible*,***setVisibl
form.setHidePrintLink(true); // bloqueia botão de imprimir
}
}
```
```javascript
Conforme explicado, o *customHTML* permite personalizar o formulário diretamente pelo método displayFields. Este exemplo, adaptado dos nos [Exemplos Avançados](../../Recurso de Processos (BPM)/Desenvolvimento de Workflow/Exemplos avançados.md), mostra como usar o displayFields para, no formulário, ter acesso ao modo de visualização, código do solicitante e número da atividade. Além de preencher alguns campos da solicitação com a data atual e o nome do solicitante:
Conforme explicado, o *customHTML* permite personalizar o formulário diretamente pelo método displayFields. Este exemplo, adaptado dos nos [Exemplos Avançados](../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow/Exemplos avançados.md), mostra como usar o displayFields para, no formulário, ter acesso ao modo de visualização, código do solicitante e número da atividade. Além de preencher alguns campos da solicitação com a data atual e o nome do solicitante:
```
function displayFields(form,customHTML){
@@ -404,7 +404,7 @@ function buscaNomeDeUsuarioPeloIdentificador(codigoSolicitante) {
return dataset.getValue(0, "colleagueName");
}
```
```javascript
Para que os dados sejam carregados e apresentados em tela, principalmente em dispositivos *mobile*, é necessário chamar as funções que irão carregá-los dentro de uma estrutura de *read*.
@@ -426,7 +426,7 @@ Mas, exceto em situações onde há mais coisas no *customHTML* que justifiquem
---
Esse evento é disparado no momento em que os objetos do formulário são habilitados. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é disparado no momento em que os objetos do formulário são habilitados. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
**Exemplo de como tornar campo desativado conforme o modo do formulário**
@@ -538,7 +538,7 @@ Atençã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](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md). 
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](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md). 
O getValue não é utilizado em evento de formulário inputFields.
@@ -561,7 +561,7 @@ function inputFields(form) {
---
Esse evento é disparado antes da gravação dos dados do formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é disparado antes da gravação dos dados do formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Ele é utilizado para fazer validações nos campos.
@@ -589,7 +589,7 @@ function validateForm(form) {
---
Esse evento é disparado após a criação de um formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é disparado após a criação de um formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Este evento pode ser feito para criar algum tipo de log ou disparar algum evento:
@@ -605,7 +605,7 @@ function afterSaveNew(form) {
---
Este é último evento disparado no formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Este é último evento disparado no formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Neste contexto, o FormControler deve ser usado apenas para consulta de dados, alterações nos dados não serão persistidas. Assim como o *afterSaveNew* pode ser usado para log ou disparo de algum tipo de evento.
@@ -38,7 +38,7 @@ O objetivo deste guia é descrever os eventos de formulários avançados no Flui
---
Antes de iniciar, é importante que leia a documentação sobre [Desenvolvimento de Formulários](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários.md) e, durante a leitura você vai sentir a necessidade de entender um pouco mais sobre o parâmetro *form* ([FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md))
Antes de iniciar, é importante que leia a documentação sobre [Desenvolvimento de Formulários](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários.md) e, durante a leitura você vai sentir a necessidade de entender um pouco mais sobre o parâmetro *form* ([FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md))
# Como criar eventos de formulário
@@ -171,7 +171,7 @@ Os eventos de formulários são um conjunto de scripts carregados pela API de Fo
---
Esse evento é o primeiro a ser disparado. Ocorre antes de qualquer outro evento da definição de formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é o primeiro a ser disparado. Ocorre antes de qualquer outro evento da definição de formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Neste contexto, o FormControler deve ser usado apenas para consulta de dados, alterações nos dados não serão persistidas.
@@ -186,13 +186,13 @@ No contexto deste evento a variável *form* pode ser usada somente para consul
---
Esse evento é disparado no momento em que os objetos do formulário são apresentados. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md) e um parâmetro *customHTML* que serve para personalizar e inserir dados diretamente do servidor no formulário.
Esse evento é disparado no momento em que os objetos do formulário são apresentados. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md) e um parâmetro *customHTML* que serve para personalizar e inserir dados diretamente do servidor no formulário.
Esse evento pode ser utilizado para alterar os valores a serem apresentados no campo do formulário e é o único que permite a alteração antes da renderização. Para isto basta usar o seguinte procedimento:
**Ao modificar um registro, preenche o campo com o valor 1**
```
```javascript
function displayFields(form, customHTML) {
if ( form.getFormMode() == “MOD” ) {
form.setValue('RNC_colab_abertura', new java.lang.Integer(1));
@@ -202,7 +202,7 @@ function displayFields(form, customHTML) {
Você pode também ocultar campos pelo nome ou pelo id:
```
```javascript
function displayFields(form, customHTML) {
form.setVisible("campoA", false);
form.setVisibleById("linha___1", false);
@@ -219,7 +219,7 @@ Outras funções interessantes que podem ser usados neste evento são:
| Sem customizações | Com customização |
| --- | --- |
| | ``` function displayFields(form, customHTML) { form.setShowDisabledFields(true); form.setHidePrintLink(true); } ``` |
| | ```function displayFields(form, customHTML) { form.setShowDisabledFields(true); form.setHidePrintLink(true); } ``` |
| comdelete.png | ``` function displayFields(form, customHTML) { form.setHideDeleteButton(false); } ``` |
Formulário funcional com exemplos de utilização de***setVisible*,***setVisibleById***, setHideDeleteButton e setHidePrintLink****:****
@@ -312,7 +312,7 @@ Formulário funcional com exemplos de utilização de***setVisible*,***setVisibl
</div>
</body>
</html>
```
```javascript
**displayFields.js - Clique para expandir** Expandir origem
@@ -351,9 +351,9 @@ Formulário funcional com exemplos de utilização de***setVisible*,***setVisibl
form.setHidePrintLink(true); // bloqueia botão de imprimir
}
}
```
```javascript
Conforme explicado, o *customHTML* permite personalizar o formulário diretamente pelo método displayFields. Este exemplo, adaptado dos nos [Exemplos Avançados](../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow/Exemplos avançados.md), mostra como usar o displayFields para, no formulário, ter acesso ao modo de visualização, código do solicitante e número da atividade. Além de preencher alguns campos da solicitação com a data atual e o nome do solicitante:
Conforme explicado, o *customHTML* permite personalizar o formulário diretamente pelo método displayFields. Este exemplo, adaptado dos nos [Exemplos Avançados](../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow/Exemplos avançados.md), mostra como usar o displayFields para, no formulário, ter acesso ao modo de visualização, código do solicitante e número da atividade. Além de preencher alguns campos da solicitação com a data atual e o nome do solicitante:
```
function displayFields(form,customHTML){
@@ -406,7 +406,7 @@ function buscaNomeDeUsuarioPeloIdentificador(codigoSolicitante) {
return dataset.getValue(0, "colleagueName");
}
```
```javascript
Para que os dados sejam carregados e apresentados em tela, principalmente em dispositivos *mobile*, é necessário chamar as funções que irão carregá-los dentro de uma estrutura de *read*.
@@ -428,7 +428,7 @@ Mas, exceto em situações onde há mais coisas no *customHTML* que justifiquem
---
Esse evento é disparado no momento em que os objetos do formulário são habilitados. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é disparado no momento em que os objetos do formulário são habilitados. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
**Exemplo de como tornar campo desativado conforme o modo do formulário**
@@ -540,7 +540,7 @@ Atençã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](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md). 
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](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md). 
O getValue não é utilizado em evento de formulário inputFields.
@@ -563,7 +563,7 @@ function inputFields(form) {
---
Esse evento é disparado antes da gravação dos dados do formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é disparado antes da gravação dos dados do formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Ele é utilizado para fazer validações nos campos.
@@ -591,7 +591,7 @@ function validateForm(form) {
---
Esse evento é disparado após a criação de um formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esse evento é disparado após a criação de um formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Este evento pode ser feito para criar algum tipo de log ou disparar algum evento:
@@ -607,7 +607,7 @@ function afterSaveNew(form) {
---
Este é último evento disparado no formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Este é último evento disparado no formulário. O evento recebe como parâmetro um objeto do tipo [FormController](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Neste contexto, o FormControler deve ser usado apenas para consulta de dados, alterações nos dados não serão persistidas. Assim como o *afterSaveNew* pode ser usado para log ou disparo de algum tipo de evento.
@@ -20,7 +20,7 @@ O objetivo deste guia é descrever como criar os eventos de formulários avança
---
Antes de iniciar, é importante conhecer o [Fluig Studio](../../../Fluig Studio.md) e ler a documentação sobre [Desenvolvimento de Formulários](../../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários.md).
Antes de iniciar, é importante conhecer o [Fluig Studio](../../../Fluig Studio.md) e ler a documentação sobre [Desenvolvimento de Formulários](../../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários.md).
# Como criar eventos de formulário
@@ -84,7 +84,7 @@ São disponibilizadas algumas propriedades referentes ao processo que esta sendo
| Propriedade | Descrição | Tipo |
| WKCompany | Código da empresa | long |
| WKUser | Usuário logado | String |
| ``` ProcessDefinitionVersion ``` | Objeto com propriedades da versão do processo alterada | ``` ProcessDefinitionVersionDto ``` |
| ```ProcessDefinitionVersion ``` | Objeto com propriedades da versão do processo alterada | ``` ProcessDefinitionVersionDto ``` |
### afterReleaseVersion
@@ -10,7 +10,7 @@ Veja o exemplo em nosso repositório [aqui](https://git.fluig.com/projects/SAMPL
| Método | Especificação |
| --- | --- |
| getCardValue("nomeCampo") | Permite acessar o valor de um campo do formulário do processo, onde: - nomeCampo: nome do campo do formulário. Dica Campos do tipo *checkbox* retornarem os valores on para marcado ou "" (vazio) para não marcado. Para trabalhar de uma maneira mais fácil, é possível transformá-los em booleanos. Exemplo: ``` var campoCheckbox = hAPI.getCardValue("campoCheckbox") == "on" ? true : false; ``` |
| getCardValue("nomeCampo") | Permite acessar o valor de um campo do formulário do processo, onde: - nomeCampo: nome do campo do formulário. Dica Campos do tipo *checkbox* retornarem os valores on para marcado ou "" (vazio) para não marcado. Para trabalhar de uma maneira mais fácil, é possível transformá-los em booleanos. Exemplo: ```var campoCheckbox = hAPI.getCardValue("campoCheckbox") == "on" ? true : false; ``` |
| setCardValue("nomeCampo", "valor") | Permite definir o valor de um campo do formulário do processo, onde: - nomeCampo: nome do campo do formulário; - valor: valor a ser definido para o campo do formulário. |
| setAutomaticDecision(numAtiv, listaColab, "obs") | Atenção: Depreciado O método setAutomaticDecision encontra-se depreciado, não havendo mais suporte a partir da atualização 1.5.9 do fluig. Recomenda-se a utilização da atividade de [Serviço](http://tdn.totvs.com/pages/viewpage.action?pageId=237397494) ou [Gateway Exclusivo](http://tdn.totvs.com/display/fluig/Gateways). Permite definir o fluxo de saída de uma atividade de forma automática, onde: - numAtiv: número da atividade destino; - listaColab: lista (do tipo String) dos usuários que receberão a tarefa; - Deve ser passada a matricula dos usuários que receberão a tarefa. - Se a atividade destino for automática ou um evento intermediário que não possui usuário, deve ser informado "System:Auto" no lugar da matrícula. - obs: observação da tarefa; ``` function beforeStateEntry(sequenceId){ if(sequenceId == 4){ var users = new java.util.ArrayList(); //Caso a próxima atividade seja uma automática utilizar users.add("System:Auto"); users.add("adm"); hAPI.setAutomaticDecision(7, users, "Decisao tomada automaticamente pelo Fluig"); } } ``` |
| getActiveStates() | Retorna uma lista das atividades ativas do processo. |
@@ -6,5 +6,5 @@ path: \Plataforma Documentação técnica\Desenvolvimento sobre a plataforma\De
---
- [Componentes de Negócio](Desenvolvimento de PáginasWidgets (WCM)/Componentes de Negócio.md)
- [Login Único](Desenvolvimento de PáginasWidgets (WCM)/Login Único.md)
- [Componentes de Negócio](Desenvolvimento de PáginasWidgets (WCM).md)/Componentes de Negócio.md)
- [Login Único](Desenvolvimento de PáginasWidgets (WCM).md)/Login Único.md)
@@ -34,7 +34,7 @@ O componente **Segurança de itens de aprendizado** tem como objetivo facilita
---
Para habilitar o componente de seleção de usuário no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
Para habilitar o componente de seleção de usuário no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM).md)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
```
application.resource.component.1=lms/elearningsecurity
@@ -27,7 +27,7 @@ Conhecer os conceitos dos componentes de negócio da plataforma TOTVS Fluig, di
---
Para habilitar o componente **Seleção de grupos** no *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
Para habilitar o componente **Seleção de grupos** no *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM).md)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
```
application.resource.component.3=wcm/selectgroup
@@ -27,7 +27,7 @@ Conhecer os conceitos dos componentes de negócio da plataforma TOTVS Fluig, di
---
Para habilitar o componente **Seleção de papéis** no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
Para habilitar o componente **Seleção de papéis** no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM).md)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
```
application.resource.component.3=wcm/selectrole
@@ -27,7 +27,7 @@ Conhecer os conceitos dos componentes de negócio da plataforma TOTVS Fluig, di
---
Para habilitar o componente **Seleção de sub grupos** no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
Para habilitar o componente **Seleção de sub grupos** no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM).md)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
```
application.resource.component.3=wcm/selectgroup
@@ -33,7 +33,7 @@ O componente **Seleção de usuários** oferece a possibilidade do usuário sele
---
Para habilitar o componente de seleção de usuário no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
Para habilitar o componente de seleção de usuário no seu *widget*, adicione a seguinte propriedade no [application.info](../../../Recurso de Páginas e Widgets (WCM).md)/Estrutura de páginas/Arquivo application.info.md) do *widget*:
```
application.resource.component.1=wcm/selectuser
@@ -12,6 +12,6 @@ Uma das principais vantagens do TOTVS Fluig é que ele permite criar **processos
Pode-se também transformar automaticamente outros formulários em fontes de dados ([dataset](../../Desenvolvimento de Datasets.md)), permitindo a flexibilidade de criar conjuntos de dados que serão usados posteriormente.
Além disso, o TOTVS Fluig permite criar processos complexos com a criação de [formulários complexos](../Formulários/Tipos de formulários/Formulários avançados (hard-code)/Formulário avançado - Primeiros passos.md), leitura de dados de outros bancos de dados ou de serviços remotos, tanto em tempo real como atualizando os dados via agendamento e evitando que a lentidão de outros sistemas impactam na performance do seu processo. Ele também permite regras complexas para atribuição de usuários, bem como a liberdade para o desenvolvimento de condições avançadas na movimentação de cada etapa do processo.
Além disso, o TOTVS Fluig permite criar processos complexos com a criação de [formulários complexos](../Formulários/Tipos de formulários/Formulários avançados (hard-code).md)/Formulário avançado - Primeiros passos.md), leitura de dados de outros bancos de dados ou de serviços remotos, tanto em tempo real como atualizando os dados via agendamento e evitando que a lentidão de outros sistemas impactam na performance do seu processo. Ele também permite regras complexas para atribuição de usuários, bem como a liberdade para o desenvolvimento de condições avançadas na movimentação de cada etapa do processo.
Em resumo, o Fluig BPM é uma ferramenta versátil que pode ser usada para automatizar processos simples ou complexos de negócios. Com a possibilidade de criar formulários sofisticados, ler dados de serviços remotos, definir regras complexas para a atribuição de usuários e desenvolver condições avançadas na movimentação de cada etapa do processo, é possível extrair o máximo da plataforma e aumentar a eficiência e produtividade da sua empresa. Nesta documentação, vamos explicar passo a passo como desenvolver processos complexos com o Fluig BPM, garantindo que sua empresa alcance o máximo potencial desta poderosa ferramenta de gerenciamento de processos.
@@ -22,6 +22,6 @@ Exemplos de uso com mapas no Rhino
Exemplos de acesso aos atributos de um objeto no Rhino
# [Lidando com numéricos (int) no Rhino](Características da programação no Rhino/Lidando com numéricos (int) no Rhino.md)
# [Lidando com numéricos (int) no Rhino](Características da programação no Rhino/Lidando com numéricos (int) no Rhino.md) no Rhino.md)
Exemplos das características do int no Rhino
@@ -14,7 +14,7 @@ Para garantir a integridade dos dados, o Fluig possibilita a criação de valida
Acesse a página Formulários simples (no-code) para conhecer melhor essa ferramenta.
# [Formulários avançados (hard-code)](Tipos de formulários/Formulários avançados (hard-code).md)
# [Formulários avançados (hard-code)](Tipos de formulários/Formulários avançados (hard-code).md).md)
Através da codificação, o usuário pode personalizar totalmente o layout e o comportamento do formulário, atendendo às necessidades específicas da empresa. Com essa flexibilidade, é possível incluir campos personalizados, integrar com outros sistemas, criar regras avançadas de validação de dados e até mesmo criar fluxos personalizados dentro do próprio formulário. A criação de formulários avançados no Fluig é uma das maneiras mais eficientes de otimizar os processos de negócios e aumentar a produtividade da empresa.
@@ -10,7 +10,7 @@ Através da codificação, o usuário pode personalizar totalmente o layout e o
Criar uma documentação que cubra desde os conceitos básicos do formulário até as demandas e funções mais complexas é um desafio. Aprender a partir de uma documentação também pode ser difícil, especialmente para aqueles que estão começando do zero. Muitas vezes, a documentação técnica pode parecer confusa e cheia de jargões, deixando os iniciantes sem saber por onde começar ou como prosseguir. É por isso que é importante criar uma documentação clara e concisa, que inclua exemplos simples e explicativos, para facilitar o processo de aprendizado. 
## ["Hello World"](Formulários avançados (hard-code)/Formulário avançado - Primeiros passos.md)
## ["Hello World"](Formulários avançados (hard-code).md)/Formulário avançado - Primeiros passos.md)
Para quem nunca criou um formulário no TOTVS Fluig, criamos um ello word para ensinar os primeiros passos incluindo a criação de um arquivo html, upload para o TOTVS Fluig via navegador, criação de um registro de formulário e editar o registro
@@ -78,7 +78,7 @@ Caso a solicitação não tenha sido criada, retorna **null**.
List<String>currentAssignees
Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de strings com as matrículas dos usuários responsáveis pela atividade.
Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de strings com as matrículas dos usuários responsáveis pela atividade.
Caso a solicitação não tenha sido criada, retorna uma lista vazia.
@@ -90,7 +90,7 @@ No caso de uma atividade em consenso configurada para "Nunca selecionar colabora
List<Colleague> availableColleagues
Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de objetos do tipo Colleague com dados dos usuários que podem ser selecionados para a atividade no caso de não ter criado uma solicitação pois a múltiplos usuários que podem ser responsáveis pela atividade (*multipleUsers*).
Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de objetos do tipo Colleague com dados dos usuários que podem ser selecionados para a atividade no caso de não ter criado uma solicitação pois a múltiplos usuários que podem ser responsáveis pela atividade (*multipleUsers*).
boolean usingManagerUsers
@@ -98,7 +98,7 @@ Retorna um valor booleano *true*quando, por não conseguir selecionar nenhum col
List<Integer> subProcessInstancesIds
Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de valores numéricos com os códigos das solicitações de subprocessos que foram criadas após a movimentação.
Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de valores numéricos com os códigos das solicitações de subprocessos que foram criadas após a movimentação.
Caso nenhuma solicitação tenha sido criada por subprocessos, retorna uma lista vazia.
@@ -28,7 +28,7 @@ Objeto contendo o código da empresa, podendo usar essa informação para ser en
O objeto responsável por permitir iniciar solicitações via outra solicitação, dataset, formulário ou evento global.
## [hAPI (versão atualizada)](Objetos e utilitários/hAPI (nova).md)
## [hAPI (versão atualizada)](Objetos e utilitários/hAPI (nova).md).md)
A hAPI foi o objeto mais importante nos eventos de processo, permitindo acessado aos dados de formulário, informações da solicitação atual.
@@ -19,28 +19,28 @@ O objeto mais importante nos eventos de formulário é o [FormController](https:
Também consegue desabilitar os botões de imprimir e desabilitar o botão de exclusão de registro das tabelas pai x filho.
Esta documentação está em construção e por isso ainda está incompleta. Para ter visualizar todos os métodos, [acesse a nossa documentação antiga](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
Esta documentação está em construção e por isso ainda está incompleta. Para ter visualizar todos os métodos, [acesse a nossa documentação antiga](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/FormController - a varíavel form.md).
# Métodos da instância
---
[long getCompanyId()](FormController/FormController.getValue(fieldname).md)
[long getCompanyId()](FormController/FormController.getValue(fieldname).md).md)
Retorna o código da empresa do registro de formulário atual
[int getDocumentId()](FormController/FormController.getValue(fieldname).md)
[int getDocumentId()](FormController/FormController.getValue(fieldname).md).md)
Retorna o código de documento do registro de formulário atual
[int getVersion()](FormController/FormController.getValue(fieldname).md)
[int getVersion()](FormController/FormController.getValue(fieldname).md).md)
Retorna a versão do registro de formulário atual
[int getCardIndex()](FormController/FormController.getValue(fieldname).md)
[int getCardIndex()](FormController/FormController.getValue(fieldname).md).md)
Retorna o código do formulário do qual o registro de formulário pertence
[int getValue(String fieldname)](FormController/FormController.getValue(fieldname).md)
[int getValue(String fieldname)](FormController/FormController.getValue(fieldname).md).md)
Retorna o valor do campo *fieldname* no registro de formulário atual. 
@@ -4,7 +4,7 @@ source: https://tdn.totvs.com/pages/viewpage.action?pageId=1008213423
path: \Plataforma Documentação técnica\Desenvolvimento sobre a plataforma\Documentação para desenvolvedores Fluig\Objetos e utilitários\FormController\formController.getCardData().md
---
O método getCardData do formController retorna um [mapa](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Mapa (Map) no Rhino.md) contendo todos os dados do registro do formulário atual.
O método getCardData do formController retorna um [mapa](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Mapa (Map) no Rhino.md) no Rhino.md) contendo todos os dados do registro do formulário atual.
# Nesta documentação
@@ -68,7 +68,7 @@ Recuperar todos os dados do formulário para uma variável
**displayFields**
```
```javascript
function displayFields(form, customHTML) {
  var mapaForm = new java.util.HashMap();
  mapaForm = form.getCardData();
@@ -74,7 +74,7 @@ Por questões de retrocompatibilidade, **este objeto também é um mapa**. Entã
**List<String>currentAssignees**
- Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de strings com as matrículas dos usuários responsáveis pela atividade.
- Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de strings com as matrículas dos usuários responsáveis pela atividade.
- Caso a solicitação não tenha sido criada, retorna uma lista vazia.
**boolean multipleUsers**
@@ -84,7 +84,7 @@ Por questões de retrocompatibilidade, **este objeto também é um mapa**. Entã
**List<Colleague> availableColleagues**
- Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de objetos do tipo Colleague com dados dos usuários que podem ser selecionados para a atividade no caso de não ter criado uma solicitação pois a múltiplos usuários que podem ser responsáveis pela atividade (*multipleUsers*).
- Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de objetos do tipo Colleague com dados dos usuários que podem ser selecionados para a atividade no caso de não ter criado uma solicitação pois a múltiplos usuários que podem ser responsáveis pela atividade (*multipleUsers*).
**boolean usingManagerUsers**
@@ -92,7 +92,7 @@ Por questões de retrocompatibilidade, **este objeto também é um mapa**. Entã
**List<Integer> subProcessInstancesIds**
- Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de valores numéricos com os códigos das solicitações de subprocessos que foram criadas após a movimentação.
- Retorna uma [lista java](../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de valores numéricos com os códigos das solicitações de subprocessos que foram criadas após a movimentação.
- Caso nenhuma solicitação tenha sido criada por subprocessos, retorna uma lista vazia.
 
@@ -37,11 +37,11 @@ console.log(...objects)
### **object**
Um [objeto](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Objetos (Object) no Rhino.md) que deve ser impresso no console ou arquivo no formato JSON.
Um [objeto](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Objetos (Object) no Rhino.md) no Rhino.md) que deve ser impresso no console ou arquivo no formato JSON.
### objects
Um ou mais [objetos](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Objetos (Object) no Rhino.md) que devem ser impressos no console ou arquivo no formato JSON.
Um ou mais [objetos](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Objetos (Object) no Rhino.md) no Rhino.md) que devem ser impressos no console ou arquivo no formato JSON.
# Valor de retorno
@@ -45,7 +45,7 @@ console.log(...messages)
### **message**
Um objeto (ou [array nativo](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) de objetos) que deve ser impresso no console ou arquivo. Preferencialmente uma string ou numérico, apesar de aceitar qualquer valor.
Um objeto (ou [array nativo](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com List (List) no Rhino.md) no Rhino.md) de objetos) que deve ser impresso no console ou arquivo. Preferencialmente uma string ou numérico, apesar de aceitar qualquer valor.
### **error**
@@ -89,7 +89,7 @@ console.log(1);
2025-10-07 08:30:16,456 INFO [com.fluig.sdk.api.log.ScriptingLog] (default task-1) 1.0
```
Todo valor numérico, quando impresso como numérico, tem uma casa decimal pelas [características do nosso motor de personalizações](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com numéricos (int) no Rhino.md).
Todo valor numérico, quando impresso como numérico, tem uma casa decimal pelas [características do nosso motor de personalizações](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com numéricos (int) no Rhino.md) no Rhino.md).
## Log com dois atributos
@@ -27,7 +27,7 @@ Esta documentação encontra-se em construção e por isso alguns métodos ainda
---
[String getCardValue(String fieldName)](hAPI (nova)/hAPI.getCardValue (nova).md)
[String getCardValue(String fieldName)](hAPI (nova).md)/hAPI.getCardValue (nova).md)
- Retorna o valor do campo *fieldName* no formulário
@@ -71,7 +71,7 @@ void transferTask(List<String> users, String comment)
- Transfere uma atividade ativa na thread 0 da solicitação atual para os usuários *users*e adiciona o comentário *comment*.
[WorkflowSaveAndSendResultVO startProcess(String processId, int chosenState, List<String> colleagues, String comments, boolean completeTask, Map cardData, Boolean managerMode)](hAPI (nova)/hAPI.startProcess (nova).md)
[WorkflowSaveAndSendResultVO startProcess(String processId, int chosenState, List<String> colleagues, String comments, boolean completeTask, Map cardData, Boolean managerMode)](hAPI (nova).md)/hAPI.startProcess (nova).md)
```
(Depreciado)
@@ -101,19 +101,19 @@ attachDocument(documentId)
getAvailableStatesDetail(companyId, userId, processId, processInstanceId, threadSequence)
[int getDocumentId()](hAPI (nova)/hAPI.getCardValue (nova).md)
[int getDocumentId()](hAPI (nova).md)/hAPI.getCardValue (nova).md)
Retorna o código de documento do registro de formulário atual
[int getVersion()](hAPI (nova)/hAPI.getCardValue (nova).md)
[int getVersion()](hAPI (nova).md)/hAPI.getCardValue (nova).md)
Retorna a versão do registro de formulário atual
[int getCardIndex()](hAPI (nova)/hAPI.getCardValue (nova).md)
[int getCardIndex()](hAPI (nova).md)/hAPI.getCardValue (nova).md)
Retorna o código do formulário do qual o registro de formulário pertence
[int getValue(String fieldname)](hAPI (nova)/hAPI.getCardValue (nova).md)
[int getValue(String fieldname)](hAPI (nova).md)/hAPI.getCardValue (nova).md)
Retorna o valor do campo *fieldname* no registro de formulário atual. 
@@ -4,7 +4,7 @@ source: https://tdn.totvs.com/pages/viewpage.action?pageId=778540423
path: \Plataforma Documentação técnica\Desenvolvimento sobre a plataforma\Documentação para desenvolvedores Fluig\Objetos e utilitários\hAPI (nova)\hAPI.getCardValue (nova).md
---
O método **getCardValue** da [hAPI (nova)](../hAPI (nova).md) retorna o valor de um campo no registro de formulário da solicitação atual.
O método **getCardValue** da [hAPI (nova)](../hAPI (nova).md).md) retorna o valor de um campo no registro de formulário da solicitação atual.
# Nesta documentação
@@ -11,7 +11,7 @@ path: \Plataforma Documentação técnica\Desenvolvimento sobre a plataforma\Do
- 3 [Valor de retorno](#hAPI.startProcess(nova)-Valorderetorno)
- 4 [Exemplos de uso](#hAPI.startProcess(nova)-Exemplosdeuso)
O método **startProcess** da [hAPI (nova)](../hAPI (nova).md) inicia uma solicitação nova, podendo preencher dados e movimentar para a atividade seguinte selecionando quais os usuários irão receber a próxima atividade.
O método **startProcess** da [hAPI (nova)](../hAPI (nova).md).md) inicia uma solicitação nova, podendo preencher dados e movimentar para a atividade seguinte selecionando quais os usuários irão receber a próxima atividade.
A solicitação **sempre** será iniciada pelo usuário atual, que está movimentando a solicitação.
@@ -71,7 +71,7 @@ Caso *false*, a solicitação será salva com os comentários e dados de formul
(opcional)
```
Uma [mapa](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Mapa (Map) no Rhino.md) com os dados do formulário, composta por chave do tipo String com o nome do campo de formulário e valores do tipo String com o valor respectivo de cada campo.
Uma [mapa](../../Desenvolvimento de Processos/Motor de personalização/Características da programação no Rhino/Lidando com Mapa (Map) no Rhino.md) no Rhino.md) com os dados do formulário, composta por chave do tipo String com o nome do campo de formulário e valores do tipo String com o valor respectivo de cada campo.
Caso não tenha formulário ou o formulário será preenchido posteriormente, pode ser enviado **null**.
@@ -20,9 +20,9 @@ A seguir são apresentados os comandos e sua utilização:
| Comando | Descrição |
| --- | --- |
| @wcm.header | Macro especial do fluig, insere o cabeçalho no *layout*. Veja mais em [Biblioteca WCM](http://tdn.totvs.com/display/fluig/Biblioteca+WCM). |
| @wcm.menu | Macro especial do fluig, insere o menu no *layout*. Veja mais em [Biblioteca WCM](../../Recurso de Páginas e Widgets (WCM)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Biblioteca WCM.md). |
| @wcm.renderSlot | Macro especial do fluig, insere um *slot* no *layout*. Veja mais em [Biblioteca WCM](../../Recurso de Páginas e Widgets (WCM)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Biblioteca WCM.md). |
| @wcm.footer | Macro especial do fluig, insere o rodapé no layout. Veja mais em [Biblioteca WCM](../../Recurso de Páginas e Widgets (WCM)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Biblioteca WCM.md). |
| @wcm.menu | Macro especial do fluig, insere o menu no *layout*. Veja mais em [Biblioteca WCM](../../Recurso de Páginas e Widgets (WCM).md)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Biblioteca WCM.md). |
| @wcm.renderSlot | Macro especial do fluig, insere um *slot* no *layout*. Veja mais em [Biblioteca WCM](../../Recurso de Páginas e Widgets (WCM).md)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Biblioteca WCM.md). |
| @wcm.footer | Macro especial do fluig, insere o rodapé no layout. Veja mais em [Biblioteca WCM](../../Recurso de Páginas e Widgets (WCM).md)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Biblioteca WCM.md). |
| assign | Cria uma variável, ou substitui uma variável existente, veja mais em *[Assign](http://freemarker.org/docs/ref_directive_assign.html#ref.directive.assign)*. |
| attempt | Faz com que a página renderize, mesmo que uma parte da renderização falhe. Veja mais em *[Attempt](http://freemarker.org/docs/ref_directive_attempt.html#ref.directive.attempt)*. |
| break | Veja *[Switch](https://tdn.totvs.com/pages/viewpage.action?pageId=185748598)* ou *[List](https://tdn.totvs.com/pages/viewpage.action?pageId=185748598)*. |
@@ -33,12 +33,12 @@ A seguir são apresentados os comandos e sua utilização:
| function | Cria um método. Se o método não contém um retorno, então é retornada uma variável *undefined*. Veja mais em *[Function](http://freemarker.org/docs/ref_directive_function.html#ref.directive.function)*. |
| flush | Quando o Freemarker gera o *output*, geralmente ele guarda esse *output* gerado e envia para o *client* em um ou mais pedaços. Esse ato se chama fazer o *flush*. Normalmente ele ocorre automaticamente. Veja mais em *[Flush](http://freemarker.org/docs/ref_directive_flush.html#ref.directive.flush)*. |
| global if | Você pode utilizar as diretivas *if*, *elseif* e *else* para condicionalmente pular uma seção do template. As condições devem traduzir para um valor *booleano*, caso contrário, um erro irá interromper o processamento do *template*. Os *elseif* e *else* devem ocorrer dentro de um *if* (ou seja, entre as tags de inicio e fim do *If*). O *if* pode conter qualquer numero de *elseif* (incluindo 0) e, no final, opcionalmente, um *else*. Veja mais em [If](http://freemarker.org/docs/ref_directive_if.html#ref.directive.if). |
| import | Importa uma biblioteca. Veja mais em *[Import](http://freemarker.org/docs/ref_directive_import.html#ref.directive.import)* e [Criar uma biblioteca personalizada](../../Recurso de Páginas e Widgets (WCM)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Criar uma biblioteca personalizada.md). |
| import | Importa uma biblioteca. Veja mais em *[Import](http://freemarker.org/docs/ref_directive_import.html#ref.directive.import)* e [Criar uma biblioteca personalizada](../../Recurso de Páginas e Widgets (WCM).md)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Criar uma biblioteca personalizada.md). |
| include | Inclui outro *template* Freemarker dentro do seu *template*. Veja mais em *[Include](http://freemarker.org/docs/ref_directive_include.html#ref.directive.include)*. |
| list | Processa uma seção de *template* para cada variável contida dentro de uma sequência. Veja mais em *[List](http://freemarker.org/docs/ref_directive_list.html#ref.directive.list)*. |
| local | Cria ou substitui uma variável local. Funciona apenas dentro de uma [Macro](https://tdn.totvs.com/pages/viewpage.action?pageId=185748598) ou *[Function](https://tdn.totvs.com/pages/viewpage.action?pageId=185748598)*. Veja mais em [Local](http://freemarker.org/docs/ref_directive_local.html#ref.directive.local). |
| lt | *Left Trim*: ignora todos os espaços em branco precedentes na linha. Veja mais em [LT](http://freemarker.org/docs/ref_directive_t.html#ref.directive.lt). |
| macro | Cria uma variável de macro. Veja mais em [Macro](http://freemarker.org/docs/ref_directive_macro.html#ref.directive.macro) e [Criar uma biblioteca personalizada](../../Recurso de Páginas e Widgets (WCM)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Criar uma biblioteca personalizada.md). |
| macro | Cria uma variável de macro. Veja mais em [Macro](http://freemarker.org/docs/ref_directive_macro.html#ref.directive.macro) e [Criar uma biblioteca personalizada](../../Recurso de Páginas e Widgets (WCM).md)/Construção de Widgets e Layouts/Layouts/Desenvolvimento de layouts personalizados/Criar uma biblioteca personalizada.md). |
| nested | Executa o fragmento do *template*. Veja a diretiva [Macro](https://tdn.totvs.com/pages/viewpage.action?pageId=185748598). |
| nt | *No Trim*: desabilita a remoção de espaços em branco na linha onde ele é utilizado. Ele também desabilita os efeitos de outras diretivas de *trim*. Veja mais em [NT](http://freemarker.org/docs/ref_directive_nt.html#ref.directive.nt). |
| recover | Veja *[Attempt](https://tdn.totvs.com/pages/viewpage.action?pageId=185748598)*. O bloco de *recover* é executado no lugar do bloco *attempt*. Caso nenhum erro ocorra durante a execução do bloco *attempt* então o bloco *recover* é ignorado. |
@@ -20,7 +20,7 @@ Ao acessar o modo **BPMN Extendido**você terá um acréscimo de mais 33 novos e
# Script condicional
Um dos novos conceitos existentes no BPMN 2.0 foi a adoção de scripts condicionais. Scripts condicionais são desenvolvidos usando a linguagem javascript e permitem ao Fluig consultar serviços externos permitindo a criação de processos mais elaborados. Scripts condicionais geralmente estão atrelados a agendadores que determinam o período ou a frequência no qual esses scripts serão executados. Quando o script conseguir retornar um valor lógico igual a true significa que o script foi executado com sucesso movimentando as solicitações workflow de acordo com elemento de modelagem utilizado. Maiores detalhes sob como funciona e exemplos de uso podem ser encontrados neste artigo dedicado a [scripts condicionais](Configuração de Processos com Componentes Avançados (BPMN 2.0)/Scripts Condicionais.md).
Um dos novos conceitos existentes no BPMN 2.0 foi a adoção de scripts condicionais. Scripts condicionais são desenvolvidos usando a linguagem javascript e permitem ao Fluig consultar serviços externos permitindo a criação de processos mais elaborados. Scripts condicionais geralmente estão atrelados a agendadores que determinam o período ou a frequência no qual esses scripts serão executados. Quando o script conseguir retornar um valor lógico igual a true significa que o script foi executado com sucesso movimentando as solicitações workflow de acordo com elemento de modelagem utilizado. Maiores detalhes sob como funciona e exemplos de uso podem ser encontrados neste artigo dedicado a [scripts condicionais](Configuração de Processos com Componentes Avançados (BPMN 2.0).md)/Scripts Condicionais.md).
# Sinal
@@ -52,7 +52,7 @@ Em alguns processos as vezes é necessário criar um fluxo de atividade que acab
Utilizando os eventos de entrada e saída de links é possível ter uma modelagem mais eficiente e elegante. Veja o mesmo processo utilizando os eventos de entrada e saida de links :
![](..\..\..\..\images\liught%20-%20C%C3%B3pia%20(2).png)
![](../../../../images/liught%20-%20C%C3%B3pia%20(2).png).png)
Você obteve exatamente o mesmo processo porém com uma modelagem muito mais clara.
@@ -102,5 +102,5 @@ Segue a lista de variáveis e funções suportadas em scripts condicionais :
| **DatasetBuilder** | Permite a criação de datasets. Maiores detalhes sobre este item se encontram no artigo sobre [construção de datasets.](../../Desenvolvimento de Datasets.md) |
| **ConstraintType** | Determina o tipo de constraint a ser utilizada em uma condição do dataset. Maiores detalhes sobre este item se encontram no artigo sobre [construção de datasets.](../../Desenvolvimento de Datasets.md) |
| **notifier** | Permite realizar notificações extras em eventos e scripts. |
| **WKParams** | Coleção de parâmetros que podem ser utilizados dentro dos scripts como o WKCompany e WKUser. As outras variáveis e o que elas retornam podem ser encontradas no artigo sobre [desenvolvimento de processos workflow](../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md) . |
| **hAPI** | Contém operações relacionadas a solicitação workflow em andamento. Está disponível apenas para os scripts de eventos intermediários condicionais. Maiores detalhes sobre as funções da hAPI podem ser encontradas no artigo sobre [desenvolvimento de processos workflow](../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md). |
| **WKParams** | Coleção de parâmetros que podem ser utilizados dentro dos scripts como o WKCompany e WKUser. As outras variáveis e o que elas retornam podem ser encontradas no artigo sobre [desenvolvimento de processos workflow](../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md) . |
| **hAPI** | Contém operações relacionadas a solicitação workflow em andamento. Está disponível apenas para os scripts de eventos intermediários condicionais. Maiores detalhes sobre as funções da hAPI podem ser encontradas no artigo sobre [desenvolvimento de processos workflow](../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md). |
@@ -14,12 +14,12 @@ No espaço de visualização de projetos, clique com o botão direito sobre o pr
Escolha a opção **Importar Processo**.
![](..\..\..\..\images\exportar_processo%20_ecm(1).png)
![](../../../../images/exportar_processo%20_ecm(1).png).png)
Se você deseja importar um processo do ECM, escolha o formato **ECM** **3.1**.
![](..\..\..\..\images\exportar_processo%20_ecm(2).png)
![](../../../../images/exportar_processo%20_ecm(2).png).png)
Defina o servidor fluig para o qual este processo deverá carregar as informações e selecione o arquivo XML do processo gerado pelo ECM. Dê um nome ao processo e clique em **Finish.**
**![](..\..\..\..\images\exportar_processo%20_ecm(3).png)**
**![](../../../../images/exportar_processo%20_ecm(3).png).png)**
@@ -64,7 +64,7 @@ Para que um aplicativo consiga atuar no fluig em nome de um usuário ou em nome
- **Etapa 3:**Aplicativo solicita ao fluigtokens para atuar em nome do usuário (http://[servidor\_fluig]/portal/api/rest/oauth/access\_token).
![](..\..\..\images\OAuth%20Fluig%20%20(1).png)
![](../../../images/OAuth%20Fluig%20%20(1).png).png)
**Exemplo OAuth**
**Consumo da API Pública em Eventos**
@@ -23,7 +23,7 @@ path: \Plataforma Documentação técnica\Desenvolvimento sobre a plataforma\In
---
Para acessar com segurança recursos e serviços externos ao fluig (seja a partir de [Desenvolvimento de Workflow](../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md) ou desenvolvimentos sobre a plataforma), pode-se utilizar o recurso **Serviços REST** no fluig.
Para acessar com segurança recursos e serviços externos ao fluig (seja a partir de [Desenvolvimento de Workflow](../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md) ou desenvolvimentos sobre a plataforma), pode-se utilizar o recurso **Serviços REST** no fluig.
Este consiste em um cadastro de configurações de acesso e segurança do serviço externo a ser consumido, ou seja, para cada caso de protocolo de segurança sendo OAuth 1, OAuth 2 ou *Basic* *Authentication**,*serão informados e cadastrados os *tokens* de acesso, chaves, usuário, senha, etc.
@@ -180,7 +180,7 @@ Após o cadastro do *client*, é possível testar as configurações de acesso
### Chamada via JavaScript
Para consumo do serviço a partir do [desenvolvimento de *workflows*](../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md) ou de desenvolvimento sobre a plataforma, deve-se informar os seguintes parâmetros no Javascript:
Para consumo do serviço a partir do [desenvolvimento de *workflows*](../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md) ou de desenvolvimento sobre a plataforma, deve-se informar os seguintes parâmetros no Javascript:
#### Como montar os parâmetros?
@@ -47,7 +47,7 @@ Para utilizar um serviço da API Pública, deve ser utilizado o **protocolo OAut
Eventos de Workflow e Eventos de Personalização Social
Este recurso está disponível para eventos javascript de Workflow (que podem ser encontrados [aqui](http://tdn.totvs.com/display/fluig/Desenvolvimento+de+Workflow)) e também para Eventos Sociais (que podem ser encontrados [aqui](../../../Recurso de Comunidades (Social)/Eventos Sociais.md)).
Este recurso está disponível para eventos javascript de Workflow (que podem ser encontrados [aqui](http://tdn.totvs.com/display/fluig/Desenvolvimento+de+Workflow)) e também para Eventos Sociais (que podem ser encontrados [aqui](../../../Recurso de Comunidades (Social).md)/Eventos Sociais.md)).
## Exemplos para utilização do componente SDK via eventos de JavaScript
@@ -157,7 +157,7 @@ Onde:
Para o nosso formulário precisamos da informação do usuário solicitante para exibição, número do processo, e a etapa que o processo se encontra para podermos realizar as tratativas de exibir/ocultar ou bloquear os campos, dependendo da etapa do processo. Para isso vamos inserir o seguinte trecho de código no arquivo [displayFields.js.](https://github.com/fluig/workflow-solicitacao-de-compra/blob/master/forms/94%20-%20Solicita%C3%A7%C3%A3o%20de%20compra/events/displayFields.js)
```
```javascript
function displayFields(form,customHTML){
var CURRENT_STATE = getValue("WKNumState") ? getValue("WKNumState") : 0;
@@ -109,7 +109,7 @@ Acesse a documentação de apoio: [Desenvolvimento de Datasets](../../../Desenvo
**ds\_get\_costcenter\_proteus.js**
```
```javascript
function defineStructure() {}
function onSync(lastSyncDate) {}
@@ -453,7 +453,7 @@ O código abaixo apresenta uma implementação de exemplo do uso de um serviço
**periodicTable.js**
```
```javascript
function createDataset(fields, constraints, sortFields) {
// Cria o dataset
var dataset = DatasetBuilder.newDataset();
@@ -675,7 +675,7 @@ Os parâmetros que podem ser definidos são os seguintes:
| Propriedade | Função |
| --- | --- |
| ``` basic.authorization ``` | Quando definido como "true", faz o mesmo que o método **getBasicAuthenticatedClient**, porém permite aplicar as configurações de autenticação juntamente com as demais personalizações abaixo. Para configurar a autenticação, as propriedades com "username" e "password" abaixo também precisam ser definidas. |
| ```basic.authorization ``` | Quando definido como "true", faz o mesmo que o método **getBasicAuthenticatedClient**, porém permite aplicar as configurações de autenticação juntamente com as demais personalizações abaixo. Para configurar a autenticação, as propriedades com "username" e "password" abaixo também precisam ser definidas. |
| ``` basic.authorization.username ``` | Usuário a ser utilizado para autenticação básica. |
| ``` basic.authorization.password ``` | Senha do usuário utilizado para autenticação básica. |
| ``` disable.chunking ``` | Quando definido como "true", desabilita o envio de requisições grandes em "pedaços" menores. Pode ser útil quando o serviço chamado não suporta este tipo de requisição. |
@@ -112,7 +112,7 @@ Para o desenvolvimento do script da atividade de serviços os seguintes recursos
| Recurso | Descrição |
| --- | --- |
| **hAPI** | Recurso para manipulação de formulários e Workflow. Para maiores informações acessar: [hAPI](http://tdn.totvs.com/display/public/fluig/hAPI). |
| **docAPI** | Recurso para manipulação de documentos. Para maiores informações acessar: [Desenvolvimento de Workflow.](../../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md) |
| **docAPI** | Recurso para manipulação de documentos. Para maiores informações acessar: [Desenvolvimento de Workflow.](../../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md) |
| **log** | Recurso para log no console do sistema. |
| **ServiceManager** | Recurso para acesso via WebService SOAP. Para maiores informações acessar: [Integração Com Aplicativos Externos.](http://tdn.totvs.com/x/lCVbB) |
| **datasetManager** | Objeto que permite carregar datasets entro das customizações. |
@@ -53,7 +53,7 @@ O código é obrigatório e não pode ser alterado posteriormente.
Nota
O código para o mecanismo deve seguir a especificação de padronização conforme o documento [Nomenclatura e Estrutura de Formulários](../../../Recurso de Documentos (ECM)/Desenvolvimento de Formulários/Nomenclatura e Estrutura de Formulários.md).
O código para o mecanismo deve seguir a especificação de padronização conforme o documento [Nomenclatura e Estrutura de Formulários](../../../Recurso de Documentos (ECM).md)/Desenvolvimento de Formulários/Nomenclatura e Estrutura de Formulários.md).
Com isto, será criada a função básica que deve ser implementada: 
@@ -113,10 +113,10 @@ Os seguintes métodos são recomendados para utilização:
| Método | Especificação |
| --- | --- |
| getCardValue("nomeCampo") | Permite acessar o valor de um campo do formulário do processo, onde: - nomeCampo: nome do campo do formulário. Dica Campos do tipo *checkbox* retornam os valores *on* para marcado ou "" (vazio) para não marcado. Para trabalhar de uma maneira mais fácil, é possível transformá-los em booleanos. Exemplo: ``` var campoCheckbox = hAPI.getCardValue("campoCheckbox") == "on" ? true : false; ``` |
| getCardValue("nomeCampo") | Permite acessar o valor de um campo do formulário do processo, onde: - nomeCampo: nome do campo do formulário. Dica Campos do tipo *checkbox* retornam os valores *on* para marcado ou "" (vazio) para não marcado. Para trabalhar de uma maneira mais fácil, é possível transformá-los em booleanos. Exemplo: ```var campoCheckbox = hAPI.getCardValue("campoCheckbox") == "on" ? true : false; ``` |
| getCardData(numProcesso) | Retorna um Mapa com todos os campos e valores do formulário da solicitação. - numProcesso: número da solicitação de processo. Para formulários pai e filho, os campos são identificados da seguinte forma: **campo1\_\_\_1**, sendo **campo1** o nome atribuído ao campo através da tag *name* do campo HTML + **\_\_\_** (3 *underlines*) + **número sequencial do registro**. Por exemplo, em um formulário de nota fiscal com os seguintes campos: - Formulário pai: - Número da Nota - numNota; - Formulário filho: - Código do item - codItem; - Descrição do item - desItem; - Quantidade do item - qtdItem; O retorno do Mapa seria: - numNota = 99999 - codItem\_\_\_1 = 91 - desItem\_\_\_1 = Caneta - qtdItem\_\_\_1 = 100 - codItem\_\_\_2 = 92 - desItem\_\_\_2 = Lápis - qtdItem\_\_\_2 = 200 - codItem\_\_\_3 = 93 - desItem\_\_\_3 = Borracha - qtdItem\_\_\_3 = 150 |
A hAPI dispõe de outro métodos, que são abordados na documentação de [Desenvolvimento de Workflow](../../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md). Contudo apenas os métodos mencionados acima são recomendados para o desenvolvimento de Mecanismos de atribuição.
A hAPI dispõe de outro métodos, que são abordados na documentação de [Desenvolvimento de Workflow](../../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md). Contudo apenas os métodos mencionados acima são recomendados para o desenvolvimento de Mecanismos de atribuição.
### Exibindo usuários conforme campo selecionado
@@ -92,4 +92,4 @@ WCMAPI.Create({
Dica
Consulte a documentação da [WCMAPI](../../Recurso de Páginas e Widgets (WCM)/WCMAPI.md) para conhecer as demais propriedades dessa biblioteca.
Consulte a documentação da [WCMAPI](../../Recurso de Páginas e Widgets (WCM).md)/WCMAPI.md) para conhecer as demais propriedades dessa biblioteca.
@@ -658,7 +658,7 @@ Webservice responsável por realizar operações referentes a workflow no fluig
| getAvailableProcess | Retorna os processos que o usuário pode iniciar uma solicitação. Método: getAvailableProcess(String username, String password, int companyId, String userId) Parâmetros: - username: login do usuário. - password: senha do usuário. - companyId: código da empresa. - userId: matrícula do usuário. Retorno: [ProcessDefinitionVersionDto[]](http://tdn.totvs.com/display/fluig/Guia+de+Propriedades+dos+Objetos#GuiadePropriedadesdosObjetos-ProcessDefinitionVersionDto). |
| getAvailableProcessOnDemand | Retorna os processos que o usuário pode iniciar uma solicitação, paginados. Método: getAvailableProcessOnDemand(String username, String password, int companyId, String userId, int limit, int lastRowId) Parâmetros: - username: login do usuário. - password: senha do usuário. - companyId: código da empresa. - userId: matrícula do usuário. - limit: número de registros a serem retornados. - lastRowId: última linha retornada. Retorno: [ProcessDefinitionVersionDto[]](http://tdn.totvs.com/display/fluig/Guia+de+Propriedades+dos+Objetos#GuiadePropriedadesdosObjetos-ProcessDefinitionVersionDto). |
| getAvailableStates | Retorna o número da próxima atividade de uma solicitação. Método: getAvailableStates(String user, String password, int companyId, String processId, int processInstanceId, int threadSequence) Parâmetros: - user: login do usuário. - password: senha do usuário. - companyId: código da empresa. - processId: código do processo. - processInstanceId: número da solicitação. - threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo. Retorno: Integer[]. |
| getAvailableStatesDetail | Retorna detalhes das atividades disponíveis para seleção... Atenção Caso haja necessidade de utilizar este método na primeira instância do processo, favor consultar a [hAPI](../../Recurso de Processos (BPM)/Desenvolvimento de Workflow.md). Método: getAvailableStatesDetail(String user, String password, int companyId, String processId, int processInstanceId, int threadSequence) Parâmetros: - user: login do usuário. - password: senha do usuário. - companyId: código da empresa. - processId: código do processo. - processInstanceId: número da solicitação. - threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo. Retorno: [ProcessStateDto[]](http://tdn.totvs.com/display/fluig/Guia+de+Propriedades+dos+Objetos#GuiadePropriedadesdosObjetos-ProcessStateDto). |
| getAvailableStatesDetail | Retorna detalhes das atividades disponíveis para seleção... Atenção Caso haja necessidade de utilizar este método na primeira instância do processo, favor consultar a [hAPI](../../Recurso de Processos (BPM).md)/Desenvolvimento de Workflow.md). Método: getAvailableStatesDetail(String user, String password, int companyId, String processId, int processInstanceId, int threadSequence) Parâmetros: - user: login do usuário. - password: senha do usuário. - companyId: código da empresa. - processId: código do processo. - processInstanceId: número da solicitação. - threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo. Retorno: [ProcessStateDto[]](http://tdn.totvs.com/display/fluig/Guia+de+Propriedades+dos+Objetos#GuiadePropriedadesdosObjetos-ProcessStateDto). |
| getAvailableUsers | Retorna os usuários que podem executar a tarefa corrente de uma solicitação. Método: getAvailableUsers(String username, String password, int companyId, int processInstanceId, int state, int threadSequence) Parâmetros: - username: login do usuário. - password: senha do usuário. - companyId: código da empresa. - processInstanceId: número da solicitação. - state: número da atividade. - threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo. Retorno: String[]. |
| getAvailableUsersOnDemand | Retorna os usuários que podem executar a tarefa corrente de uma solicitação, paginados e com busca. Método: getAvailableUsersOnDemand(String username, String password, int companyId, int processInstanceId, int state, int threadSequence, int limit, int initialUser, String userSearch) Parâmetros: - username: login do usuário. - password: senha do usuário. - companyId: código da empresa. - processInstanceId: número da solicitação. - state: número da atividade. - threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo. - limit: número de registros a serem retornados. - initialUser: última linha retornada. - userSearch: texto a ser buscado. Retorno: [AvailableUsersDto](http://tdn.totvs.com/display/fluig/Guia+de+Propriedades+dos+Objetos#GuiadePropriedadesdosObjetos-AvailableUsersDto). |
| getAvailableUsersStart | Retorna os usuários disponíveis na abertura de uma solicitação. Método: getAvailableUsersStart (String username, String password, int companyId, String processId, int state, int threadSequence) Parâmetros: - username: login do usuário. - password: senha do usuário. - companyId: código da empresa. - processId: código do processo. - state: número da atividade. - threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo. Retorno: String[]. |