очистка групп

Тема в разделе "Lotus - Программирование", создана пользователем 1KIA, 19 апр 2011.

Статус темы:
Закрыта.
  1. 1KIA

    1KIA Гость

    Прочитала множество тем, но решения не нашла
    Групп в АК очень много, к сажалению раньше удаляли просто DEL, а теперь используется Adminp
    В нруппах много сотрудников , которых в реальности нет.
    Как можно их удалить из групп?
     
  2. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    1KIA

    ну а еталонная група в которой есть только работающие сотрудники имеется? если да тогда можно удалить мертвие души)
     
  3. 1KIA

    1KIA Гость

    Cleric-Lviv
    нет к сожалению (если я правильно поняла), но такой группы нет, т.е. группы, в которой перечислены все сотрудники и который 100% имеются в АК
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если я правильно понял, то раньше с помощью "просто DEL" удаляли пользователей и они теперь висят в группах "мертвыми душами"?
    Если так, можно написать агента, который перебирает категории представления "($ServerAccess)" и ищет соответствующего пользователя в представлении "($VIMPeople)" (учитывая, что во втором случае имена в сокращённой форме). Если имя найдено, то всё ОК, если нет — открывать все документы групп соответствующей категории и удалять оттуда "нереального" пользователя.
     
  5. 1KIA

    1KIA Гость

    nvy
    да вы верно меня поняли, именно от мертвых душ и надо избавиться
    вот на другом сайте нашла пример
    Код (Text):
    Sub Initialize
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim dt As New NotesDateTime("01/01/80")
    Dim doc As NotesDocument
    Dim item As NotesItem

    Set db = s.CurrentDatabase
    Set dc = db.Search("Form = 'Person'",dt, 0)

    For i = 1 To dc.Count
    Set doc = dc.GetNthDocument(i)
    Print "Working on... " + doc.FullName(0)
    Call doc.ComputeWithForm(False, False)

    Dim nabFullNameView As NotesView
    Dim nabServerAccessView As NotesView
    Dim nabPerson1 As NotesView

    Set nabFullNameView = db.GetView("($LDAPCN)")
    Set nabServerAccessView = db.GetView("($ServerAccess)")
    Set nabPerson1 = db.GetView("($VIMPeople)")

    Call nabFullNameView.Refresh
    Call nabServerAccessView.Refresh
    Call nabPerson1.Refresh

    Call s.Close

    Call doc.ReplaceItemValue("Status","Processed")
    Call doc.Save(True, True)

    Next

    Messagebox "Agent is finished running.", 0, "Lotus Notes"

    End Sub
    только в примере присваивают статус, а мне необходимо удалять....
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    отрубать руки
    это ваще перлы... в цикле!
    так никаких процов не напасёшся, на таких "писателей"
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    я всё понимаю..., но прошёл год! с момента регистрации и куча постов на форуме, а до сих пор - странные вопросы и код...
     
  8. 1KIA

    1KIA Гость

    спасибо, за помощь
    Удалила все не нужное. Сделала сравнение и переместила ФИО "мертвых" в файл и потом самостоятельно уже (вручную) правила, т.к. не всех необходимо было удалять, некоторым просто необходимы были правки их ФИО
     
  9. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Чтобы на будущее всё автоматом чистило/переименовывало можно в адресных книгах: ACL -> Advanced -> "Action" для админсервера поставить значение "Modify all Names fields".
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей