Creating Documents (Python)¶
Creating Documents (Python)¶
1ot = impact.gui.output_toolbox
2db = impact.active_database
3
4def DescribeDoc(doc, method):
5 if not doc.isNone():
6 ot.add("Document '" + doc.name + "' successfully created with " + method)
7 ot.add("description: " + doc.description)
8 ot.add("Checkin-Comment: " + doc.comment)
9 ot.add("Added: " + str(doc.added_date_time) + " by " + doc.added_by.login_id)
10 ot.add("version: " + doc.version.version_as_string)
11 ot.add("Size: " + str(doc.size) + " bytes")
12 else:
13 ot.add("Unable to create new document with " + method)
14
15ot.clear()
16docs = db.documents
17
18if docs.isNone():
19 ot.add("No document support in the database")
20elif db.settings.other_documents:
21 ot.add("Other document support is enabled in this database")
22 ot.add("Major and minor versions support: " + str(db.settings.document_settings.supports_major_and_minor_versions))
23 ot.add(str(docs.total_count) + " documents currently in the database")
24
25 # using deprecated Add
26 doc = None
27 try:
28 doc = docs.add(r"C:\\Documents\\ExampleDocument1.docx", "My First Document")
29 except Exception as exc:
30 pass
31 impact.gui.output_toolbox.add(f"Failed to create object via docs.add(): {exc}")
32
33 DescribeDoc(doc, "Add")
34
35 # using Add2 without values
36 doc2 = None
37 try:
38 doc2 = docs.add2(r"C:\\Documents\\ExampleDocument2.docx", None, ipDocumentVersion.dvMajor, "My Second Document")
39 except Exception as exc:
40 pass
41 impact.gui.output_toolbox.add(f"Failed to create object via docs.add2(): {exc}")
42
43 DescribeDoc(doc2, "Add2 (no values)")
44
45 # using Add2 with values
46 # first determine document type and columns for file
47 docType = db.settings.document_settings.mime_types.find_type_for_extension(r"C:\\Documents\\ExampleDocument3.docx")
48
49 ot.add("Document Type: " + docType.key)
50
51 # create some values and populate using ipDocumentKnownColumn values
52 columns = docType.columns
53 values = docType.create_column_values()
54
55 values.save(columns.known_item(ipDocumentKnownColumn.dkcName).name, "ExampleDocument3")
56 values.save(columns.known_item(ipDocumentKnownColumn.dkcDescription).name, "Some description")
57
58 # to assign a group must use the group ID
59 group = None
60 try:
61 group = db.settings.document_settings.groups.item("GroupA")
62 except Exception as exc:
63 pass
64 impact.gui.output_toolbox.add(f"Failed to create object via db.settings.document_settings.groups.item(): {exc}")
65
66 if not group.isNone():
67 values.save(columns.known_item(ipDocumentKnownColumn.dkcGroup).name, group.ID)
68 doc3 = None
69 try:
70 doc3 = docs.add2(r"C:\\Documents\\ExampleDocument3.docx", values, ipDocumentVersion.dvMinor, "My Third Document")
71 except Exception as exc:
72 pass
73 impact.gui.output_toolbox.add(f"Failed to create object via docs.add2(): {exc}")
74
75 DescribeDoc(doc3, "Add2 (with values)")
76
77 # must reload IDocuments
78 docs2 = db.documents
79 ot.add(str(docs2.total_count) + " documents currently in the database")
80
81else:
82 ot.add("No other document support in the database")