# 라벨과 보고서

> 실행의 보고서 문서철, 라벨 문서철, 데이터베이스 행 문서철입니다. 전송 시도가 붙은 등록 기록과 산출물과 행, 대기열 선택기, PDF 열기, 보고서 다시 보내기, 인쇄와 다시 인쇄, 다시 보내기, 그리고 새 문서를 기록하는 두 가지 방법입니다.

상세는 실행에서 나온 문서를 판정한 기준과 발생 기록 사이에 **보고서**와 **라벨**이라는 두 문서철로 보관합니다. 둘 다 명령을 내는 곳이기에 앞서 증거입니다. 산출물마다 어느 대기열로 갔는지와 남아 있는 상태를 붙여 모든 전송 시도를 나열하고, 어느 쪽도 대기열에 든 문서를 "인쇄됨"이라고 부르지 않습니다. 둘은 같은 짝의 조작을 가지며, 다른 것은 매체뿐입니다. 실행에 얼어붙은 증거로 **새** 문서를 기록하는 일과, 기록된 문서를 아무것도 다시 짜지 않고 **다시 내보내는** 일입니다. 읽는 일은 이력 보기를 따르고, 각 명령은 아래에 자기 조건을 밝힙니다.

역할이 가지지 않은 권한과 지금 이 순간이 거부하는 것은 서로 다른 일이며, 문서철은 이 둘에 다르게 답합니다. 아래의 권한 가운데 하나를 가지지 않은 역할에게는 그 권한이 덮는 조작이 아예 그려지지 않습니다. 전송 줄도, 그 대기열 선택기도, 새 문서를 기록하는 묶음도 그냥 없고, 문서철 머리의 알림 띠가 그 까닭을 말합니다("라벨 조작을 쓸 수 없음", "보고서 조작을 쓸 수 없음"). 그러면서도 산출물과 풀어낸 값과 전송 시도는 모두 읽을 수 있게 남습니다. 그 역할이 보러 온 것이 바로 그것이기 때문입니다. 지금 이 순간만이 거부하는 조작은 그 자리에 흐려진 채로 남아, 무엇이 없는지를 자기 위에 적습니다.

두 문서철은 보낼 수 있는 역할에게 산출물마다 대기열 선택기를 내놓습니다. 그 문서의 종류와 시점에 대해 실행의 유닛에서 정해져 있는 대기열([프린터](process-printers))이 설치되어 있으면 그것으로 채워지고, 그렇지 않으면 "설치된 대기열을 고르십시오"가 됩니다. 설치된 대기열이 하나도 없으면 한 줄이 그렇게 말하고, 선택기와 명령은 "이 스테이션에는 설치된 Windows 프린터 대기열이 없습니다."라는 말과 함께 흐려집니다.

## 상태 {#statuses}

| 상태 | 뜻 |
| --- | --- |
| 보내지 않음 | 산출물이나 등록 기록은 있지만 시도가 한 번도 기록되지 않았습니다. |
| 대기열로 보냄 | Windows가 문서를 받았습니다. 종이가 나왔는지까지 확인해 주지는 않습니다. |
| 실패 | 대기열이 거부했으며, 오류는 그 시도 옆에 나옵니다. |
| 전송 확인 안 됨 | 시도를 기록한 뒤 대기열의 답을 기록하기 전에 앱이 멈췄습니다. 프린터가 이미 문서를 내놓았을 수 있으므로 저절로 다시 보내지 않습니다. |
| 생성 실패 | 명령을 만들어 내지 못한 라벨이며, 이유가 나오고 인쇄할 것은 없습니다. |

시도마다 그 상태, 대기열, 시간 폭("시작 → 완료", 또는 "시작 → 확실한 응답 없음"), 그리고 오류를 보여 줍니다.

## 보고서 {#report}

이 문서철은 실행에 등록된 보고서를 셉니다. 자동 인쇄를 택했거나 사본 보관을 택한 보고서 명령마다 하나씩이며, 둘 다 택하지 않은 명령에는 아무것도 없습니다. 그냥 만들어 내는 일은 내보내기이기 때문입니다. 하나도 없으면 "이 실행에는 등록된 보고서가 없습니다. 절차가 실행 안에 사본을 보관하거나 자동으로 인쇄할 때, 실행 종료 시점의 PDF가 여기에 기록됩니다"라고 적고, 그것을 만들어 내는 묶음이 그려지는 역할에게만 "아래에서는 언제든 새로 그릴 수 있습니다."를 덧붙여 끝맺습니다.

등록 기록은 하나하나가 접이 항목이며, 머리에는 그룹의 이름, 서식의 이름, 시각, 상태가 붙습니다. 안에는 발행된 파일 이름, 실행이 그것을 어떻게 쥐고 있는지("실행 안에 사본 보관 · 312.4 KB" 또는 "참조만", 다시 보내기가 무엇을 제출할지 알려 주는 설명과 함께), 산출물 식별자가 있고, 그다음에 이런 것들이 있습니다.

