# Process

> O workspace onde um modelo de procedimento é definido uma vez, realizado em unidades e executado como ensaio gravado e avaliado: a coluna Espaço de trabalho, os quatro grupos de um modelo, a barra de comandos, a escada de permissões e as duas travas.

**Process** é a página do trilho onde um ensaio ou uma etapa de fabricação é construída e depois executada. Você define um **modelo** uma vez (o que ele mede, o que uma execução carimba, o que move uma estação sozinho, o que ela produz, onde ela imprime), o realiza em **unidades** (as estações físicas, cada uma ligada às suas próprias origens), compõe **procedimentos** a partir das bibliotecas do modelo e os inicia numa unidade. Toda execução grava no seu próprio arquivo autocontido, então uma execução gravada sobrevive a qualquer mudança posterior na configuração que a produziu. O mesmo vocabulário cobre um ensaio de qualidade e uma etapa de produção: qualquer coisa temporizada que aplique setpoints, grave canais e julgue o resultado.

O cabeçalho da página diz "Process: defina modelos de procedimento, concretize-os em unidades e execute ensaios gravados e avaliados." Ela abre para qualquer identidade que tenha uma das quatro permissões do Process (Ver modelos, Executar procedimentos, Editar receitas e avaliações, Gerenciar o Process) ou Ver históricos.

## Nesta área {#in-this-area}

| Página ou grupo | O que ela cobre |
| --- | --- |
| [Modelos e pastas](process-models) | A raiz Modelos, a página do próprio modelo, Copiar modelo, Excluir modelo, e as pastas em que você arquiva modelos, relatórios e etiquetas. |
| [Unidades](process-units) | A tabela de unidades na página do modelo, acrescentar e remover uma unidade, a unidade escolhida em todas as telas de Definição, a unidade sob Operação, Iniciar tudo e Parar tudo. |
| [Definição](process-definition) | Canais, Metadados, Automação, Produtividade e Impressoras: a estrutura do processo, mudada apenas quando o processo em si muda. |
| [Visualização](process-visualization) | Dashboards e Painéis: como o modelo se mostra, definido uma vez e desenhado para toda unidade. |
| [Preparação](process-setup) | Ocorrências, Apelidos, Datalogs, Receitas, Avaliações, Ações e Procedimentos: o que muda quando o produto na bancada muda. |
| [Operação](process-operate) | Um nó por unidade, guardando os painéis e dashboards pelos quais uma execução é preparada, iniciada e acompanhada. |
| [Modelos de documento](process-templates) | As duas bibliotecas da estação inteira, Relatórios e Etiquetas, compartilhadas por todo modelo. |
| [Históricos](histories) | O navegador de execuções gravadas, uma raiz desta mesma árvore. |

## A página {#the-page}

O Process é uma página de mestre e detalhe: a coluna **Espaço de trabalho** à esquerda e, à direita, o painel de detalhe do que quer que a coluna tenha selecionado, sob uma barra de comandos que carrega os verbos daquela seleção. Os painéis salvam sozinhos: um interruptor aplica quando é virado, um campo quando você o deixa, e uma escrita recusada devolve o campo e diz por quê no feed de ações, no pé da janela.

A página responde em dois endereços. `/process` abre na primeira raiz que o seu papel pode ver. `/histories` é um atalho para a raiz Históricos, então um favorito para as execuções continua caindo nelas. Um endereço que carrega `?focus=<id>&screen=channels`, `automation`, `action`, `view` ou `screen` abre o workspace naquela superfície: a página [Validação](validation) escreve os dois primeiros (a tela de Canais ou de Automação do modelo, com a linha da unidade problemática já escolhida), e a página [View](home) escreve os dois últimos. Um id que o seu papel não pode ver, ou um nome de tela que a página não desenha, abre a página do jeito comum.

Quando um papel não tem raiz nenhuma, o painel diz: "Nenhum ramo deste workspace está aberto para este operador: modelos e modelos de documento são configurados no nível Gerenciar, e as execuções gravadas precisam da permissão própria delas. Os procedimentos são iniciados pela tela de Operação de uma unidade ou por um dashboard."

## A coluna Espaço de trabalho {#the-workspace-column}

Uma árvore com três raízes:

