def update_person(doc): logdb = open_database('PyLN', 'dblog.nsf') l = log.notes_log(logdb, "Python log", log.LogLevel.INFO) unid = doc.get_item_value0("unid") l.info(f"Актуализация для справочника {unid}") db = doc.parent_database col = extended_collection.ExtendedCollection() if doc.get_item_value0("Form") == "Language": view = db.get_view("srchPersonsByLanguage") field_name = "Languages" field_unid_name = "LanguagesUNID" new_value = doc.get_item_value0("Name") elif doc.get_item_value0("Form") == "Level": view = db.get_view("srchPersonsByLevel") field_name = "Level" field_unid_name = "LevelUNID" new_value = doc.get_item_value0("Level") else: return for person_doc in view.get_all_documents_by_key(unid): field_value = [] for field_v, field_unid in person_doc.get_values_t( field_name, field_unid_name): if field_unid == unid: field_value.append(new_value) else: field_value.append(field_v) if field_value != person_doc.get_item_value(field_name): person_doc.replace_item_value(field_name, field_value) col.append(person_doc) col.save() l.info(f"Изменено {col.count} документов")
from notescompy import init_session, open_database from notescompy.acl import UserType, ACLRights, ACLLevel s = init_session("python") db = open_database('PyLN', 'itcrowd.nsf') acl = db.acl print(acl.roles) acl.AddRole("TEST") acl.Save() for entry in acl: print(entry) entry = acl.create_acl_entry("Test") entry.user_type = UserType.PERSON entry.level = ACLLevel.EDITOR rights = ACLRights() rights.can_replicate_or_copy_documents = True rights.can_delete_documents = True entry.rights = rights acl.save() entry = acl.CreateACLEntry("Devs") entry.user_type = UserType.PERSON_GROUP entry.level = ACLLevel.DESIGNER entry.roles = acl.roles entry.rights = ACLRights(can_create_ls_or_java_agent=True, can_replicate_or_copy_documents=True) acl.save()
from notescompy import init_session, open_database, log s = init_session("python") logdb = open_database('PyLN', 'dblog.nsf') l = log.notes_log(logdb, "Python log", log.LogLevel.DEBUG) # l = log.FileLog("log.log", "Python log", log.LogLevel.INFO) l.debug("Start") l.info("Something important") l.error("Scary error") try: logdb.acl.delete_role("ROLE") except Exception as e: l.error(f"Cant delete role: {e}", 5001) l.info("Done") l.debug("End")
for person_doc in view.get_all_documents_by_key(unid): field_value = [] for field_v, field_unid in person_doc.get_values_t( field_name, field_unid_name): if field_unid == unid: field_value.append(new_value) else: field_value.append(field_v) if field_value != person_doc.get_item_value(field_name): person_doc.replace_item_value(field_name, field_value) col.append(person_doc) col.save() l.info(f"Изменено {col.count} документов") s = init_current_session() unid = s.notes_property.GetEnvironmentString("LN_UNID") path = s.notes_property.GetEnvironmentString("LN_FILEPATH") server = s.notes_property.GetEnvironmentString("LN_SERVER") db = open_database(server, path) doc = db.get_document_by_unid(unid) update_person(doc) input("Готово")