| 조작 | 하는 일 | 흐려질 때 | 필요한 권한 |
| --- | --- | --- | --- |
| PDF 열기(스테이션에서) 또는 PDF 내려받기(브라우저에서) | 보고서 폴더에 발행된 PDF를 시스템 뷰어로 열거나, 브라우저에서는 새 탭으로 엽니다(탭을 막는 브라우저에서는 대신 내려받습니다). 보관된 이름이 이 스테이션에 발행된 보고서를 가리키지 않는 등록 기록은, 다른 설치에서 가져온 실행이 가진 것으로, 무엇을 읽기도 전에 거부되어 "이 등록 기록은 이 스테이션에 보관된 보고서를 가리키지 않습니다. 이력에서 다시 만드십시오."라고 말합니다. 발행된 보고서의 이름이지만 그 파일이 더 이상 남아 있지 않으면 "보고서 PDF가 이 스테이션에 더 이상 보관되어 있지 않습니다. 이력에서 다시 만드십시오."라고 말합니다. | 생성이나 다시 보내기, 또는 다른 열기가 도는 중일 때. | 이력 보기 |
| 대기열 전송 시도 | 시도의 목록이며, 최근 것이 먼저 옵니다. | | |
| 보고서 다시 보내기 | 고른 대기열에 문서를 제출하고 이 등록 기록에 시도를 하나 덧붙입니다. 새 등록 기록을 만들지는 않습니다. 실행에 사본을 보관한 등록 기록은 그 사본을 바이트 그대로 제출하고, 참조만 가진 등록 기록은 지금 상태의 발행된 PDF를 제출하므로 나중에 다시 그린 것이 나갑니다. 사라진 PDF는 거부합니다("보고서 PDF가 보고서 폴더 아래에 더 이상 없습니다. 다시 보내기 전에 다시 만들어 내십시오."). | 대기열을 고르지 않았을 때, 다른 명령이 도는 중일 때, 스테이션이 읽기 전용일 때. | 이력 보기, 절차 실행 |

실행이 이미 발행한 것을 들여다보는 일은 읽기이고, 문서를 만들어 내거나 다시 보내는 일은 그렇지 않습니다. 그래서 세 가지 동작에 권한이 따로 걸립니다. 파일 줄은 이 문서철을 읽는 모든 역할에게 그려지고, 절차 실행이 없는 역할에게는 대기열 선택기와 다시 보내기가 그려지지 않으며, 이력 내보내기와 가져오기가 없는 역할에게는 새 PDF를 그려 내는 묶음이 그려지지 않습니다. 지금 이 순간이 거부하는 것은 흐려진 조작 자신이 말합니다. "보고서를 아직 여는 중입니다.", "보고서를 아직 보내는 중입니다.", "보고서를 아직 그리는 중입니다.", "런타임 정지", "이 스테이션에는 설치된 Windows 프린터 대기열이 없습니다.", "이 보고서를 보낼 프린터 대기열을 고르십시오."

