Creating User Documents (Python)

Creating User Documents (Python)
 1ot = impact.gui.output_toolbox
 2db = impact.active_database
 3
 4ot.clear()
 5userLoginName = "FRED"
 6user = None
 7try:
 8    user = db.users.item(userLoginName)
 9except Exception as exc:
10    impact.gui.output_toolbox.add(f"Failed to create object via db.users.item(): {exc}")
11
12if not user.isNone():
13    docs = user.documents
14
15    if docs.isNone():
16        ot.add("No user document support in the database")
17    else:
18        ot.add("User document support is enabled in this database")
19
20        ot.add(str(docs.count) + " user documents currently in the database")
21        doc = None
22        try:
23            doc = docs.add(r"C:\\Documents\\ExampleDocument1.docx", "My First User Document")
24        except Exception as exc:
25            pass
26        impact.gui.output_toolbox.add(f"Failed to create object via docs.add(): {exc}")
27
28        if not doc.isNone():
29            ot.add("Document '" + doc.name + "' successfully created")
30
31            ot.add("ID: " + doc.ID)
32            ot.add("Added: " + str(doc.added_date_time) + " by " + doc.added_by.login_id)
33            ot.add("version: " + doc.version.version_as_string)
34            ot.add("Size: " + str(doc.size) + " bytes")
35            relationships = doc.relationships
36
37            ot.add("Relationships: " + str(relationships.count))
38
39            for relationship in relationships:
40                ot.add("  Document: " + relationship.document.ID)
41                ot.add("  Relationship: " + str(relationship.relationship_as_string))
42                ot.add("  Key: " + str(relationship.object_id))
43                ot.add("  impact.creator: " + relationship.created_by.login_id)
44                ot.add("  Created: " + str(relationship.created_date_time))
45        else:
46            ot.add("Unable to create new document")
47
48        # must reload IDocuments
49        docs = user.documents
50        ot.add(str(docs.count) + " user documents currently in the database")
51else:
52    ot.add("Unable to locate user " + userLoginName)