updated our verify logic
This commit is contained in:
42
README.md
42
README.md
@@ -61,22 +61,6 @@ Requires FCCS to be open with export destination already configured. Automates t
|
||||
- **Defensive** -- one bad drawer won't crash the entire run
|
||||
- **Crash recovery** -- some documents (e.g. UltraTax "Diagnostics" files) crash FCCS's converter (`FileConversionEngine::convert() failed`), which aborts that drawer's export. The script detects the error dialog, screenshots and logs the crashing document, dismisses it, and records the drawer in `crashed.txt` so it's skipped on future runs instead of stalling. Handle crashed drawers manually (export them excluding the poison document); delete a line from `crashed.txt` to retry after fixing.
|
||||
|
||||
### Step 2b (optional): Verify Export Completeness
|
||||
|
||||
```
|
||||
python fccs_verify.py
|
||||
```
|
||||
|
||||
During export, each drawer's document list is captured from the FCCS dialog and saved as a manifest. This script compares those manifests against the actual exported files to flag any drawers with missing or extra files.
|
||||
|
||||
To spot-check specific drawers (e.g. ones the log marked failed, to see whether they actually finished exporting in the background), run:
|
||||
|
||||
```
|
||||
python fccs_check.py
|
||||
```
|
||||
|
||||
It prompts for one or more drawer IDs and reports, per drawer, which manifest documents are present vs missing. It accounts for FCCS page-splitting (a document exported as `Name Page 1`, `Name Page 2`, … counts as present) and for filename sanitization (titles containing characters illegal in filenames, like `:`, still match).
|
||||
|
||||
### Step 3: Reorganize Files
|
||||
|
||||
```
|
||||
@@ -105,6 +89,32 @@ output/
|
||||
|
||||
Exported filenames follow the format `{drawer_id}_{client_name}_{folder_name}_{creation_date}_{document_name}.ext`. The parser uses folder templates from `fccs_folders.txt` (with `YYYY` expanded via regex) and the creation date (`MM-DD-YYYY`) as anchors to reliably split the underscore-delimited fields. Folder names are decomposed into nested paths that match the FCCS UI structure (e.g. `2025 Tax Documents` becomes `Tax Documents/2025/`). UltraTax CS folders are matched by a built-in pattern.
|
||||
|
||||
### Step 4 (optional): Verify Export Completeness
|
||||
|
||||
During export, each drawer's document list is captured from the FCCS dialog and saved as a manifest (in `manifest_dir`). These tools compare the manifests against the files actually in the export folder to confirm nothing was missed.
|
||||
|
||||
Both compare at the **document level** and share identical matching logic. They account for:
|
||||
|
||||
- **Page-splitting** -- a multi-page document exported as `Name Page 1`, `Name Page 2`, … counts as that one document being present.
|
||||
- **Filename sanitization** -- document titles containing characters illegal in Windows filenames (e.g. `:` `/` `?`) still match the exported files.
|
||||
|
||||
Batch-check every drawer that has a manifest:
|
||||
|
||||
```
|
||||
python fccs_verify.py
|
||||
```
|
||||
|
||||
Reports each drawer as `OK` or `INCOMPLETE` (listing the missing documents), plus a summary and any exported drawers that have no manifest.
|
||||
|
||||
Spot-check specific drawers interactively (e.g. ones the log marked failed, to see whether they actually finished exporting in the background):
|
||||
|
||||
```
|
||||
python fccs_check.py
|
||||
Drawer ID(s): 08097 18430
|
||||
```
|
||||
|
||||
> Note: because page-splitting means the number of files can't be mapped one-to-one to documents, completeness is judged by document *presence* (is each manifest document represented by at least one exported file), not by exact file counts.
|
||||
|
||||
## Config Reference
|
||||
|
||||
All scripts read from `config.ini` (or specify `--config path\to\config.ini`).
|
||||
|
||||
Reference in New Issue
Block a user