목록 아래의 접이 항목 **지금 보고서 서식으로 새 PDF**가 그 짝의 나머지 반쪽입니다. **보고서** 선택기("(절차의 보고서)" 또는 라이브러리의 아무 서식)와 **보고서 생성**으로 이루어져 있으며, 실행의 PDF를 그 자신의 파일에서 다시 그려 보고서 폴더에 실행의 기본 이름으로 다시 발행합니다. 아무것도 등록하지 않고 어느 대기열에도 닿지 않습니다. 이 접이 항목 전체는 이력 내보내기와 가져오기를 가진 역할에게만 그려지고, 실행이 아직 기록 중이면 "실행이 끝나고 마지막 근거가 굳은 뒤에 보고서를 그립니다."라는 알림을 선택기와 명령 위에 얹은 채 "이 실행은 아직 기록 중이므로 굳은 스냅숏이 없습니다."에 흐려져 있습니다. 같은 그리기가 명령 줄의 PDF 생성이며, 그쪽은 결과를 열어 주기까지 합니다([실행 내보내기](histories-export#pdf)). 문서철이 열려 있는 동안 삭제된 서식은 선택기에서 빠지고, 선택기는 절차 자신의 것으로 되돌아갑니다.

## 라벨 {#labels}

이 문서철은 실행에 보관된 산출물을 최근 것부터 셉니다. 절차가 시작 시점과 완료 시점에 내보낸 라벨과, 그 뒤에 기록한 모든 라벨입니다. 뒤에 기록한 것의 이름은 어느 길로 왔는지를 말합니다. 명령 줄의 **새 라벨**로 그린 것은 `<group> · Generated from Histories`이고, **지금 템플릿으로 새 라벨**로 그린 것은 어느 그룹에도 속하지 않으므로 `Generated from Histories`뿐입니다. 이 이름은 화면이 어느 언어이든 영어로 기록됩니다. 하나도 없으면 "이 실행에는 보관된 라벨 산출물이 없습니다. 자동 액션과, 나중에 이 실행에서 낸 라벨이 모두 여기에 나타납니다."라고 적습니다.

산출물은 하나하나가 접이 항목이며, 머리에는 그룹의 이름, 템플릿의 이름, 시점(시작 또는 완료), 시각, 상태가 붙습니다. 안에는 생성 오류가 있으면 그 오류, RAW 줄(얼어붙은 바이트 수 또는 "내용 없음", 템플릿의 원본 파일, 쓰인 템플릿 판의 SHA-256, 산출물 식별자), **확정된 값**(마커마다 한 줄씩, 넣은 값과 그것이 온 신호원, 고정 라벨이면 "이 고정 명령 파일에는 마커가 없습니다."), **대기열 전송 시도**, 그리고 명령이 있는 산출물이면 전송 줄이 있습니다.

| 조작 | 하는 일 | 흐려질 때 | 필요한 권한 |
| --- | --- | --- | --- |
| 인쇄(시도가 한 번이라도 있으면 다시 인쇄) | 얼어붙은 바이트를 그대로 고른 대기열에 제출하고 시도를 하나 덧붙입니다. 마커를 다시 풀지 않고 템플릿을 읽지도 않으므로, 그동안 무엇이 바뀌었든 대기열은 이 산출물을 바이트 그대로 받습니다. | 대기열을 고르지 않았을 때, 다른 전송이 도는 중일 때, 스테이션이 읽기 전용일 때. | 이력 보기, 절차 실행 |

두 권한을 다 가지지 않은 역할에게는 전송 줄이 아예 그려지지 않고 새로 짜는 묶음도 없습니다. 그 역할은 산출물과 풀어낸 값과 시도를 읽으며, 문서철은 누를 것을 하나도 내놓지 않습니다. 지금 이 순간이 거부하는 것은 흐려진 조작 자신이 말합니다. "라벨을 아직 보내는 중입니다.", "런타임 정지", "이 스테이션에는 설치된 Windows 프린터 대기열이 없습니다.", "이 산출물을 보낼 프린터 대기열을 고르십시오."

실행에 새 라벨을 기록하는 길은 둘이며, 어느 쪽도 라벨을 보내지 않습니다. 새 산출물은 기록되는 즉시 문서철 맨 위에 나타납니다. 보내려면 그 뒤에 자기 항목에서 인쇄하십시오.

- 상세 위 명령 줄의 **새 라벨**은 실행의 절차가 구성한 라벨 가운데 하나를 그립니다. 그 라벨은 템플릿과 확인된 마커 연결을 이미 짝지어 두고 있으므로 따로 채울 양식이 없습니다. 선택기의 기본값은 "(절차의 라벨)", 곧 내보내기 순서로 첫 완료 라벨(완료 시점에 아무 라벨도 내보내지 않는 절차라면 첫 시작 라벨)이고, 절차의 모든 라벨 명령을 그룹 이름으로 나열합니다(한 그룹이 여럿을 가지면 "· 시작 시점", "· 완료 시점"을 붙입니다). 템플릿이 라이브러리를 떠난 것은 "· 템플릿 없음", 템플릿에 명령이 없는 것은 "· 명령 없음"이라고 적히며, 둘 다 목록에는 남지만 생성되지 않습니다. 명령의 종합 판정 걸러내기는 무시합니다. 여러분이 이 라벨을 요청했기 때문입니다. 절차가 사라진 실행과 가져온 실행은 라벨을 구성하지 않습니다("이 실행의 절차는 라벨을 설정하지 않았습니다."). 끝난 실행만 생성합니다.
- 산출물 아래의 접이 항목 **지금 템플릿으로 새 라벨**은 명령을 가진 라이브러리의 아무 템플릿이나 받아, 이 실행에 이미 얼어붙어 있는 증거로 모든 마커를 손수 연결합니다. 마커마다 얼어붙은 값을 미리 보기와 함께 나열하는 **신호원** 선택기("실행 식별 · 모델 이름: 항온항습 챔버", "메타데이터 · 일련번호: A12", "판정 기준 · 오버슈트 · 사이클 1 · 결과: 합격"), 날짜 신호원이면 형식(기록된 그대로, 스테이션 날짜, 스테이션 시각, 스테이션 날짜와 시각, ISO 8601 형식), 숫자 신호원이면 소수 자릿수("기록된 그대로", 0에서 9까지), 그리고 **연결 확인** 확인란이 있습니다. 줄 아래의 문장은 "마커 m개 가운데 n개를 직접 확인함"을 세고, **라벨 생성**은 모든 마커가 진짜 신호원으로 확인될 때까지 "먼저 모든 마커를 굳은 신호원에 맞춰 확인하십시오."에 흐려져 있습니다. 마커가 없는 템플릿은 고정 명령을 생성하고, 명령이 없는 템플릿은 거부합니다("이 템플릿에는 아직 프린터 명령이 없습니다."). 여기에서 내놓는 값은 얼어붙은 값뿐입니다. 실시간으로는 아무것도 읽지 않으며, 아직 기록 중인 실행에는 생성에 쓸 마지막 스냅숏이 없습니다("종료 스냅숏이 없음", 명령은 "이 실행은 아직 기록 중이므로 굳은 스냅숏이 없습니다."에 흐려집니다).

두 길 모두 이력 보기와 절차 실행을 요구하며, 없으면 어느 쪽도 그려지지 않습니다. 그리고 쓰기를 받아들이는 스테이션을 요구하는데, 이쪽은 흐리기만 합니다("런타임 정지"). 기록한 산출물은 고칠 수 없고, 결과는 작업 기록 줄에 남습니다("새 라벨을 기록했습니다 · 템플릿").

## 데이터베이스 행 {#database-rows}

액션이 공장 데이터베이스에 쓰는 실행([데이터베이스 행 명령](process-actions#database-row-commands))에는 다른 둘 아래에 세 번째 문서철, **데이터베이스 행**이 있습니다. 그런 행이 없는 실행에는 그려지지 않습니다. 문서철은 실행이 썼거나 쓰려고 한 행을 셉니다("행 1개", "행 `<n>`개"). 행마다 그룹 이름, 행이 간 테이블과 장치("`<device>`을(를) 거쳐 `<table>`"), 시점과 시각, 마지막 시도의 상태를 머리로 한 펼침 항목입니다. 그 안에서 **값**은 열마다 한 줄씩 명령이 나갈 때 실행이 고정한 값을 보여 주고(빈 값은 "(값 없음)"), **시도**는 모든 시도를 그 상태, 시간대, 데이터베이스의 답과 함께 보여 줍니다.

| 상태 | 뜻 |
| --- | --- |
| 행 씀 | 데이터베이스가 행을 받았습니다. |
| 행 쓰지 못함 | 데이터베이스가 거절했거나, 제때 답하지 않았거나, 닿을 수 없었습니다. 이유는 시도 옆에 드라이버의 말로 나옵니다. |
| 쓰기 불확실 | 시도를 기록한 뒤, 데이터베이스가 답하기 전에 스테이션이 멈췄습니다. 데이터베이스가 이미 그 행을 갖고 있을 수 있으므로 저절로 다시 보내는 일은 결코 없습니다. |
| 보낸 적 없음 | 행은 기록되어 있고, 시도는 한 번도 없었습니다. |

| 조작 | 하는 일 | 흐려질 때 | 필요한 권한 |
| --- | --- | --- | --- |
| 다시 보내기 | 이 실행이 고정한 값을 바꾸지 않고, 같은 테이블로, 지금 설정된 그대로의 장치를 거쳐 보내며, 이 행에 시도 하나를 더합니다. 설정에서 다시 풀어내는 것은 없습니다. 데이터베이스가 이미 받은 행은 두 번째로 추가됩니다. | 다른 행을 보내는 중일 때, 스테이션이 읽기 전용일 때. | 이력 보기, 절차 실행 |

두 권한을 모두 갖지 않은 역할은 행과 그 시도를 읽기만 하고 보내기 줄은 그려지지 않습니다. 문서철 머리는 "행을 다시 보내려면 이력 보기 권한과 절차 실행 권한이 모두 필요합니다. 행과 그 시도는 계속 검토할 수 있습니다."라고 말합니다. 보내기의 결과는 작업 피드에 나옵니다: "행을 `<table>`에 썼습니다." 또는 "행을 쓰지 못했습니다: `<reason>`".

## 문서철이 하지 않는 일 {#what-the-dossiers-do-not-do}

기록된 라벨이나 보고서를 다시 내보내려고 다시 그리는 일은 결코 없습니다. 다시 인쇄는 얼어붙은 바이트를 보내고, 다시 보내기는 등록된 문서를 보냅니다. 예전 산출물은 결코 바꾸지 않습니다. 템플릿의 시험 인쇄는 여기에서 하지 않고(그것은 [템플릿](process-labels#test-send) 아래 그 템플릿 자신의 페이지에 있습니다), 절차가 어느 대기열로 인쇄할지도 정하지 않습니다. 여기의 선택기는 산출물마다, 전송마다 따로입니다.
