O manual trata do T6 Planning Workflow BPM e aborda diversos tópicos relacionados à configuração de workflows, processos, parâmetros, responsáveis, modelos de e-mail, design de atividades, tipos de tarefas, funções específicas e suas sintaxes. O foco principal é na utilização do Business Process Modeling Notation (BPMN) para modelar processos de negócio, com a intenção de proporcionar maior flexibilidade ao workflow clássico. O documento também fornece exemplos de expressões e explicações detalhadas sobre cada parte do processo, incluindo tipos de tarefas, design de fluxo, identificação de objetos, e outras funcionalidades associadas ao T6 Planning Workflow BPM.
Para cada aplicação do T6 Planning devemos escolher um workflow a ser utilizado. Cada aplicação pode possuir apenas um tipo de workflow. Os tipos disponíveis são:
O tipo de workflow de uma aplicação pode ser alterado a qualquer momento. Para isto, basta editar a aplicação desejada e alterar o tipo do workflow confirme a necessidade.
Aplicações migradas não terão o seu workflow alterado. Novas aplicações irão possuir como padrão o tipo de workflow BPM.
Habilitando o Novo Editor de Workflow
A partir da versão 12.3, o T6 oferece um novo editor de workflow com melhorias significativas de produtividade e usabilidade. Para ativar:
- Acesse o menu principal do T6.
- Expanda a seção Configurações.
- Selecione a opção Preview.
- Habilite o botão switch Workflow Process New.
O novo editor é totalmente compatível com workflows existentes e não requer migração de tabelas.
Nota sobre o Workflow Runtime
Na versão 12.2, foi introduzido o runtime do workflow. Este runtime executa todo o workflow com código compilado dentro do T6. Para habilitar:
- Acesse o menu principal do T6.
- Expanda a seção Configurações.
- Selecione a opção Preview.
- Habilite o botão switch Workflow Runtime New.
Uma aplicação configurada para utilizar o workflow clássico terá o comportamento do workflow existente no T6 Planning até então, onde o mesmo possui o seu funcionamento baseado nas dimensões Cenário e Entidade do modelo. Como o foco deste manual é o Workflow BPM, não iremos detalhar o Workflow Clássico neste manual.
Com a necessidade constante de uma maior flexibilidade em nosso workflow clássico, buscamos no mercado um padrão de notação para a modelagem de processos de negócio. A opção mais plausível encontrada foi o Business Process Modeling Notation (BPMN), desenvolvida e disponibilizada como uma nova opção de workflow para as aplicações.
Atualmente está sendo suportando um subset do BPMN. O nosso objetivo, em longo prazo, é suprir todas as opções disponíveis do BPMN.
Algumas opções adicionais foram disponibilizadas na confecção dos processos para facilitar o preenchimento e execução dos processos, não pertencendo estas opções ao padrão BPMN.
A partir da versão 12.3, o T6 disponibiliza um novo editor de workflow completamente redesenhado com melhorias significativas de produtividade e usabilidade. O novo editor traz funcionalidades avançadas que facilitam o design, edição e manutenção de processos BPM. Veja abaixo as principais melhorias: Novo Editor de Workflow
Um processo é um grupo de atividades realizadas numa sequência determinada. Os processos são independentes de aplicação. Apenas alguns tipos de tarefas específicas, detalhadas mais adiante, são dependentes de aplicação.
O processo é a definição de um fluxo. Uma instância é um exemplar em execução de um processo. Em um mesmo processo, podemos ter diversas instâncias sendo executadas no mesmo momento. Apenas é possível inicializar uma instância em um processo caso ele esteja publicado.
Ao salvar um processo, nenhuma validação é realizada. A validação de consistência apenas ocorre durante a publicação do processo.
Existe um controle de versão nos processos. Ou seja, toda vez que o processo é salvo, uma nova versão do processo é salva, mantendo a versão anterior no histórico do processo para futuras consultas.
Um processo pode possuir uma coleção de parâmetros. Cada parâmetro possui uma definição de tipo e uma configuração. Cada processo possui apenas as definições dos parâmetros. E cada instância de um processo deve possuir um valor para cada parâmetro do processo.
Caso um parâmetro seja configurado para aceitar valores nulos, mesmo não será requisitado o preenchimento quando o usuário necessitar executar um gatilho.
Um parâmetro configurado como interno não ficará visível na listagem de parâmetros ao se executar um gatilho. A utilidade de um parâmetro interno é abstração do parâmetro para o usuário que irá executar o gatilho, já que o parâmetro apenas é necessário para o funcionamento interno do processo. Como o parâmetro não é listado, ele é obrigatoriamente um parâmetro que aceita valores nulos.
Abaixo os possíveis tipos de parâmetros.
Permite armazenar um valor referente a ação executada sobre uma instância. Por exemplo: Se a tarefa foi ou não aprovada.
Permite o envio (upload) de arquivos.
Armazena valores binários verdadeiro (true) ou falso (false). Possibilitando uso em condicionais por exemplo.
Utilizado para armazenar uma data.
Utilizado para armazenar um valor com ponto flutuante.
Utilizado para armazenar um valor inteiro.
Utilizado para armazenar a identificação de um membro de uma determinada aplicação e dimensão.
Utilizado para armazenar a identificação da instância. Caso este parâmetro exista em um processo. Sempre que o T6 Planning necessitar identificar uma instância, ele irá utilizar o valor contido neste parâmetro.
Utilizado para armazenar uma lista de responsáveis.
Utilizado para armazenar um responsável.
Utilizado para armazenar a identificação de uma determinada tabela de dados.
Utilizado para armazenar um texto.
A definição dos responsáveis das tarefas de um processo pode ser uma atividade muito trabalhosa e de difícil manutenção. Para facilitar a definição dos responsáveis das tarefas de um processo, é possível configurar o processo para carregar os responsáveis armazenados em uma tabela de dados. Para isto, basta escolher a tabela de dados onde estão armazenados os responsáveis e configurar algumas colunas de identificação.
Abaixo, uma descrição sobre como configurar os parâmetros para carregar dinamicamente os responsáveis:
- Tabela de Dados de Responsáveis: Devemos escolher a tabela de dados aonde se localiza as informações sobre os responsáveis.
- Coluna Identificação: Devemos escolher uma coluna da tabela de dados do tipo texto que possua uma identificação para a tarefa que desejamos carregar os responsáveis. No momento do carregamento dos responsáveis de uma tarefa, o valor contido em “Identificador da Tarefa” da tarefa será utilizado como filtro na coluna “Coluna Identificação” selecionada.
- Coluna Responsável: Devemos escolher uma coluna da tabela de dados do tipo texto que possua a identificação do usuário. Para facilitar o preenchimento desta coluna na tabela de dados, geralmente ela possui um link para os usuários do T6 Planning na definição da tabela de dados. Com isto, no formulário de dados teremos uma caixa de seleção para escolher o usuário desejado.
- Coluna Ordenação: Devemos escolher uma coluna da tabela de dados do tipo inteiro. Este parâmetro, não obrigatório, apenas é necessário caso exista a necessidade de utilizarmos múltiplos responsáveis em nossas tarefas.
- Filtros: Caso exista a necessidade de filtrar os responsáveis das tarefas contidas em uma tabela de dados, podemos utilizar os filtros para realizar um mapeamento de um parâmetro do processo para uma coluna da tabela de dados. Para utilizar esta funcionalidade, é necessário que o processo possua um parâmetro do tipo “Responsável”, assim como um parâmetro do tipo “Responsáveis” também é necessário.
Através da transferência de responsáveis, podemos trocar o responsável por uma tarefa ou instância do workflow, para isso, vamos seguir os seguintes passos:
- No menu principal do T6, em Workflow, vamos selecionar a opção Transferir Responsáveis;
- Será aberto um panel na lateral com 3 etapas: Propriedades, Instâncias e Resumo;
- na etapa propriedades, vamos selecionar o responsável atual e o novo responsável pela tarefa que desejamos transferir;
- Ao clicar no dropdown do Responsável Atual serão exibidos os usuários do sistema que tem tarefas do workflow vinculadas, selecione o usuário responsável pela tarefa que deseja transferir;
- No dropdown do Novo Responsável teremos a exibição de todos os usuários que podem ter a tarefa a ser transferida vinculada, selecione o novo responsável;
- Temos também um botão switch Atualizar as Tabelas de Responsáveis, que por padrão vem desabilitado, caso queira atualizar as tabelas de responsáveis automaticamente após a conclusão da transferência, habilite o botão switch;
- Após a seleção do responsável atual e do novo responsável, vamos clicar em
;
- Ao clicar em próximo, avançaremos para a etapa Instâncias, onde teremos uma listagem das tarefas em forma de árvore hierárquica, permitindo a seleção de todas as tarefas do workflow, dos processos, ou, a seleção de instâncias específicas;
- Na listagem, ao lado do nome de cada processo temos uma checkbox, marque a checkbox das instâncias e/ou processos que deseja transferir;
- Após selecionar as instâncias e/ou processos que desejamos transferir, vamos clicar em
;
- Avançaremos para a etapa Resumo na qual teremos uma exibição das ações a serem realizadas, exibindo o responsável atual selecionado, o novo responsável e as instâncias selecionadas para transferência;
- Caso deseje alterar algum dado antes de prosseguir, clique em
e faça as alterações necessárias;
- Caso esteja de acordo com as ações a serem realizadas, vamos clicar em