| Raiz | O que ela guarda |
| --- | --- |
| **Modelos** | Todo modelo da estação, listado por nome, cada um com os seus quatro grupos. Modelos podem ser arquivados em pastas suas; uma pasta é só navegação e nunca entra num endereço. |
| **Modelos de documento** | As duas bibliotecas da estação inteira: **Relatórios** (layouts de PDF) e **Etiquetas** (arquivos de comando de impressora). As duas aceitam pastas do mesmo jeito. |
| **Históricos** | O navegador de execuções gravadas. Ele é uma folha: selecioná-lo abre a lista de execuções no painel de detalhe. |

Toda linha nasce fechada; você abre o ramo pelo qual veio, e o que você abre continua aberto entre gravações. Um grupo que lista linhas carrega uma marca de contagem, `(3)`, ou a palavra `Vazio` quando não guarda nada, para que uma estação recém-instalada distinga "nada aqui" de "ainda não carregado". As cinco linhas de Definição e as três linhas de agrupamento (Definição, Visualização, Preparação) não carregam marca: elas editam no painel, ou apenas agrupam outras linhas. A Operação conta as suas unidades. Raízes, modelos e pastas são desenhados em negrito.

O rodapé carrega **Novo…**, **Expandir tudo** e **Recolher tudo**. Novo… é desenhado apenas para Gerenciar o Process, e fica cinza com o motivo na dica enquanto a estação está travada. Ele abre um menu só: **Novo modelo**, **Novo relatório**, **Nova etiqueta**, e um submenu **Nova pasta** cujas três entradas (**Modelos**, **Relatórios**, **Etiquetas**) abrem uma pasta vazia naquela raiz, com o campo de nome já aberto para digitar. Cada entrada cria na raiz da sua categoria; criar dentro de uma pasta é um gesto sobre a pasta (a barra dela, ou o menu de clique direito dela).

## Os quatro grupos de um modelo {#a-models-four-groups}

Selecionar um modelo abre a página dele: a identidade, a tabela de unidades e blocos sobre os seus grupos (veja [Modelos e pastas](process-models)). Sob ele ficam quatro grupos, ordenados por quanto cada um costuma mudar:

| Grupo | Linhas | O que a página do grupo diz |
| --- | --- | --- |
| **Definição** | Canais, Metadados, Automação, Produtividade, Impressoras | "A estrutura deste processo: as estações em que ele roda, o que ele mede, o que uma execução carimba, o que move uma estação sozinha, o que ela produz e onde ela imprime. Muda quando o processo muda." |
| **Visualização** | Dashboards (n), Painéis (n) | "Como este processo se mostra: os dashboards de operador definidos nele, e as superfícies pelas quais as unidades dele são operadas. Uma definição de cada uma serve a todas as unidades do modelo." |
| **Preparação** | Ocorrências, Apelidos, Datalogs, Receitas, Avaliações, Ações, Procedimentos | "O que muda quando o produto na bancada muda: o que é observado, os nomes sob os quais os canais são lidos, o que é registrado, os setpoints que uma execução aplica, o que a julga e os procedimentos que juntam tudo isso." |
| **Operação** | Um nó por unidade, cada um guardando um nó por painel e um por dashboard do modelo | "As estações em que este modelo roda. Abra uma para preparar um procedimento, iniciá-lo e acompanhar uma execução registrada e avaliada." |

As três páginas de agrupamento são paredes de blocos que saltam para uma linha: um bloco que representa uma lista mostra a contagem dela, e Automação, Produtividade e Impressoras mostram o nome delas. A Operação lista as unidades com a situação ao vivo delas. Nenhuma das quatro carrega barra de comandos própria.

## A escada de permissões {#the-ladder-of-permissions}

O acesso ao Process são quatro permissões de usuário local, concedidas por papel na página [Usuários](users), cada uma incluindo as de baixo (veja [Permissões](users-permissions)):

| Nível | O que ele admite | O que a árvore mostra |
| --- | --- | --- |
| **Ver modelos** | Ler todo modelo, unidade, definição, superfície de preparação e modelo de documento, sem executar nem mudar nada. | Modelos e Modelos de documento inteiros; todo painel mantido somente para leitura e nenhum verbo desenhado. |
| **Executar procedimentos** | Preparar e iniciar procedimentos nas superfícies de uma unidade; Pausar, Retomar, Parar e Abortar; comentários; os comandos únicos; Iniciar tudo e Parar tudo; Rearmar. | O mesmo de Ver. |
| **Editar receitas e avaliações** | Tudo o que está sob Preparação: criar, editar e remover ocorrências, conjuntos de apelidos, datalogs, receitas, avaliações, ações e procedimentos. | Cada modelo reduzido ao seu ramo de Preparação, nas pastas em que foi arquivado; Modelos de documento fora. |
| **Gerenciar o Process** | Tudo: modelos, unidades, as cinco telas de Definição, a Visualização, as pastas, as bibliotecas de Relatórios e de Etiquetas, e toda renomeação. | Tudo. |

Mais dois bits alcançam esta página. **Ver históricos** admite a raiz Históricos (e, para uma identidade que não tem mais nada, a própria página). **Editar dashboards** é o que o verbo Editar o dashboard, no dashboard de um modelo, pede.

A página distingue duas recusas do mesmo jeito que toda barra de comandos da aplicação. O que o papel nunca vai permitir não é desenhado de jeito nenhum. O que é recusado agora continua desenhado e cinza, com o motivo na dica. Uma linha de menu que um papel não pode usar diz "Gerenciar este espaço de trabalho exige a permissão “Gerenciar o Process”."; uma renomeação tentada sem o bit responde "Renomear identidades de endereço do Process precisa da permissão Gerenciar o Process."

## A barra de comandos {#the-command-bar}

A barra fica onde quer que a seleção tenha um verbo: o que a faz crescer, copiar, editar ou iniciar à esquerda; o que a encerra à direita, na tinta de perigo. Ela some onde a seleção não tem nenhum dos dois.

| Nó selecionado | Verbos da frente | Verbo que encerra | Exige |
| --- | --- | --- | --- |
| Raiz Modelos | **Modelo** | | Gerenciar o Process |
| Uma pasta (sob Modelos, Relatórios ou Etiquetas) | **Modelo** / **Relatório** / **Etiqueta** (criados dentro da pasta), **Pasta** (uma subpasta), **Renomear a pasta** | **Remover a pasta** | Gerenciar o Process |
| Um modelo | **Copiar modelo** | **Excluir modelo** | Gerenciar o Process |
| Relatórios | **Relatório** | | Gerenciar o Process |
| Um relatório | **Imprimir amostra** (veja [Modelos de documento](process-templates)) | **Excluir relatório** | Gerenciar o Process |
| Etiquetas | **Etiqueta** | | Gerenciar o Process |
| Uma etiqueta | | **Excluir etiqueta** | Gerenciar o Process |
| Dashboards | **Dashboard** | | Gerenciar o Process |
| Um dashboard | **Editar o dashboard**, **Mostrar em View** (um interruptor) | **Remover dashboard** | Gerenciar o Process; Editar dashboards para o editor |
| Painéis | **Painel** | | Gerenciar o Process |
| Um painel | **Mostrar em View** (um interruptor) | **Remover painel** | Gerenciar o Process |
| Ocorrências, Apelidos, Datalogs, Receitas, Avaliações, Ações, Procedimentos | **Ocorrência**, **Conjunto de apelidos**, **Datalog**, **Receita**, **Avaliação**, **Ação**, **Procedimento** | | Editar receitas e avaliações |
| Uma ocorrência, um conjunto de apelidos, um datalog, uma receita, uma avaliação ou um procedimento | | **Remover ocorrência** … **Remover procedimento** | Editar receitas e avaliações |
| Uma ação | **Comando** | **Remover ação** | Editar receitas e avaliações |
| Operação | **Iniciar todas**, **Parar todas** | | Executar procedimentos |
| Um dashboard em edição | **Concluir a edição** (na faixa do próprio editor) | | |

Todo verbo que cria faz a sua linha sob um nome provisório ("Novo modelo 1", "Relatório 2", "Procedimento 3", "Canal 4"). Nenhum deles abre o que criou: a tela vai para a página que lista a linha nova (pela barra dessa própria página ela fica onde está), a árvore seleciona essa página e a expande, e a linha nova fica destacada ali e rolada até ficar à vista. Onde a página é uma parede de cartões (a raiz Modelos, Relatórios, Etiquetas, as pastas deles e cada grupo de um modelo que lista cartões), o cartão novo é o destacado; onde é uma tabela com o painel da linha escolhida ao lado (as unidades de um modelo, as ações, os comandos de uma ação, os canais, os campos de metadados), a tabela escolhe a linha nova, que é a marca dela. O cartão, ou a linha na árvore, abre o item, e nomeá-lo é a primeira coisa que você faz ali. Todo verbo que encerra confirma antes, no diálogo único que toda exclusão de configuração usa ("Excluir 'X'? … Isso não pode ser desfeito."); Não, Esc ou um clique fora recusam. Remover a pasta é a exceção que não exclui nada: a confirmação dela conta as linhas que voltam para a raiz.

