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

[5.1] Не работает метод getNoClosedTaskList
http://forum.bitel.ru/viewtopic.php?f=21&t=6881
Страница 1 из 1

Автор:  mikos [ 20 июн 2012, 16:23 ]
Заголовок сообщения:  [5.1] Не работает метод getNoClosedTaskList

У класса ru.bitel.bgbilling.plugins.crm.server.dao.RegisterTaskManager не работает метод getNoClosedTaskList - выдает пустой список, хотя задачи открытые у договора есть. Пробовал даже их принимать - эффект тот же, пустой список на выходе метода.

Автор:  stark [ 20 июн 2012, 17:14 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

что возращает запрос

Код:
SELECT * FROM register_task WHERE cid=XXX AND status IN (0, 1)


где XXX - id договора.

Автор:  mikos [ 20 июн 2012, 17:24 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

Задача на месте.

Код:
mysql> SELECT * FROM register_task WHERE cid=3964 AND status IN (0, 1);
+-------+------+------------+------+------+---------------------+----------+-----------+------------+---------------------+-----------+---------------------+--------+--------+-----------+---------------------+-----------------------------------------------------------------------------------------+----+------------+------+------------+
| id    | cid  | aobject_id | apid | type | open_dt             | open_uid | accept_dt | accept_uid | close_dt            | close_uid | lm_dt               | lm_uid | status | processed | target_dt           | comment                                                                                 | gr | resolution | prid | execute_dt |
+-------+------+------------+------+------+---------------------+----------+-----------+------------+---------------------+-----------+---------------------+--------+--------+-----------+---------------------+-----------------------------------------------------------------------------------------+----+------------+------+------------+
| 18901 | 3964 |          0 |   13 |    1 | 2012-06-19 20:01:58 |        0 | NULL      |        -10 | 2012-06-20 14:33:44 |         0 | 2012-06-20 14:29:18 |      5 |      0 |         0 | 2012-06-26 20:01:00 | Закрыто автоматически по отказу от подключения |  6 |            |    0 | NULL       |
+-------+------+------------+------+------+---------------------+----------+-----------+------------+---------------------+-----------+---------------------+--------+--------+-----------+---------------------+-----------------------------------------------------------------------------------------+----+------------+------+------------+
1 row in set (0.00 sec)


Что еще интересно, так это иногда (через раз) получается вытащить список задач с помощью этого метода, когда перед его вызовом воспользоваться фильтром:

Код:
filter = new TaskFilter();
filter.cid = cid;
cnt = rtm.getTaskCount( filter );


Вообще странности. По сути, я сейчас вообще никак не могу получить список задач для договора - ни фильтром, ни getNoClosedTaskList (

Автор:  mikos [ 20 июн 2012, 17:25 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

ru.bitel.bgbilling.plugins.crm вер. 5.1 сборка 185 от 21.01.2012 01:58:39

Автор:  mikos [ 20 июн 2012, 17:39 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

Правильно ли вызываю метод? Сейчас даже с фильтром ничего не выдает, хотя было несколько раз - возвращал результат.
Вызываю closeAllTasks из события "доп.действия" договора.

Код:
public void closeAllTasks( cid )
{   

   //
   ctx = getContext();
   con = ctx.con;
   rtm = new RegisterTaskManager( con );

filter = new TaskFilter();
filter.cid = cid;
cnt = rtm.getTaskCount( filter );
print("getTaskCount="+cnt);
print("getNoClosedTaskList="+rtm.getNoClosedTaskList( cid ) );

   for ( RegisterTask task : rtm.getNoClosedTaskList( cid ) ) {

      print("task="+task);

      // закрываем очередную задачу
      task = closeTask( task, "Закрыто автоматически" );

      rtm.updateTask( task );

   }
}

public RegisterTask closeTask( RegisterTask task, String comment )
{
   CloseTaskDate = new java.util.Date();
      
   // закрываем задачу
   task.setCloseUserID( 0 );
   task.setCloseTime( CloseTaskDate );      
   task.setComment( comment );

   return task;
}


Лог выполнения

Код:
GENERATE_TIME: 20.06.12 15:37:08
EXECUTION_STOP_TIME: 20.06.12 15:37:08
PROCESS_TIME: 7

OUT:
getTaskCount=0
getNoClosedTaskList=[]

Автор:  mikos [ 20 июн 2012, 17:45 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

Похоже проблема была в контексте. Стал передавать контекст из события в функцию closeAllTasks - находит задачи и даже меняет комментарий. Только почему-то не закрывает ее. Для закрытия отдельный метод есть какой-то?

Автор:  mikos [ 20 июн 2012, 19:31 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

Так и есть - разобрался во всем. Моя вина )

Напоследок такой вот метод отсутствует, по крайней мере у меня:

RegisterTask.getId()

В документации написано, что getID() устарел, использовать getId(), а его нет. Использую getID() - ругани на deprecated нет.

PS: Может обновиться?)

Автор:  skn [ 21 июн 2012, 19:30 ]
Заголовок сообщения:  Re: [5.1] Не работает метод getNoClosedTaskList

страно, в коде метод RegisterTask.getId() есть...

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