Emitir etiquetas e relatórios

O que uma execução emite no Início e na Conclusão, em que ordem, por qual fila, o que é congelado no arquivo da execução, e como toda entrega é gravada.

Ver como Markdown

Uma execução emite a papelada dela pelas ações do modelo dela: grupos nomeados de comandos, cada comando emitindo uma etiqueta ou um relatório no Início ou na Conclusão da execução, declarados em Preparação > Ações e escolhidos pelo procedimento como grupos inteiros. Os modelos de documento com que os comandos renderizam são as duas bibliotecas desta raiz: o layout de um comando de relatório vem de Relatórios, e o arquivo de um comando de etiqueta vem de Etiquetas. Esta página é o que acontece quando uma execução chega a uma fronteira.

As duas fronteiras

Numa fronteira, os comandos disparam na ordem da lista do modelo, ao longo dos grupos escolhidos, e na ordem de cada grupo dentro dele, as etiquetas antes dos relatórios. Todo comando é isolado: um modelo de documento faltando, uma composição que lança exceção ou uma fila que recusa vão para o diário, não mudam nada da execução e nunca param os comandos atrás.

Fronteira Quando O que está disponível O que é emitido
Início Assim que a execução se materializa, depois de os contadores sequenciais serem reservados e os metadados serem escritos; a execução já está gravando enquanto os documentos compõem, pelo arquivo aberto da própria execução. A identidade da execução, os metadados, o instante de partida e o estado Em execução. Todo comando de etiqueta com o gatilho Início; todo comando de relatório com o gatilho Início e um layout: uma folha de percurso em que as seções ainda sem evidência ficam de fora e a linha Receita imprime a receita planejada.
Conclusão Depois que o estado terminal e o snapshot da execução são selados e a unidade é liberada; as etiquetas primeiro, os relatórios em segundo plano logo em seguida. Tudo o que havia no Início mais o instante de término, a duração, o estado terminal, o veredito, o motivo do término e os critérios julgados. Todo comando de etiqueta e de relatório com o gatilho Conclusão cujo filtro de veredito admite o veredito da execução.

O filtro de veredito (OK, NOK, Indeterminado, Sem veredito) é lido apenas na Conclusão; no Início ainda não há veredito. Uma execução que terminou Com falha não tem snapshot terminal: as etiquetas de conclusão dela gravam um artefato falho e nenhum relatório de conclusão é publicado. Um comando de relatório cujo layout foi excluído, e um comando de relatório sem layout, não publicam nada. Reiniciar a aplicação nunca repete documentos de Início: uma execução retomada depois de um reinício carrega os artefatos que já emitiu.

Relatórios

Um comando de relatório com layout publica o PDF dele na fronteira dele, tenha pedido o que tiver pedido além disso. O arquivo é nomeado a partir do nome-base de exportação da execução mais o nome do grupo (<base> - <group>.pdf), então a folha de percurso e o relatório de encerramento de uma execução ficam lado a lado; dois grupos cujos nomes cairiam no mesmo arquivo são distinguidos pela identidade do comando. Uma renderização posterior do mesmo comando substitui o documento daquele comando e nada mais. As duas opções do comando decidem o que acontece com o documento:

Opção Efeito
Imprimir automaticamente O PDF publicado também é submetido à fila de relatórios em vigor para a unidade naquela fronteira. Uma unidade sem fila naquele slot grava a tentativa como falha ("Nenhuma fila de impressão está configurada para esta ação na Unidade.").
Guardar uma cópia dentro da execução O PDF pronto é guardado no arquivo da execução, então um reenvio posterior submete exatamente aqueles bytes, mesmo depois de o layout ser editado ou excluído, ou de o arquivo publicado ser substituído por uma renderização posterior. A execução passa então a carregar o tamanho do documento.

Um comando que pediu qualquer uma das duas registra o documento na execução (o registro que os Históricos listam sob Relatório); um comando que não pediu nenhuma das duas publica o arquivo e não registra nada, porque gerar é uma exportação do arquivo da execução e nunca uma escrita nele.

Etiquetas

Um comando de etiqueta renderiza o modelo dele com uma origem por marcador. No Início só resolvem as origens confirmadas num Início aceito: os metadados, o nome e a revisão do modelo, o nome e o código da unidade, o nome e o código do procedimento, o identificador da execução, o instante de partida e o estado da execução; um marcador mapeado para qualquer outra coisa recusa a etiqueta de Início ("O marcador '{{RESULT}}' não está disponível quando uma execução começa."). Na Conclusão o catálogo inteiro resolve, um resultado de critério pela identidade estável dele e por um ciclo explícito (um ciclo faltando nunca significa "o último").

Toda geração primeiro acrescenta um artefato imutável ao arquivo da execução: os bytes finais de comando, o nome, o arquivo de origem e o hash de conteúdo do modelo, o nome do grupo, o gatilho, os valores resolvidos com as origens deles, ou o motivo de nenhum comando ter podido ser gerado. Em seguida, os bytes vão para a fila de etiquetas em vigor para a unidade naquela fronteira, como um documento RAW chamado Ganter Lab · <group>. Uma unidade sem fila naquele slot grava uma tentativa falha ("Nenhuma fila de impressão está configurada para esta etiqueta na Unidade."); um modelo que sumiu grava "O modelo de etiqueta configurado está faltando.". Toda tentativa de entrega é acrescentada ao artefato: Enviando antes de o spooler ser chamado e, em seguida, Enviado para a fila ou Falhou; uma tentativa que a aplicação interrompeu no meio fica em Envio incerto e nunca é repetida automaticamente, porque a impressora pode já ter produzido a etiqueta. "Enviado para a fila" confirma que o Windows aceitou a carga, não que saiu papel.

Impressoras

Em qual fila um documento cai é decidido em Definição > Impressoras: o modelo declara quatro slots padrão, um por combinação do que é emitido e quando (etiqueta ou relatório, no Início ou na Conclusão), e cada unidade segue os quatro do modelo ou mantém quatro próprios. Um comando resolve o destino dele pelo tipo e pelo gatilho dele, pelo modelo numa unidade que segue e pelos slots da unidade numa desprendida, então um grupo que dois procedimentos compartilham imprime por um destino escolhido uma vez. As filas são as filas de impressão do Windows instaladas para o usuário sob o qual a estação roda; uma etiqueta sai como bytes RAW, um relatório é rasterizado e desenhado no dispositivo, então uma impressora comum de documentos serve os relatórios e uma impressora de etiquetas serve as etiquetas.

Depois

Tudo o que uma execução emitiu é lido no registro dela nos Históricos (Etiquetas e relatórios): os artefatos, os registros e toda tentativa com a situação dela. Lá o par de gestos é o mesmo para os dois meios: um documento novo a partir da evidência congelada da execução (uma etiqueta nova com um comando configurado ou com um modelo mapeado à mão, um PDF novo com qualquer layout), e a reemissão de um gravado (uma reimpressão dos bytes congelados de um artefato, um reenvio do PDF registrado), que não resolve nada de novo.

O que a emissão não faz

Ela nunca lê um valor ao vivo: uma etiqueta resolve apenas o que o arquivo da execução congelou, e um relatório renderiza apenas a partir do arquivo. Ela nunca muda uma execução: uma falha de documento deixa o veredito, o estado e o arquivo exatamente como estavam. Ela nunca confirma impressão. E ela nunca emite para uma amostra ou uma execução de avaliar agora, que não carregam procedimento nem ações.