Como intuito de facilitar a configuração de e-mails, é possível criarmos modelos de e-mail no processo. Depois de configurado o modelo de e-mail, podemos associá-lo a eventos pré-determinados no processo ou na tarefa.
- Iniciar: Ao associar um modelo de e-mail ao evento iniciar, um e-mail com o modelo associado será enviado toda vez que uma nova instância for iniciada.
- Parar: Ao associar um modelo de e-mail ao evento parar, um e-mail com o modelo associado será enviado toda vez que uma instância for parada.
- Fim: Ao associar um modelo de e-mail ao evento fim, um e-mail com o modelo associado será enviado toda vez que uma instância for finalizada.
- Iniciar Tarefa: Ao associar um modelo de e-mail ao evento iniciar tarefa, um e-mail com o modelo associado será enviado toda vez que uma tarefa for iniciada.
- Aprovar Tarefa: Ao associar um modelo de e-mail ao evento aprovar tarefa, um e-mail com o modelo associado será enviado toda vez que uma tarefa for aprovada.
- Rejeitar Tarefa: Ao associar um modelo de e-mail ao evento rejeitar tarefa, um e-mail com o modelo associado será enviado toda vez que uma tarefa for rejeitada.
- Prazo da Tarefa: Ao associar um modelo de e-mail ao evento prazo da tarefa, um e-mail com o modelo associado será enviado para cada tarefa que não estiver atrasada e estiver com o tempo restante abaixo do configurado no processo, quando o T6 Planning Services for executado com a opção “sendmaildeadline”.
- Tarefa Atrasada: Ao associar um modelo de e-mail ao evento tarefa atrasada, um e-mail com o modelo associado será enviado para cada tarefa atrasada, toda vez que o T6 Planning Services for executado com a opção “sendmaildeadline”.
No menu principal do T6, em Workflow, temos a opção "Feriados".
Esta opção, tem como única funcionalidade a adição de datas nas quais as tarefas do workflow serão pausadas, ou seja, se tivermos um feriado em dia útil.
Ao clicarmos em "Feriados", um panel na lateral será aberto, onde poderemos adicionar uma data que não contará como dia útil, sendo assim, não contará nos prazos das tarefas do workflow.
Por Exemplo: Temos uma tarefa que tem 4 dias para sua conclusão, se tivermos um feriado adicionado neste meio tempo, a data para conclusão será "estendida" para próximo dia útil, pois o prazo para conclusão de tarefas do workflow leva em consideração somente os dia úteis.
A definição do fluxo de atividades de um processo é realizada através de um designer gráfico. Ao criar um novo processo, o designer irá criar uma atividade de Início e uma atividade de Fim para o processo.
Sempre que uma atividade for selecionada, clicando com o primeiro botão do mouse sobre a atividade, o designer irá disponibilizar ao redor da atividade selecionada quais outras possíveis atividades podem se desprender da atividade atual. Caso nenhuma opção esteja disponível, significa que a atividade atual não pode ter mais nenhuma atividade se desprendendo dela.
Para acessar as ações disponíveis de uma atividade. Basta utilizar o segundo botão do mouse sobre a atividade desejada. Com isto, um menu de contexto irá ser disponibilizado com as ações para a atividade.
Caso um duplo clique seja realizado na atividade, o designer irá executar a ação padrão esperada para aquela atividade. Geralmente a primeira ação disponível do menu de contexto para a atividade.
Para mover uma atividade, basta selecionar a mesma e realizar o movimento de arrastar e soltar na nova posição desejada para a atividade.
Algumas atividades suportam o redimensionamento. Para realizar o redimensionamento, basta selecionar a atividade e realizar o movimento de arrastar e soltar no canto inferior direto da atividade. Lembrando que, quando o mouse se encontrar no canto inferior direito da atividade e a atividade suportar o redimensionamento, o cursor do mouse irá ser alterado para o cursor de redimensionamento.
¶ 3.6.1 Identificando os Objetos e Atividades do Workflow
O workflow T6 Planning segue as regras do BPM, sendo que cada objeto disponível em nossa ferramenta representa uma atividade, conforme segue abaixo:
- Início: Utilizado para identificar o início de um processo, sequência ou sub-processo. Todo fluxo deve possuir somente um Início. Por este motivo não é possível inserir ou remover o Início de um fluxo.
- Fim: Utilizado para identificar o final de um processo, sequência ou sub-processo. Todo fluxo deve possuir somente um Fim. Por este motivo não é possível inserir ou remover o Fim de um fluxo.
- Subprocesso: Possibilita a utilização de um processo dentro de outro, desde que ambos os processos sejam compatíveis entre si. Ou seja, no mapeamento do processo para o sub-processo, todos os parâmetros do sub-processo devem possuir um parâmetro do processo, de mesmo tipo ou equivalente.
- Sequência: Utilizado para agrupar atividades dentro de um processo, possibilitando a abstração e simplificação de um processo.
- Condicional: Utilizado para desviar o fluxo de um processo. Todo condicional deve possuir uma expressão a ser validada. A resultante dessa expressão deve ser um valor booleano. Caso a resultante seja um valor verdadeiro, a instância irá ser desviada para a conexão em verde. Caso o valor da resultante seja um valor falso, a instância irá ser desviada para a conexão em vermelho.
Abaixo a sintaxe esperada em uma expressão de uma condicional:
[Bloco Comparativo]
Onde:
[Bloco Comparativo] = [Comparativo] ou [Comparativo] e [Operador Lógico] e [Bloco Comparativo]
[Comparativo] = [Operando] e [Comparador] e [Operando]
[Operando] = Pode ser qualquer função ou uma constante. Para maiores informações sobre funções. Veja a lista de funções.
[Comparador] = “<=” ou “=” ou “>=” ou “!=”
[Operador Lógico] = AND ou OR
- Divisor: Utilizado para criar instâncias no fluxo. Um divisor pode ter quantas conexões de saída forem necessárias. Para cada conexão de saída de um divisor será gerado uma nova instância.
Caso uma expressão seja utilizada no divisor, para cada valor resultante na função de carregamento da expressão, será gerado uma nova instância para cada conexão de saída do divisor. O valor resultante da função de carregamento será preenchido no parâmetro informado na função instância na nova instância criada.
Sempre que uma instância se deparar com um divisor, novas instâncias serão criadas no fluxo e a instância original será deslocada para a junção referente ao divisor com o estado de aguardando. Quando a última instância criada no divisor chegar a junção, a instância original irá sair do estado aguardando e continuará o fluxo com o estado executando.
Abaixo a sintaxe esperada em uma expressão de um divisor:
[Função Instância] = [Função Carregamento]
[Função Instância] deve ser a função Instance. Para maiores informações sobre a função Instance, veja a lista de funções.
[Função Carregamento] deve ser uma função de carregamento. Para maiores informações sobre funções de carregamento, veja a lista de funções.
- Junção: Utilizado para realizar a junção de duas ou mais conexões em um fluxo. Sempre que tivermos um condicional ou um divisor no fluxo, temos que ter uma junção em contrapartida para o mesmo.
- Raia: Utilizada para designar o responsável por uma tarefa do processo fluxo. Cada raia do processo deve ser associada a uma raia do T6 Planning. Com isto, o responsável por uma tarefa no fluxo será definido pelos usuários contidos na raia do T6 Planning. Em um processo podemos ter diversas raias. Existe a possibilidade de termos duas raias do fluxo apontando para a mesma raia do T6 Planning.
- Tarefa: Designa uma atividade que não possui vínculo com o funcionamento do fluxo do processo, mas sim com o objetivo do processo em si. Uma tarefa pode ser automática ou manual. Caso ela seja manual, irá possuir no mínimo um responsável pela execução da mesma.
Abaixo os possíveis tipos de tarefas disponíveis:
- Carga de Dados: Este tipo de tarefa tem como objetivo a execução de cargas de dados, podendo ser uma carga de dimensão ou uma carga fato. Possui a necessidade da escolha de uma aplicação específica. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Carga de Dados Automática: Idem a carga de dados, porém esta irá acontecer de forma automática.
- Comando SQL: Permite ao usuário colocar um comando SQL para ser executado pela tarefa.
- E-mail: Este tipo de tarefa tem como objetivo o envio de e-mail. Não possui dependência com nenhuma aplicação. Por se tratar de uma tarefa de execução automática, não necessita a definição de um usuário responsável.
- Expressão: Este tipo de tarefa tem como objetivo a execução de expressões. Existe a possibilidade de inserir diversas expressões na mesma tarefa. Para isto, basta colocar cada expressão em uma linha diferente. Não possui dependência com nenhuma aplicação. Por se tratar de uma tarefa de execução automática, não necessita a definição de um usuário responsável.
Abaixo a sintaxe esperada em uma expressão de uma tarefa:
[Função de Armazenamento] = [Função ou Constante]
Onde:
[Função de Armazenamento] deve ser uma função de armazenamento. Para maiores informações sobre funções de armazenamento, para mais informações acesse: Fórmulas e Funções.
[Função ou Constante] pode ser qualquer função ou uma constante. Para maiores informações sobre funções, para mais informações acesse: Fórmulas e Funções.
- Fórmula: Este tipo de tarefa tem como objetivo a execução de fórmulas. Possui a necessidade da escolha de uma aplicação específica. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Fórmula Automática: Idem a Formula, porém esta irá acontecer de forma automática.
- Formulário: Este tipo de tarefa tem como objetivo a abertura de um formulário para o preenchimento de informações. Existe a possibilidade de associar os parâmetros do processo as páginas do formulário. Com isto, ao abrir o formulário através da tarefa, as páginas virão selecionadas de acordo com o valor do parâmetro contido na instância atual. Possui a necessidade da escolha de uma aplicação específica. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Formulário de Dados: Este tipo de tarefa tem como objetivo a abertura de um formulário de dados para o preenchimento de informações. Existe a possibilidade de associar os parâmetros do processo as páginas do formulário de dados. Com isto, ao abrir o formulário de dados através da tarefa, as páginas virão selecionadas de acordo com o valor do parâmetro contido na instância atual. Possui a necessidade da escolha de uma aplicação específica. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Hyperlink: Este tipo de tarefa tem como objetivo a abertura de um hyperlink. Não possui dependência com nenhuma aplicação. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Hyperlink Automático: Idem ao Hyperlink, porém esta irá acontecer de forma automática.
- Link de Dados: Este tipo de tarefa tem como objetivo a execução de link de dados. Possui a necessidade da escolha de uma aplicação específica. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Publicar: Irá realizar a publicação do Cubo da aplicação selecionada na tarefa. É a mesma ação que ir no menu “Modelagem” -> “Publicar”.
- Recarregar Membros: Irá recarregar os membros da dimensão selecionada na tarefa (conforme aplicação selecionadas também) que estão no banco de dados. É a mesma ação que ir na tela “Modelagem” -> “Estrutura do modelo” -> “Membros” e no menu “Ferramentas” da tela, ação “Recarregar Membros”.
- Relatório: Este tipo de tarefa tem como objetivo a visualização de um relatório. Possui a necessidade da escolha de uma aplicação específica. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Rotina Automática: Este tipo de tarefa tem como objetivo a execução de um job do SQL Server de forma automática. Não possui dependência com nenhuma aplicação. Por se tratar de uma tarefa de execução automática, não necessita a definição de um usuário responsável.
- Rotina Manual: Este tipo de tarefa tem como objetivo a execução de um job do SQL Server de forma manual. Não possui dependência com nenhuma aplicação. Por se tratar de uma tarefa de execução manual, necessita a definição de um usuário responsável.
- Tipos de Cenários: Permite alterar os tipos de cenários (se o cenário é fechado, planejado ou realizado) da aplicação. É a mesma ação que ir no menu “Modelagem” -> “Tipos de Cenários”.
O T6 Planning Workflow BPM permite que sejam inseridas algumas funções com finalidades específicas dentro do processo, conforme descrito abaixo:
A função CreateDataTableRow é utilizada para criar um registro em uma tabela de dados.
PARÂMETROS:
- Tabela de Dados: Nome da tabela de dados.
- Coluna e Valor: Parâmetro multivalorado opcional utilizado para definir os valores das colunas do novo registro da tabela de dados.
EXEMPLO: Instance(Unidade Consumidora Faturamento Mensal) = CreateDataTableRow([Unidade Consumidora Faturamento Mensal], [Unidade Consumidora] = Instance(Unidade) ,[Mês] = Instance(Mes))
Neste exemplo de expressão de uma tarefa do tipo expressão, um novo registro na tabela de dados Unidade Consumidora Faturamento Mensal é criado, onde o valor da coluna Unidade Consumidora será preenchido com o parâmetro da instância de nome Unidade, assim como o valor da coluna Mês do registro será preenchido com o parâmetro da instância de nome Mês.
A função DataLoadParameter é utilizada para manipular os parâmetros de carga de dados de uma aplicação específica, podendo a função ser utilizada para carregar ou salvar um valor de um parâmetro de carga de dados. Esta função é considerada uma função de armazenamento.
PARÂMETROS:
- Parâmetro: Parâmetro da carga de dados. Composto pelo nome da aplicação e o nome do parâmetro de carga de dados.
EXEMPLO: Instance(Email) = DataLoadParameter([Qualidade].[Conteúdo])
Este exemplo de expressão trata de uma tarefa do tipo expressão. O valor do parâmetro de carga de dados Conteúdo da aplicação Qualidade será atribuído ao parâmetro Email da instância atual.
A função DataTableCell é utilizada para manipular os valores de um registro de uma tabela de dados, podendo a função ser utilizada para carregar ou salvar um valor de um registro de uma tabela de dados. Esta função é considerada uma função de armazenamento.
PARÂMETROS:
- Cell: Identificação de uma célula de uma tabela de dados. Composto pelo nome da tabela de dados, identificação da linha e nome da coluna.
EXEMPLO: Instance(UEmail) = DataTableCell([Usuarios].[Instance(ID)].[Email])
Este exemplo de expressão trata de uma tarefa do tipo expressão. O valor da coluna Email da tabela de dados Usuários do registro contido no parâmetro ID será atribuído ao parâmetro UEmail da instância atual.
A função DataTableRowLookup é utilizada para buscar a identificação de um registro de uma tabela de dados.
PARÂMETROS:
- Row: Identificação de um registro de uma tabela de dados. Composto pelo nome da tabela de dados, nome da coluna e um valor esperado na coluna.
EXEMPLO: Instance(ID) = DataTableRowLookup[Users].[Nome].[Instance(Atual)]
Este exemplo de expressão trata de uma tarefa do tipo expressão. A identificação do registro da tabela de dados Users que possuir o valor da coluna Nome igual ao valor do parâmetro Atual será atribuído ao parâmetro ID da instância atual.
Esta função busca o valor da data atual do servidor.
EXEMPLO: Instance(Data) = GetDate()
Este exemplo de expressão trata de uma tarefa do tipo expressão. A data do servidor será atribuída ao parâmetro Data da instância atual.
A função Instance é utilizada para manipular os valores de parâmetros da instância, podendo a função ser utilizada para buscar ou salvar um valor de um parâmetro de instância. Esta função é considerada uma função de armazenamento.
PARÂMETROS:
- Parameter: Nome de parâmetro do processo.
EXEMPLO: Instance(Ação) = “Aprovada”
Este exemplo de expressão trata de uma tarefa do tipo expressão. A constante “Aprovada” será atribuída ao parâmetro Ação da instância.
Retorna o código da instância atual.
PARÂMETROS: Não possui parâmetros.
EXEMPLO: Instance (Código) = InstanceCode()
Retorna o nome da instância atual.
PARÂMETROS: Não possui parâmetros.
EXEMPLO: Instance (Nome) = InstanceName()
A função LoadDataTableRows é utilizada para carregar os registros de uma tabela de dados, podendo os mesmos ser filtrados ou não. Esta função é considerada uma função de carregamento.
PARÂMETROS:
- Tabela de Dados: Nome da tabela de dados a ter os registros carregados.
- Filtro: Parâmetro multivalorado opcional utilizado para filtrar os registros a serem carregados. Caso mais de um filtro seja definido. Os filtros irão atuar de maneira a trazer a intersecção dos resultados. Caso existam filtros consecutivos aonde o operando a esquerda seja igual. Os mesmos irão atuar de maneira a trazer a união dos resultados.
Abaixo a sintaxe esperada em um parâmetro de filtro:
[Operando] [Comparador] [Operando]
Onde:
[Operando] = [Coluna] ou [Constante] ou [Instancia] ou [Expressão]
[Coluna] = Nome de uma coluna da tabela de dados. O nome da coluna deve vir dentro de colchetes.
[Constante] = Valor de uma constante. O valor da constante deve vir entre plicas duplas.
[Instancia] = Função Instance. Para maiores informações sobre o uso da função Instance, olhar na lista de funções os detalhes.
[Expressão] = Uma expressão SQL. A expressão deve vir dentro de chaves.
[Comparador] = “<=” ou “=” ou “>=” ou “!=”
- Coluna: Parâmetro opcional que deve ser utilizado sempre que desejar retornar uma coluna diferente da coluna identificação da tabela de dados.
EXEMPLO: Instance(Atividade) = LoadDataTableRows([Atividades])
Neste exemplo de expressão de um divisor, as identificações dos registros da tabela de dados Atividades serão atribuídas aos parâmetros Atividade das instâncias criadas pelo divisor.
A função LoadMembers é utilizada para carregar os membros de uma dimensão, podendo os mesmos ser filtrados ou não. Esta função é considerada uma função de carregamento.
PARÂMETROS:
- Dimensão: Nome da tabela de dados a ter os registros carregados. Composto pelo nome da aplicação e dimensão.
- Filtro: Parâmetro multivalorado opcional utilizado para filtrar os membros a serem carregados. Caso mais de um filtro seja definido. Os filtros irão atuar de maneira a trazer a intersecção dos resultados. Caso existam filtros consecutivos onde o operando à esquerda seja igual, os mesmos irão atuar de maneira a trazer a união dos resultados.
Abaixo a sintaxe esperada em um parâmetro de filtro:
[Operando] [Comparador] [Operando]
Onde:
[Operando] = [Coluna] ou [Constante] ou [Instancia] ou [Expressão]
[Operando] = [Propriedade] ou [Constante] ou [Instancia]
[Propriedade] = Nome de uma propriedade da dimensão. O nome da propriedade deve vir dentro de colchetes.
[Constante] = Valor de uma constante. O valor da constante deve vir entre plicas duplas.
[Instancia] = Função Instance. Para maiores informações sobre o uso da função Instance, olhar na lista de funções os detalhes.
[Comparador] = “<=” ou “=” ou “>=” ou “!=”
EXEMPLO: Instance(Membro) = LoadMembers([Planejamento].[Entidade])
Neste exemplo de expressão de um divisor, as identificações dos membros da dimensão Entidade da aplicação Planejamento serão atribuídas aos parâmetros Membro das instâncias criadas pelo divisor.
Retorna o nome ou o valor de uma propriedade do membro.
PARÂMETROS:
- Dimensão: Nome da dimensão do membro. Composto pelo nome da aplicação e dimensão.
- Identificador: Identificador textual (ID ou UniqueID) do membro ou valor de um parâmetro da instância.
- Propriedade: Nome da propriedade desejada. Caso este parâmetro não seja preenchido, a função irá retornar o nome do membro.
EXEMPLOS:
Member([Aplicação].[Dimensão], "5")
Member([Aplicação].[Dimensão], "[Conta].[Conta].[&5]")
Member([Aplicação].[Dimensão], "[Conta].[Conta].[&5]", "Propriedade))
Retorna a descrição do processo.
PARÂMETROS: Não possui parâmetros.
Retorna o nome do processo.
PARÂMETROS: Não possui parâmetros.
A função RemoveDataTableRow é utilizada para remover registros de uma tabela de dados.
PARÂMETROS:
- Tabela de Dados: Nome da tabela de dados.
- Coluna e Valor: Parâmetro multivalorado opcional utilizado para definir os valores de filtros das colunas removidas.
EXEMPLO: Instance(Unidades) = RemoveDataTableRow([Unidade Consumidora], [Contrato] = Instance(Contrato));
Neste exemplo de expressão de uma tarefa do tipo expressão, os registros na tabela de dados Unidade Consumidora são removidos, onde temos como filtro da remoção a coluna Contrato possuindo o valor do parâmetro de instância Contrato. Neste exemplo, o parâmetro de instância Unidades irá receber o número de registros removidos.
Retorna o nome e e-mail do responsável pela tarefa.
PARÂMETROS:
- Posição: Você pode buscar o responsável 'Anterior', 'Atual' ou o 'Próximo'. Utilize 'Previous', 'Current' ou 'Next'.
EXEMPLO: Responsible(Current)
Retorna o e-mail do responsável pela tarefa.
PARÂMETROS:
- Posição: Você pode buscar o responsável 'Anterior', 'Atual' ou o 'Próximo'. Utilize 'Previous', 'Current' ou 'Next'.
Retorna o nome do responsável pela tarefa.
PARÂMETROS:
- Posição: Você pode buscar o responsável 'Anterior', 'Atual' ou o 'Próximo'. Utilize 'Previous', 'Current' ou 'Next'.
A função Sum é utilizada para somar os valores contidos um parâmetro multivalorado.
PARÂMETROS:
- Parameter: Nome de parâmetro do processo.
EXEMPLO: Instance(Valor) = Sum(Valores)
Neste exemplo de expressão de uma tarefa do tipo expressão, o somatório dos valores contidos no parâmetro Valores será atribuído ao parâmetro Valor da instância.
Retorna o descritivo da tarefa atual.
PARÂMETROS: Não possui parâmetros.
Retorna o nome da tarefa atual.
PARÂMETROS: Não possui parâmetros.
As raias são utilizadas para organizar e categorizar atividades de acordo com a função ou papel.
Uma raia pode possuir uma coleção de usuários, ou até mesmo uma coleção de grupo de usuários. Os usuários contidos na raia, direta ou indiretamente, irão possuir a função ou papel desempenhada pela raia.
As raias são independentes de aplicações e modelos. Com isto, uma mesma raia pode ser utilizada em diversos processos distintos.
Cada raia pertencente a um processo possui uma relação de um para um para a raia.
Gatilhos são artifícios do T6 Planning para criar novas instâncias de um processo. Os gatilhos podem ser executados de forma manual, automática ou através do T6 Planning Services.
Quando um gatilho é disparado, uma nova instância é criada no processo pré-definido na criação do gatilho. A nova instância é criada no Início do processo e executada pelo motor de execução do workflow até encontrar uma tarefa manual ou se deparar com o final do processo.
Os Gatilhos podem ser disparados de forma manual, automática ou através do T6 Planning Services.
- Manual: Todo gatilho pode ser disparado de forma manual. Para isto, basta executar um gatilho da lista de gatilhos e preencher os parâmetros necessários.
- Automático: Um gatilho pode ser configurado para ser disparado de forma automática. Para isto, na definição do gatilho, é necessário configurar uma tabela de dados a ser observada, onde devemos informar em quais eventos o gatilho deve ser disparado.
Para que um gatilho automático funcione, é necessário que o processo possua um parâmetro do tipo Tabela de Dados apontando para o mesmo processo o qual o gatilho está observando. Este parâmetro será preenchido no momento da criação da instância com a identificação da linha que disparou o evento.
- T6 Planning Services: Existe a possibilidade de configurar um gatilho para ser executado automaticamente no T6 Planning Services. Sempre que o T6 Planning Services for executado com a opção StartInstance, todos os gatilhos marcados para serem executados no T6 Planning Services serão disparados. Caso seja necessário, existe a possibilidade de executar um gatilho pontualmente através do T6 Planning Services.
Os eventos disponíveis para disparo de gatilhos são:
- Inserção: A cada nova linha inserida na tabela de dados irá criar uma nova instância do processo. A instância será criada após a inserção da nova linha da tabela de dados.
- Atualização: A cada linha atualizada na tabela de dados irá criar uma nova instância do processo. A instância será criada após a atualização da linha da tabela de dados.
- Remoção: A cada linha removida da tabela de dados irá criar uma nova instância do processo. A instância será criada antes da remoção da linha da tabela de dados.
Para realizar a execução de um processo, uma instância deve ser iniciada e parametrizada. Além disso, deve ser feita a definição dos responsáveis pelas atividades do processo.
Ao ser executado um gatilho, de maneira manual ou automática, uma nova instância será criada. Esta instância inicializada terá os seus valores de parâmetros preenchidos com os valores encontrados no gatilho que originou a instância.
A nova instância criada irá percorrer o fluxo até encontrar o final. No decorrer do fluxo a instância pode requerer uma ação manual de um usuário. Quando isto ocorrer, a instância ficará aguardando a interatividade do usuário responsável pela atividade atual.
Quando existir a necessidade de uma interatividade manual o usuário deve executar uma ação na atividade.
As ações disponíveis são:
- Aprovar: Esta ação aprova a atividade atual e envia a instância para a próxima atividade manual disponível. Caso exista mais de um responsável na atividade, a instância irá permanecer na mesma atividade e designar o próximo responsável caso ele exista.
- Rejeitar: Esta ação rejeita a atividade atual e retorna a instância para o responsável anterior ou a atividade manual anterior. Para executar esta ação, o usuário deve possuir uma permissão específica, e o fluxo deve encontrar-se em um momento onde a ação seja válida.
- Parar: Esta ação cancela a instância atual. Uma vez cancelada uma instância, ela não pode mais ser executada. Para executar esta ação o usuário deve possuir uma permissão específica.
- Pausar: Esta ação pausa todas as instâncias impossibilitando o processo de seguir o seu fluxo adiante. A mesma função que permite o usuário de parar uma instância também o permitirá pausar e/ou retomar a instância de um processo.
- Retomar: Esta ação age sobre uma instância pausada, retomando a execução do fluxo no estado anterior ao que foi pausado.
- Pinçar: Permite pinçar (pegar) uma instância e jogar ela para outro ponto do fluxo. Exemplo tosco: Processo está na "Tarefa 5" do fluxo, usuário pode pinçar ela e fazer com que a instância volte para a "Tarefa 1".
- Atribuir: Esta ação atribui o responsável da instância atual ao usuário. Ao atribuir a ação a ele, nenhum outro usuário pode executar ação na instância. Esta ação apenas está disponível em atividades com responsabilidade mista.
- Desatribuir: Esta ação desatribui o responsável da instância atual, possibilitando que outro usuário possa atribuir a instância atual. Esta ação apenas está disponível em atividades com responsabilidade mista.
A responsabilidade de uma atividade manual pode ser definida de diversas maneiras, conforme descrito a seguir.
Quando uma atividade estiver dentro de uma raia e o processo não possuir nenhum parâmetro do tipo responsável, a responsabilidade da atividade é visualizada por todos os usuários que pertencem à raia.
Quando uma atividade não estiver dentro de uma raia e o processo possuir um parâmetro do tipo responsável, a responsabilidade da atividade é designada ao usuário definido no parâmetro responsável.
Quando uma atividade estiver dentro de uma raia e o processo possuir um parâmetro do tipo responsável, a responsabilidade da atividade será visualizada por todos os usuários que pertencem à raia, enquanto nenhum usuário atribuir a atividade para ele. Caso um usuário tenha atribuído a instância para ele, apenas o usuário atribuído irá visualizar a atividade.
Uma atividade é considerada de responsáveis dinâmicos quando o processo ao qual ela pertence for configurado para carregar os responsáveis dinamicamente de uma tabela de dados. Nesta situação, sempre que a instância entrar em uma atividade manual, os responsáveis pela atividade serão carregados da tabela de dados e armazenados no parâmetro do tipo Responsáveis. O primeiro responsável da lista de responsáveis será armazenado no parâmetro do tipo Responsável.
Este tópico aborda as configurações de papéis e funções dos usuários responsáveis pelas tarefas do processo.
Um papel do tipo processo permite ao usuário acessar as informações do cubo. Ao serem requisitados os papéis de um usuário pela aplicação, para cada instância atribuída ao usuário é criado um papel contendo a informação dos parâmetros do tipo membro referentes à aplicação em questão.
Novas funções foram disponibilizadas para flexibilizar o acesso às novas funcionalidades pelos usuários. Abaixo, as novas funções disponíveis:
Usuários com esta função possuem a permissão para criar, editar e remover processos. Disponível apenas para usuários Gestores.
Usuários com esta função possuem a permissão para criar, editar e remover gatilhos. Disponível apenas para usuários Gestores.
UUsuários com esta função possuem a permissão para criar, editar e remover raias. Disponível apenas para usuários Gestores.
Usuários com esta função possuem a permissão para parar uma instância em execução. Disponível apenas para usuários Gestores.
A mesma função que permite o usuário de parar uma instância também o permitirá pausar a instância de um processo.
A mesma função que permite o usuário de parar uma instância também o permitirá retomar a instância de um processo.
Usuários com esta função possuem a permissão de pinçar instâncias. Disponível apenas para usuários Gestores.
Usuários com esta função possuem a permissão para publicar processos. Disponível apenas para usuários Gestores.
Usuários com esta função possuem a permissão para rejeitar uma instância em execução. A opção apenas estará disponível se o item do processo anterior à tarefa atual for uma tarefa manual. Disponível apenas para usuários Planejadores.
Usuários com esta função possuem a permissão de visualizar instâncias. Disponível apenas para usuários Planejadores.
Usuários com esta função possuem a permissão de executar gatilhos. Disponível apenas para usuários Planejadores.
Usuários com esta função possuem a permissão para visualizar processos. Disponível apenas para usuários Gestores.
A seguir será mostrado um processo criado com o novo workflow BPM disponível no T6 Planning.
Um usuário cadastra um reembolso em um formulário de dados. Caso o valor do reembolso seja inferior a R$500,00, o reembolso é automaticamente aprovado. Caso o valor reembolso seja superior a R$500,00 e inferior a R$10.000,00 o reembolso necessita da aprovação manual de um usuário participante da raia de reembolso. Caso seja superior a R$10.000,00 o reembolso é automaticamente rejeitado.

A Imagem de Workflow é um tipo de objeto no T6 Planning que permite incorporar imagens de forma inline nas notificações de e-mail enviadas por tarefas de workflow. Ao referenciar uma Imagem de Workflow por meio de seu ID de Conteúdo (CID), uma tarefa de workflow pode incluir logotipos corporativos, diagramas ou qualquer imagem personalizada diretamente no corpo das mensagens de e-mail automáticas.
Nota: Para que as notificações por e-mail funcionem, os parâmetros de SMTP devem estar corretamente configurados no T6 Planning. Consulte 3.4. Modelos de E-mail para a configuração relacionada de e-mail.
Antes de utilizar notificações por e-mail com imagens incorporadas, verifique se os seguintes parâmetros de SMTP estão configurados em Parâmetros:
| Parâmetro |
Descrição |
| Servidor SMTP |
Nome do host ou endereço do servidor SMTP (ex.: smtp.office365.com) |
| Usuário do servidor SMTP |
Endereço de e-mail utilizado para envio das mensagens |
| Senha do servidor SMTP |
Senha da conta de e-mail do remetente |
| Porta do servidor SMTP |
Porta SMTP (normalmente 587 para STARTTLS) |
| Habilitar SMTP SSL |
Ativa a criptografia SSL/TLS |
| Domínio do Proxy |
Domínio para autenticação de proxy, se aplicável |
| Servidor Proxy |
Endereço do servidor proxy, se aplicável |
| Usuário do Proxy / Senha do Proxy |
Credenciais do proxy, se aplicável |
Uma configuração típica de Imagem de Workflow no Explorer contém os seguintes objetos na mesma pasta:
- Uma Imagem de Workflow — armazena a imagem a ser incorporada nos e-mails
- Um Processo de Workflow — o processo que contém a tarefa de e-mail
- Um Gatilho de Workflow — o gatilho que inicia o processo
¶ 9.3 Configurando uma Imagem de Workflow
- No Explorer, navegue até a pasta onde deseja armazenar os objetos de workflow.
- Clique em Novo Item e em Processo selecione Imagem de Workflow.
- Faça o upload ou associe a imagem desejada ao objeto Imagem de Workflow.
Painel - Workflow Image
Cada objeto Imagem de Workflow possui um ID de Conteúdo (CID) único, utilizado para referenciá-lo no corpo HTML do e-mail.
- Selecione o objeto Imagem de Workflow no Explorer.
- Na ribbon, clique em Editar para abrir o painel de propriedades do objeto.
- Clique no botão Copiar para copiar o CID para a área de transferência.
Nota: O CID é o identificador interno utilizado pelo padrão MIME de e-mail para associar uma tag HTML <img> ao anexo de imagem correspondente.
- Abra (ou crie) um Processo de Workflow no Explorer.
- No designer do processo, crie uma atividade do tipo Tarefa.
- No assistente da tarefa, na aba 1. Propriedades, defina o Tipo como E-mail.
- Navegue até a aba 2. Objeto e configure:
- Para: endereço(s) de e-mail do(s) destinatário(s);
- CC: endereço(s) em cópia, se necessário;
- Assunto: assunto do e-mail;
- Corpo: conteúdo HTML do e-mail.
O campo Corpo deve conter HTML para que a imagem seja incorporada de forma inline. Utilize a tag <img src="cid:...">, substituindo ... pelo CID copiado do objeto Imagem de Workflow.
Template HTML mínimo:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>
<img src="cid:CID_DA_IMAGEM">
</div>
</body>
</html>
Substitua CID_DA_IMAGEM pelo CID copiado do objeto Imagem de Workflow.
Importante: O campo Corpo deve conter HTML válido. Se apenas texto simples for inserido (sem tags HTML), a imagem não será incorporada — apenas uma mensagem de texto simples será entregue.
Salve e publique o processo após configurar a tarefa de e-mail e retorne ao Explorer.
- No Explorer, crie um Gatilho de Workflow vinculado ao processo.
- Execute o gatilho para iniciar o processo.
- Em poucos segundos, os destinatários configurados receberão um e-mail com a imagem incorporada no corpo da mensagem.
O recurso Imagem de Workflow utiliza o formato de e-mail MIME multipart, que é o padrão para e-mails com conteúdo rico:
- O e-mail é composto com um corpo HTML contendo
<img src="cid:[content-id]">.
- A Imagem de Workflow referenciada é serializada como uma parte codificada em Base64 dentro da mensagem MIME.
- Essa parte MIME recebe um Content-ID que corresponde ao valor
cid: no HTML.
- O cliente de e-mail do destinatário associa a referência
cid: à imagem anexada e a renderiza de forma inline no corpo da mensagem.
Esse mecanismo incorpora a imagem diretamente no e-mail, em vez de vinculá-la a uma URL externa, garantindo que a imagem seja sempre exibida independentemente das configurações de carregamento de imagens externas do cliente.
O novo editor de Workflow BPM é uma evolução significativa em relação ao editor anterior, trazendo uma série de melhorias e novas funcionalidades para facilitar a criação, edição e visualização de processos de workflow. Este novo editor foi desenvolvido com base no feedback dos usuários e tem como objetivo resolver as principais dificuldades encontradas na versão anterior, proporcionando uma experiência mais fluida e eficiente.
O novo editor permite selecionar múltiplos objetos simultaneamente:
- Múltipla seleção por arrasto: Clique e arraste para criar uma área de seleção e capturar múltiplos itens.
- Múltipla seleção por clique: Segure a tecla Ctrl e clique em vários objetos para selecioná-los individualmente.
- Movimentação em grupo: Mova todos os objetos selecionados juntos, mantendo suas posições relativas.
- Edição em lote: Realize operações em múltiplos objetos ao mesmo tempo.
Esta funcionalidade substitui a limitação anterior de selecionar apenas um objeto por vez, aumentando significativamente a produtividade ao trabalhar com workflows complexos.
A funcionalidade de clonagem permite duplicar rapidamente tarefas e objetos:
- Botão Clone: Após selecionar um ou mais objetos, clique no botão Clone para duplicá-los, mantendo suas conexões e propriedades.
- Clonagem múltipla: Clone vários objetos de uma só vez mantendo suas relações.
- Conexão rápida: Selecione múltiplos objetos clonados e conecte-os rapidamente uns aos outros, clicando no botão Connect para criar conexões entre eles.
Isso é especialmente útil quando você precisa criar fluxos repetitivos ou adicionar múltiplas tarefas similares ao processo.
O editor oferece ferramentas de alinhamento para organizar visualmente o workflow:
- Botão Arrange/Align: Selecione múltiplos objetos e clique para alinhá-los automaticamente.
- Alinhamento inteligente: Os objetos são organizados de forma limpa e profissional, eliminando a necessidade de ajuste manual.
Esta funcionalidade resolve um dos problemas mais comuns relatados pelos usuários: a dificuldade de manter workflows visualmente organizados.
O novo editor separa claramente os modos de edição e visualização:
- Abas distintas: Quando você abre um workflow para edição, ele abre diretamente na aba Editar.
- Alternância rápida: Clique entre as abas Iniciar e Editar para alternar entre edição e visualização sem sair da tela.
- Visualização em tempo real: Veja o workflow em execução enquanto mantém a aba de edição disponível.
A funcionalidade de cancelamento permite reverter alterações:
- Desfazer mudanças: Clique no botão Cancelar para retornar ao último estado salvo do workflow.
- Confirmação de saída: Se houver alterações não salvas, o sistema pergunta se deseja salvar ou cancelar.
Anteriormente, era necessário sair da tela e voltar para desfazer alterações.
A aba de validação aparece ao tentar publicar um processo:
- Validação antes da publicação: Identifica todos os problemas antes de publicar o workflow.
- Lista de erros: Mostra uma lista completa de todos os problemas encontrados, incluindo:
- Tarefas sem nome;
- Tarefas com tipo desconhecido;
- Referências cíclicas;
- Expressões inválidas;
- Objetos mal configurados;
- Navegação para erros: Clique em um erro na lista para selecionar e destacar o objeto problemático.
- Resolução guiada: Corrija todos os problemas antes de conseguir publicar.
Esta funcionalidade elimina o problema anterior onde erros só apareciam após a publicação, forçando os usuários a procurar manualmente qual tarefa ou expressão estava causando o problema.
Melhorias gerais na edição de objetos:
- Duplo clique: Clique duas vezes em um objeto para abrir suas propriedades.
- Ícones corretos: Os ícones das tarefas são exibidos corretamente baseados no tipo configurado.
- Feedback visual: Melhor indicação visual do objeto selecionado e seu estado.
O novo editor oferece recursos avançados de visualização de instâncias em execução:
- Histórico: Acesse instâncias anteriores através da aba de histórico.
- Acompanhamento visual: Veja visualmente onde cada instância está no fluxo do processo.
- Atualização automática: A visualização é atualizada automaticamente quando uma instância muda de estado.
- Tempo de execução: Exibe o tempo de execução atual e anterior de cada tarefa.
- Visualização por instância: Filtre para mostrar apenas uma instância específica e acompanhe seu fluxo.
- Nome da instância: Se a instância possui um nome configurado, ele é exibido; caso contrário, mostra o nome da tarefa e o código da instância.
Esta funcionalidade é particularmente útil para monitoramento em tempo real, permitindo até mesmo exibir o status do workflow em monitores dentro de departamentos.
O novo editor é totalmente compatível com workflows existentes:
- Sem migração necessária: Não requer migração de tabelas ou alteração de dados.
- Compatibilidade bidirecional: Você pode alternar entre o editor antigo e o novo se necessário.
Embora seja possível desabilitar o novo editor se houver problemas, recomenda-se mantê-lo ativado.
Perguntas Frequentes
1. Como habilitar o runtime do Workflow no T6?
Para habilitar o runtime do workflow no T6 basta ativar a preview feature: Workflow Runtime New.
- Acesse o menu principal do T6;
- Expanda a seção Configurações;
- Selecione a opção Preview;
- Habilite o botão switch Workflow Runtime New.
2. O que é um processo e uma instância no Workflow?
No Workflow, a definição de processo e instância são distintas:
Um processo é a definição de um fluxo de atividades.
Uma instância é um exemplar em execução desse processo.
Múltiplas instâncias podem executar simultaneamente no mesmo processo.
3. Quando é feita a validação de um processo do Workflow?
Nos processos do Workflow no T6, a validação de consistência ocorre apenas durante a publicação do processo, não ao salvá-lo.
4. Como funciona o controle de versão dos processos do Workflow?
No workflow do T6, toda vez que um processo é salvo, uma nova versão é criada, mantendo as versões anteriores no histórico para consultas futuras.
5. Quais tipos de parâmetros estão disponíveis nos processos do Workflow?
Temos os seguintes tipos de parâmetro nos processos do Workflow do T6:
Ação;
Arquivo;
Booleano;
Data;
Decimal;
Inteiro;
Membro;
Nome;
Responsáveis;
Responsável;
Tabela de Dados;
Texto.
6. O que são parâmetros internos no Workflow?
Os parâmetros internos do Workflow no T6, são parâmetros não visíveis na listagem ao executar um gatilho, usados para funcionamento interno do processo. São obrigatoriamente parâmetros que aceitam valores nulos.
7. Como transferir responsáveis no Workflow?
Para transferir responsáveis de instâncias em execução no Workflow do T6, siga os passos abaixo:
- Acesse o menu principal do T6;
- Expanda a seção Workflow;
- Selecione a opção Transferir Responsáveis;
- Siga as etapas do assistente para selecionar os responsáveis, instâncias e confirmar a ação.
Propriedades (selecionar responsáveis);
Instâncias (escolher processos/instâncias);
Resumo (confirmar ações).
8. Quais elementos posso usar no design do processo no Workflow?
Os elementos disponíveis para utilização no design do processo no Workflow são:
Início;
Fim;
Subprocesso;
Sequência;
Condicional;
Divisor;
Junção;
Raia;
Tarefa (com diversos tipos como Carga de Dados, E-mail, Expressão, Fórmula, Formulário, etc.).
9. Como funciona um Condicional nos processos do Workflow?
A condicional em um processo do Workflow avalia uma expressão booleana. Se verdadeira, segue pela conexão verde; se falsa, pela conexão vermelha.
10. O que faz um Divisor nos processos do Workflow?
O divisor nos processos do Workflow cria múltiplas instâncias no fluxo. Para cada conexão de saída, gera uma nova instância. A instância original aguarda na junção correspondente.
11. Quais tipos de gatilhos existem para o Workflow?
Os tipos de gatilhos disponíveis no Workflow do T6 são:
Manual (executado pelo usuário);
Automático (disparado por eventos em tabelas de dados);
T6 Planning Services (executado automaticamente pelo serviço).
12. Quais eventos podem disparar gatilhos automáticos do Workflow?
Os eventos que podem disparar gatilhos automáticos no Workflow do T6 são:
Inserção;
Atualização;
Remoção de linhas em tabelas de dados.
13. Quais ações posso executar em uma instância de processo no Workflow?
As ações que podem ser executadas nas instâncias de processo no Workflow são:
Aprovar;
Rejeitar;
Parar;
Pausar;
Retomar;
Pinçar;
Atribuir;
Desatribuir.
14. Como funciona a responsabilidade mista no Workflow?
Nos processos do Workflow, quando uma atividade está em uma raia e o processo tem parâmetro responsável, todos da raia podem visualizar a atividade até alguém atribuí-la para si.
15. Como ativar o novo editor de Workflow da versão 12.3?
Para ativar o novo editor de Workflow, siga os passos:
- Acesse o menu principal do T6.
- Expanda a seção Configurações.
- Selecione a opção Preview.
- Habilite o botão switch Workflow Process New.
O novo editor é totalmente compatível com workflows existentes e não requer migração de tabelas.
16. Qual a diferença entre "Workflow Runtime New" e "Workflow Process New"?
São duas preview features diferentes:
- Workflow Runtime New (versão 12.2): Runtime que executa o workflow com código compilado dentro do T6, melhorando a performance de execução.
- Workflow Process New (versão 12.3): Novo editor visual com melhorias de usabilidade, multi-seleção, validação avançada e outras funcionalidades.
Recomenda-se habilitar ambas as features para aproveitar tanto o runtime otimizado quanto o editor aprimorado.
17. Como selecionar múltiplos objetos no novo editor de Workflow?
O novo editor oferece duas formas de seleção múltipla:
- Seleção por arrasto: Clique e arraste para criar uma área de seleção e capturar múltiplos itens.
- Seleção por clique: Segure a tecla Ctrl e clique em vários objetos para selecioná-los individualmente.
Após selecionar, você pode mover todos os objetos juntos ou realizar operações em lote.
18. Como clonar tarefas no novo editor de Workflow?
Para clonar tarefas no novo editor:
- Selecione uma ou mais tarefas que deseja duplicar.
- Clique no botão Clone na barra de ferramentas.
- As tarefas serão duplicadas mantendo suas propriedades e conexões.
Você pode clonar múltiplos objetos de uma só vez e conectá-los rapidamente usando o botão Connect.
19. Como alinhar automaticamente objetos no novo editor de Workflow?
Para alinhar objetos automaticamente:
- Selecione os objetos que deseja alinhar.
- Clique no botão Arrange/Align na barra de ferramentas.
- Os objetos serão organizados automaticamente de forma limpa e profissional.
Esta funcionalidade elimina a necessidade de ajuste manual, mantendo workflows visualmente organizados.
20. O que é a aba de Validação no novo editor e como ela funciona?
A aba de Validação é uma das melhorias mais significativas do novo editor. Ela aparece quando você tenta publicar um processo e identifica todos os problemas antes da publicação:
- Tarefas sem nome
- Tarefas com tipo desconhecido
- Referências cíclicas
- Expressões inválidas
- Objetos mal configurados
Ao clicar em um erro da lista, o editor seleciona e destaca o objeto problemático, permitindo correção guiada de todos os problemas antes de publicar.
21. Como cancelar alterações no novo editor de Workflow?
O novo editor possui um botão Cancelar que permite reverter alterações:
- Clique no botão Cancelar para retornar ao último estado salvo do workflow.
- Se houver alterações não salvas, o sistema pergunta se deseja salvar ou cancelar.
- Isso evita perda acidental de trabalho.
Anteriormente, era necessário sair da tela e voltar para desfazer alterações.
22. Como alternar entre modo de edição e visualização no novo editor?
O novo editor separa claramente os modos de edição e visualização através de abas:
- Aba Editar: Permite modificar o processo e suas tarefas;
- Aba Iniciar: Permite visualizar e executar instâncias do processo.
Você pode clicar entre as abas para alternar rapidamente sem sair da tela, facilitando o acompanhamento de workflows em execução enquanto edita.
23. Como visualizar instâncias em tempo real no novo editor?
O novo editor oferece visualização de instâncias em tempo real:
- Acesse a aba Iniciar do processo.
- Veja visualmente onde cada instância está no fluxo.
- A visualização é atualizada automaticamente quando uma instância muda de estado.
- É exibido o tempo de execução atual e anterior de cada tarefa.
- Você pode filtrar para mostrar apenas uma instância específica e acompanhar seu fluxo.
Esta funcionalidade é útil para monitoramento em tempo real.
24. O novo editor é compatível com workflows existentes?
Sim, o novo editor é totalmente compatível com workflows existentes:
- Sem migração necessária: Não requer migração de tabelas ou alteração de dados;
- Compatibilidade bidirecional: Você pode alternar entre o editor antigo e o novo se necessário;
Embora seja possível desabilitar o novo editor se houver problemas, recomenda-se mantê-lo ativado para aproveitar as melhorias.
25. Quais funcionalidades estão planejadas para o novo editor na versão 12.4?
As seguintes funcionalidades estão planejadas para a versão 12.4:
- Desabilitar Tarefa: Opção de desabilitar temporariamente uma tarefa para testes, fazendo o fluxo pular diretamente para a próxima tarefa sem executá-la.
- Integração com ChatGPT: Assistência de inteligência artificial para expressões e workflow.
- Reinício Automático de Instâncias: Detecção e reinício automático de instâncias interrompidas por atualizações de ambiente ou reinicializações de servidor.
26. Por que não consigo publicar meu workflow no novo editor?
Se você não consegue publicar seu workflow, verifique a aba de Validação que aparece automaticamente ao tentar publicar:
- A aba mostra todos os erros e problemas encontrados.
- Clique em cada erro para navegar até o objeto problemático.
- Corrija todos os problemas listados.
- Tente publicar novamente após resolver todos os erros.
27. Como conectar rapidamente múltiplas tarefas no novo editor?
Para conectar múltiplas tarefas rapidamente:
- Selecione os objetos que deseja conectar (origem e destinos).
- Clique no botão Connect na barra de ferramentas.
- As conexões serão criadas automaticamente entre os objetos selecionados.
Esta funcionalidade economiza tempo ao criar fluxos complexos com múltiplas conexões paralelas.