Преименуване и промяна на OU/отдел на потребителя в Domino Directory с помощта на LotusScript?

Как да направя това? Опитвам 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))

person user1409217    schedule 07.11.2012    source източник


Отговори (1)


Намерих 2 връзки, които могат да помогнат.

http://xprentice.gbs.com/A55BAC/keithstric.nsf/default.xsp?documentId=23303E4527F3A89B8525793B0061CB37

и

http://www-10.lotus.com/ldd/nd85forum.nsf/dba3ca7e515d55ff85256a0700727b35/07fc34e0ad09cea0852578b0003dad49?OpenDocument

Човекът във втората връзка извърши преместване в йерархията и преименуване. Очевидно са получили същата грешка, която сте направили първоначално.

MoveUserInHierarchyRequest MoveUserInHierarchyComplete RenameNotesUser

Надявам се това да помогне.

person Vic    schedule 19.12.2012