digest()
Returns the digest of a document object via std.GetDocumentDigest.
By default (calculate=False) the digest stored in the database is returned.
When calculate=True, the server calculates a fresh digest from the actual
document files and returns both the stored and the calculated digest, allowing
integrity verification.
1. Signature
-
Sync
-
Async
ecm.dms.digest(
model: ECMDocumentModel | int,
object_type_id: int | None = None,
*,
calculate: bool = False,
) -> ECMDocumentDigest
await ecm.dms.digest(
model: ECMDocumentModel | int,
object_type_id: int | None = None,
*,
calculate: bool = False,
) -> ECMDocumentDigest
2. Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
|
|
— |
Either an |
|
|
|
The numeric object type ID. If |
|
|
|
When |
4. Exceptions
| Exception | Condition |
|---|---|
|
|
|
|
5. Examples
5.1. Read the stored digest
-
Sync
-
Async
doc = ecm.dms.select(InvoiceDocument).where(InvoiceDocument.Title == "Invoice").execute()[0]
result = ecm.dms.digest(doc)
print(result.table_digest)
doc = (await ecm.dms.select(InvoiceDocument).where(InvoiceDocument.Title == "Invoice").execute())[0]
result = await ecm.dms.digest(doc)
print(result.table_digest)
5.2. Verify integrity by comparing stored vs. calculated digest
-
Sync
-
Async
result = ecm.dms.digest(doc, calculate=True)
if result.table_digest == result.local_digest:
print("Integrity OK")
else:
print(f"Mismatch! stored={result.table_digest} calculated={result.local_digest}")
result = await ecm.dms.digest(doc, calculate=True)
if result.table_digest == result.local_digest:
print("Integrity OK")
else:
print(f"Mismatch! stored={result.table_digest} calculated={result.local_digest}")
6. See also
-
files() — Download the files of a document
-
get_object_type_by_id() — Resolve the type ID of an object