forum.bitel.ru
http://forum.bitel.ru/

ProcessTypeDAO
http://forum.bitel.ru/viewtopic.php?f=51&t=9886
Страница 1 из 1

Автор:  Dog [ 30 окт 2014, 04:26 ]
Заголовок сообщения:  ProcessTypeDAO

пытаюсь сделать парсер из старой CRM в Новую:

Код:
conbgcrm = Setup.getSetup().getDBConnectionFromPool();
      ProcessTypeDAO ptDAO = new ProcessTypeDAO(conbgcrm);
      
      DBConnector bd = new DBConnector("user", "password", "ipi", "ip", "port");
      try {
         con = bd.getConnection();
         String dbRequest = "SELECT * "
                   + "FROM divisions_topic "
                   + "ORDER BY parent_id ASC";
         PreparedStatement preparedStatement = con.prepareStatement(dbRequest );
         ResultSet resultSet = preparedStatement.executeQuery();
         while (resultSet.next()){
            ProcessType processType = new ProcessType();
            int parent_id = resultSet.getInt("parent_id");
            System.out.println("ipiParentId: " + parent_id);
            if (parent_id == 0){         
               processType.setParentId(31);
               processType.setArchive(false);
               processType.setUseParentProperties(true);
               String title = resultSet.getString("title");
               processType.setTitle(title);
               ptDAO.updateProcessType(processType, 2);
               conbgcrm.commit();
            }else{
               processType.setParentId(getParent(resultSet.getInt("parent_id")));
               processType.setArchive(false);
               processType.setUseParentProperties(true);
               String title = resultSet.getString("title");
               processType.setTitle(title);
               ptDAO.updateProcessType(processType, 2);
               conbgcrm.commit();
            }
         }
         resultSet.close();
         preparedStatement.close();

идея создать дерево разделов начиная 31, и привязывать туда всех, кто в старой ЦРМ без родительского раздела, а остальным искать родителей через метод getParent. в итоге все вроде как отрабатывает, ошибок не выдает, но и новые типы процессов не создаёт.

Автор:  Администратор [ 30 окт 2014, 13:33 ]
Заголовок сообщения:  Re: ProcessTypeDAO

Как вы оцениваете, что не создаёт? В справочнике не видно?
Если дерево типов где-нибудь в очереди процессов, то оно получается из кэша, который нужно сбросить ProcessTypeCache.flush( Connection ) после правки.

Автор:  Dog [ 30 окт 2014, 14:22 ]
Заголовок сообщения:  Re: ProcessTypeDAO

я это смотрю в БД и в "Администрирование - Процессы - Типы процессов".
Код:
if (parent_id == 0){         
               processType.setParentId(31);
               processType.setArchive(false);
               processType.setUseParentProperties(true);
               String title = resultSet.getString("title");
               processType.setTitle(title);
               ptDAO.updateProcessType(processType, 2);
               conbgcrm.commit();
               ProcessTypeCache.flush(conbgcrm);
            }else{
               processType.setParentId(getParent(resultSet.getInt("parent_id")));
               processType.setArchive(false);
               processType.setUseParentProperties(true);
               String title = resultSet.getString("title");
               processType.setTitle(title);
               ptDAO.updateProcessType(processType, 2);
               conbgcrm.commit();
               ProcessTypeCache.flush(conbgcrm);
            }

и все равно нет эфекта.

Автор:  Администратор [ 30 окт 2014, 14:46 ]
Заголовок сообщения:  Re: ProcessTypeDAO

Вот этот метод точно выполняется? Рядом отладку попробуйте поставить.
Код:
ptDAO.updateProcessType(processType, 2);

Автор:  Dog [ 30 окт 2014, 15:04 ]
Заголовок сообщения:  Re: ProcessTypeDAO

Код:
if (parent_id == 0){         
               processType.setParentId(31);
               processType.setArchive(false);
               processType.setUseParentProperties(true);
               String title = resultSet.getString("title");
               processType.setTitle(title);
               System.out.println("BEFORE action. TYPE: " + processType.toString());
               ptDAO.updateProcessType(processType, 2);
               System.out.println("AFTER action");
               conbgcrm.commit();
               ProcessTypeCache.flush(conbgcrm);
               System.out.println("LIST: " + ptDAO.getFullProcessTypeList().contains(processType));
            }else{
               processType.setParentId(getParent(resultSet.getInt("parent_id")));
               processType.setArchive(false);
               processType.setUseParentProperties(true);
               String title = resultSet.getString("title");
               processType.setTitle(title);
               System.out.println("BEFORE action. TYPE: " + processType.toString());
               ptDAO.updateProcessType(processType, 2);
               System.out.println("AFTER action");
               conbgcrm.commit();
               ProcessTypeCache.flush(conbgcrm);
               System.out.println("LIST: " + ptDAO.getFullProcessTypeList().contains(processType));

Код:
ipiParentId: 0
BEFORE action. TYPE: Технические заявки
AFTER action
LIST: false

Автор:  Администратор [ 30 окт 2014, 15:09 ]
Заголовок сообщения:  Re: ProcessTypeDAO

Так попробуйте:
Код:
        if (parent_id == 0){
               processType = new ProcessType();
               processType.setParentId(31);
....
  }else{
               processType = new ProcessType();
               processType.setParentId(getParent(resultSet.getInt("parent_id")));

Автор:  Dog [ 30 окт 2014, 16:06 ]
Заголовок сообщения:  Re: ProcessTypeDAO

и так тоже не работает

Автор:  Администратор [ 30 окт 2014, 18:11 ]
Заголовок сообщения:  Re: ProcessTypeDAO

А в таблице в БД записи добавляются? В process_type?

Автор:  Dog [ 30 окт 2014, 19:15 ]
Заголовок сообщения:  Re: ProcessTypeDAO

нет

Автор:  Администратор [ 31 окт 2014, 11:32 ]
Заголовок сообщения:  Re: ProcessTypeDAO

Обновление выложено. При id=0 updateProcessType пытался обновить существующую запись, добавлял только при id<0

Автор:  Dog [ 31 окт 2014, 15:39 ]
Заголовок сообщения:  Re: ProcessTypeDAO

заработало, спасибо

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/