Удаление записей

Тема в разделе "Lotus - Программирование", создана пользователем pokerkmx, 12 апр 2016.

  1. pokerkmx

    pokerkmx Member

    Регистрация:
    1 апр 2016
    Сообщения:
    7
    Симпатии:
    0
    Хочу удалить ненужные записи из карточек пользователя. После выполнения проверяю - свойство count полей MajVer, MinVer, QMRVer, QMUVer, HotVer, FixPVer, FlagsVer, ClntDgst остаётся прежним. В чём может быть причина? Спасибо.

    Код (Java):
    import java.util.Date;
    import java.util.Vector;
    import lotus.domino.*;
     
    public class JavaAgent extends AgentBase{
    private String[] fields={"ClntBld","ClntDate","ClntDgst","ClntMachine","ClntPltfrm","FixPVer","FlagsVer","HotVer","MajVer","MinVer","QMRVer","QMUVer"};
     
        public void NotesMain(){
         try
         {
         Session session = getSession();
         Database db=session.getDatabase("nameserver", "names.nsf");
         DocumentCollection dc=db.search("Type=\"Person\" & LocalAdmin=\""+session.getUserName()+"\"");
         Document tmpdoc;
         Document doc = dc.getFirstDocument();
         while (doc != null)
         {
         if (doc.getItemValue("ClntMachine").size()>1) WorkWithDocument(doc);
                 tmpdoc = dc.getNextDocument();
                 doc.recycle();
                 doc = tmpdoc;
         }
         session.recycle();
         }
         catch(Exception e){e.printStackTrace();}
        }
       
        private void WorkWithDocument(Document doc) throws NotesException
        {
         Vector times = doc.getItemValueDateTimeArray("ClntDate");
         Date max = getJavaDate(times.elementAt(0));
         int max_ind=0;
         for (int j=1; j<times.size(); j++)
         {
         Date time=getJavaDate(times.elementAt(j));
         if (time.compareTo(max)>0) {max=time;max_ind=j;}
         }
         for (int i=0;i<fields.length;i++)
         doc.replaceItemValue(fields[i], doc.getItemValue(fields[i]).elementAt(max_ind));
         doc.save();
        }
       
        private Date getJavaDate(Object o) throws NotesException{return ((DateTime)o).toJavaDate();}
    }
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    а где тут удаление полей?
    Я тут вижу только замену всех элементов поля на значение последнего элемента этого же поля.

    Ну и просто интересно... а что это за цикл?
    Код (Java):
    for (int j=1; j<times.size(); j++)
    {
    Date time=getJavaDate(times.elementAt(j));
    if (time.compareTo(max)>0) {max=time;max_ind=j;}
    }
     
    #2 NickProstoNick, 12 апр 2016
    Последнее редактирование модератором: 12 апр 2016
  3. pokerkmx

    pokerkmx Member

    Регистрация:
    1 апр 2016
    Сообщения:
    7
    Симпатии:
    0
    Хочу оставить в карточке пользователя только информацию о последнем ПК. Нахожу позднюю дату, в остальных полях оставляю значения с этим же индексом, остальное удаляю.
     
  4. pokerkmx

    pokerkmx Member

    Регистрация:
    1 апр 2016
    Сообщения:
    7
    Симпатии:
    0
    На локальной копии работает, на сервере - нет.
     
  5. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    изменяй через временную переменную.
    На сервере в консоли ошибки есть?
     
  6. pokerkmx

    pokerkmx Member

    Регистрация:
    1 апр 2016
    Сообщения:
    7
    Симпатии:
    0
    Ошибок нет.
     
  7. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а что подвигло итератор через индекс писать? индекс имен полей же вам не нужн
     
  8. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    да и похорошему - надоб все в логер маньячить, а не в консоль, напрямую
    а уж логер потом настраивать
     
    #8 lmike, 12 апр 2016
    Последнее редактирование модератором: 12 апр 2016
    2 пользователям это понравилось.
  9. pokerkmx

    pokerkmx Member

    Регистрация:
    1 апр 2016
    Сообщения:
    7
    Симпатии:
    0
    Имеете в виду, что можно через foreach написать?
     
  10. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
Загрузка...

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