Nenhuma barra fica nas três páginas de agrupamento, nas cinco linhas de Definição (os verbos delas ficam nos cabeçalhos de área da própria tela), nas raízes Modelos de documento e Históricos, numa unidade sob Operação, ou na tabela de unidades da página do modelo (os verbos dela ficam no cabeçalho daquele cartão).

Todo verbo desta barra fica cinza, com o motivo na dica, enquanto a estação está travada (abaixo). Um verbo que o papel não tem não é desenhado.

## Clique direito {#right-click}

Clicar com o botão direito numa linha a seleciona e abre os mesmos verbos como menu. Ele acrescenta os gestos que pertencem a uma linha e não à barra: **Adicionar unidade** num modelo (a tela vai para a página do modelo, onde a unidade é escolhida na tabela dela), **Mover para** num modelo, num relatório ou numa etiqueta (uma pasta nova, uma subpasta nova quando a linha já está numa pasta de primeiro nível, a raiz da categoria, ou qualquer pasta que exista), **Adicionar canal** em Canais e **Adicionar campo** em Metadados (a tela vai para a página dessa linha, onde a linha nova é escolhida) e **Adicionar comando** numa ação (a tela vai para a página da ação, onde o comando é escolhido). O menu não abre enquanto a estação está travada, nem numa linha que o papel não pode mudar.

## A trava de engenharia {#the-engineering-lock}

Enquanto qualquer unidade de qualquer modelo está ocupada por uma operação de execução (preparando, gravando, pausada, salvando, finalizando), a configuração da estação inteira fica somente para leitura. Um aviso no topo da página diz "Engenharia travada: uma operação de Unidade está ativa. A configuração continua somente para leitura até toda Unidade terminar; os controles de execução e as demais ações do operador continuam disponíveis." Todo painel do Process é mantido inerte, todo verbo de barra fica cinza com "A configuração está travada enquanto uma Unidade está em execução.", e um editor de dashboard aberto se fecha. O Connector, a Logic e os dashboards são travados pela mesma fronteira. As superfícies de unidade sob Operação, os comandos de execução delas, a página View e os Históricos continuam disponíveis o tempo todo.

## O runtime parado {#the-stopped-runtime}

Enquanto o runtime da estação está parado, toda mudança do Process (configuração, preparação, comandos de ciclo de vida, comentários, exclusão de execução) é recusada como "Runtime parado"; Iniciar tudo e Parar tudo ficam cinzas com isso. A leitura, os Históricos, as exportações e os relatórios continuam disponíveis.

## Agentes {#agents}

O endpoint de [Acesso de agente](agent) em loopback alcança os mesmos modelos e as mesmas execuções: as ferramentas de leitura `process_models`, `process_runs`, `process_run` e `unit_status` fazem parte do grupo de leitura, e as ferramentas de operação (`process_start`, `process_stop`, `process_hold`, `process_resume`, `process_abort`, `process_snapshot`, `process_evaluate`, `process_recipe_apply`, `process_comment`, `process_report`, `process_run_delete`) ficam atrás do consentimento próprio delas na página Agente. As escritas delas vão para o diário como Agente. Enquanto o runtime está parado, só as ferramentas de leitura e a `process_report` respondem.

## O que esta página não faz {#what-this-page-does-not-do}

- Ela não inicia execução nenhuma pela árvore: um procedimento é preparado e iniciado no painel de uma unidade sob Operação, num dashboard, por um ponto de comando vinculado, ou por um CLP através da Automação.
- Ela não reordena modelos, pastas nem as linhas de um grupo: modelos, procedimentos e bibliotecas são listados por nome, as ações na ordem delas, e as unidades na ordem em que foram acrescentadas.
- Ela não renomeia pela árvore: um modelo, uma unidade, um canal ou um campo de metadados é renomeado no painel dele, pela renomeação segura que reescreve as referências.
- Nada é desfeito: toda exclusão confirma antes, e uma execução gravada nunca é tocada por uma exclusão neste workspace.
