Как да направя това? Опитвам NotesAdministrationProcess, но някои липсват примери в помощния файл. Търсенето в мрежата е трудно, тъй като тези методи рядко се документират. В момента използвам RenameNotesUser, за да преименувам потребителя, но промените се случват само когато стартирам „кажи на adminp процес нов“ на сървъра. Как да автоматизирам преименуването след изпращане на заявката за преименуване?
Също така нямам късмет със смяната на OU/Department на потребителя. Кой метод да използвам? В момента използвам RecertifyUser, но извежда грешка за идентификатора на сертификатора, който не е предшественик на нещо. Например, искам да преместя потребител от Технически отдел към Отдел Продажби (Джон/Технически/ACME към Джон/Продажби/ACME). Повторното сертифициране на Джон ръчно в Domino Administrator с помощта на идентификатора за продажби работи добре. Също така искам промяната на OU на потребителя да влезе в сила незабавно, без да казвам на Domino Console да я обработи.
Горните 2 процеса не трябва да се изпълняват едновременно, тъй като потребителят не може да промени името и OU едновременно. По-долу е тестовият код/агент, който използвам (ще коментирам кода за преименуване, ако искам да стартирам кода за повторно сертифициране и обратно):
Dim s As New NotesSession
Dim db As NotesDatabase
Dim vw As NotesView, doc As NotesDocument
Dim adminp As NotesAdministrationProcess
Dim svr$, path$, cert$, pwd$, staffid$, newlastname$
svr="" 'server1/ACME
path="" 'names.nsf
cert="" 'for rename(C:\tech.id), for recertify(C:\sales.id)
pwd="" 'for rename(tech), for recertify(sales)
staffid="" 'A0001(John's ID)
newlastname="" 'James
Set db=s.Getdatabase(svr, path, False)
Set adminp=s.Createadministrationprocess(svr)
adminp.Certifierfile=cert
adminp.Certifierpassword=pwd
Set vw=db.Getview("People\by Staff Number")
Set doc=vw.Getdocumentbykey(staffid, True)
'for rename. our company only use the last name as name
Call adminp.Renamenotesuser(doc.FullName(0), newlastname)
'for change ou
Call adminp.Recertifyuser(doc.FullName(0))