본문으로 건너뛰기

알려진 문제 목록 — 고칠 수 없는 자리를 적어 두고 넘어가기

문서 목록으로

상태:

검증이 잡은 것 중 지금 고칠 수 없는 것을 recipe에 적어 두고 변환을 계속하는 장치입니다. 고쳐야 할 것이 없어진다는 뜻이 아니고, 어디에 무엇이 남아 있는지가 recipe에 남습니다.


1. 무엇을 위한 것인가

변환이 검증에서 멈추는 이유가 두 가지입니다.

무엇누가 고칩니까
도구가 못 읽는 형태우리입니다. 고칩니다
시트의 데이터 문제데이터를 가진 쪽입니다. 우리가 고칠 수 없습니다

뒤쪽이 하나라도 있으면 그 워크북 전체가 변환되지 않습니다. 그 상태로는 나머지 543개 테이블에 대해 아무것도 확인할 수 없습니다 — 산출물이 없으므로 익스포터도 생성기도 그 규모를 한 번도 지나지 않습니다.

그래서 「이 자리는 알고 있다」를 적을 수 있어야 합니다. 두 가지를 함께 지키면서입니다.

지켜야 하는 것어떻게
적어 둔 것이 잊히지 않기보고가 사라지지 않고 Info로 남습니다. 이유와 함께 매 실행에 출력됩니다
적어 둔 자리에 새 문제가 생기면 알기건수를 적을 수 있고, 실제 건수가 다르면 에러입니다
목록이 낡지 않기아무것도 맞추지 못한 항목은 에러입니다 — 문제가 해결되었거나 항목이 틀린 것입니다

2. 표기

Validation 아래입니다.

"Validation": {
"KnownProblems": [
{
"At": "<워크북>.xlsb : AutoMatePassive_BCCN",
"Count": 6,
"Reason": "레코드 원소가 있는데 required 멤버가 빔. 시트 오류 보고 §16"
},
{
"At": "<워크북>.xlsb : RewardFixed : I25178",
"Reason": "required인데 값이 없음"
}
]
}
무엇
At자리. 파일 · 파일 : 시트 · 파일 : 시트 : 셀 셋 중 하나입니다. 파일은 경로의 끝부분만 적어도 됩니다
Count이 항목이 설명하는 보고 건수. 적으면 그 수와 정확히 같아야 합니다. 생략하면 「하나 이상」입니다
Reason필수. 왜 지금 고치지 않는지. 보고에 함께 출력됩니다

Reason이 필수인 것이 이 장치의 절반입니다. 이유 없이 지나갈 수 있으면 목록은 무엇이든 지나가게 하는 스위치가 되고, 그런 스위치는 한 번 켜지면 아무도 다시 보지 않습니다.

3. 무엇을 하지 않는가

에러를 지우지 않습니다. ErrorInfo로 내려가고, 실행마다 이유와 함께 출력됩니다. 「무시」라는 말이 맞지 않는 것이 이것 때문입니다 — 보고는 그대로 있고 실행을 멈추지 않을 뿐입니다.

경고로 내리지 않는 이유TreatWarningsAsErrors입니다. 그것을 켠 CI에서 알려진 문제가 다시 실행을 멈추면 이 장치가 하려던 일이 없어집니다. 그리고 매 실행에 뜨는 경고는 경고를 읽지 않는 습관을 만듭니다.

검사 종류로 적지 않습니다. 「이 테이블의 참조 검사를 끄기」가 아니라 「이 자리의 보고 6건」입니다. 검사를 끄면 그 검사가 그 테이블에서 영구히 돌지 않고, 그것은 목록이 아니라 설정 변경입니다.

Count를 강제하지 않습니다. 셀 하나를 가리키는 항목에 1을 적는 것은 같은 말의 반복이고, 넓은 자리를 가리키는 항목에는 적는 편이 낫습니다. 어느 쪽인지는 적는 사람이 압니다.

4. 자리를 맞추는 규칙

보고는 셀의 위치를 들고 있고, 항목은 그 위치의 앞부분을 적습니다.

At맞추는 것
<워크북>.xlsb그 파일의 모든 보고
<워크북>.xlsb : CombatStatus그 시트의 모든 보고
<워크북>.xlsb : CombatStatus : AC1그 셀의 보고

파일은 경로의 끝부분 일치입니다. recipe가 폴더를 읽으므로 항목마다 전체 경로를 적게 하면 같은 목록이 기계마다 달라집니다.

위치가 없는 보고 — 파일이 아니라 실행에 대한 것 — 는 어떤 항목과도 맞지 않습니다. 그런 보고는 데이터의 문제가 아니라 recipe의 문제이고, 넘어갈 자리가 아닙니다.

5. 무엇이 에러가 되는가

무엇
Reason이 빔이유 없는 항목은 스위치입니다
At이 빔자리 없는 항목은 전부입니다
아무 보고도 맞추지 못함해결되었거나 항목이 틀렸습니다. 둘 다 목록에서 지울 이유입니다
Count와 실제 건수가 다름적어 둔 자리에 새 문제가 생겼거나 일부가 해결되었습니다

둘 다 빈 항목은 항목이 아닙니다. --new-recipe가 쓰는 스켈레톤은 모든 목록에 빈 항목을 하나씩 넣어 형태를 보여주고, 그 스켈레톤은 그대로 돌아가야 합니다. 아무것도 적히지 않은 항목이 그 자리이고, 한쪽만 적힌 것은 실수이므로 위의 규칙대로 에러입니다.

마지막 줄이 「시트 하나를 통째로 적어도 되는가」를 정합니다. 됩니다 — Count를 적으면 그 시트에 7번째 문제가 생기는 순간 실행이 멈춥니다.

6. 게이트

게이트확인하는 것
내려가는지에러 하나를 적어 두면 변환이 통과하고, 보고는 Info로 남는지
이유가 출력되는지Reason이 그 보고에 붙는지
건수가 늘면Count를 적은 자리에 하나가 더 생기면 에러인지
건수가 줄면같은 자리의 문제가 해결되면 에러인지 — 목록을 지우게 하는 쪽
맞추지 못하면아무것도 맞추지 못한 항목이 에러인지
Reason 없이거부되는지
셀·시트·파일세 가지 자리 표기가 각각 맞는지
위치 없는 보고어떤 항목에도 맞지 않는지
빈 항목스켈레톤의 자리표시자가 그대로 돌아가는지