Как записать дату в пользовательское поле?

Обсуждаем TrackStudio по-русски

Как записать дату в пользовательское поле?

Postby UkolovDA » Thu Sep 09, 2010 3:51 pm

TS 4.0.5
Приветствую,
убил пол-дня, так и не смог сделать.

Проблема: нужно записать дату (Calendar) в Custom-поле

Это делается в триггере INSTEAD OF CREATE TASK анализирую входную задачу и добавляю другую, в другой раздел.

Напишите рабочий пример, пожалуйста.

Ошибка такая:

Stack Trace:
TrackStudio Error:
com.trackstudio.exception.GranException: Can't parse this date
at com.trackstudio.tools.formatter.DateFormatter.parseToCalendar(DateFormatter.java:120)
at com.trackstudio.kernel.manager.UdfManager.setUdfValue(UdfManager.java:788)
at com.trackstudio.kernel.manager.UdfManager.setTaskUdfValue(UdfManager.java:846)
at com.trackstudio.securedkernel.SecuredUDFAdapterManager.setTaskUDFValueSimple(SecuredUDFAdapterManager.java:1198)
at scripts.instead_of_create_task.instead_of_create_trial_keys.CreateTrialKeyRecord(instead_of_create_trial_keys.java:128)
at scripts.instead_of_create_task.instead_of_create_trial_keys.execute(instead_of_create_trial_keys.java:25)
UkolovDA
 
Posts: 27
Joined: Sun Jan 31, 2010 10:22 am

Re: Как записать дату в пользовательское поле?

Postby admin » Fri Sep 10, 2010 8:42 am

Судя по ругательству, дата должна быть записана в текстовом виде и отформатирована в соответствии с локалью текущего пользователя. А у вас как ?
Maxim Kramarenko (mailto: maximkr@trackstudio.com)
TrackStudio - Hierarchical Bug & Issue Tracking Software
http://www.trackstudio.com
admin
Site Admin
 
Posts: 7304
Joined: Thu Jan 01, 1970 3:00 am
Location: Smolensk, Russia

Re: Как записать дату в пользовательское поле?

Postby UkolovDA » Fri Sep 10, 2010 11:07 am

Максим, спасибо за ответ,
я пробовал по-всякому пытался передать число в миллисекундах, и делал Calendar.toString(),
ничего не вышло.

В том числе так:

Code: Select all
            expirationDate = stringToCalendar(paramValue);
            Object e = expirationDate.getTimeInMillis();
            String eds = e.toString();
//            Long n = expirationDate.getTimeInMillis();
//            udf.put("Дата_UDF", eds);


А как надо написать?
Чтобы чайнику в Java понятно было?
UkolovDA
 
Posts: 27
Joined: Sun Jan 31, 2010 10:22 am

Re: Как записать дату в пользовательское поле?

Postby Petr » Fri Sep 10, 2010 12:55 pm

Code: Select all
import com.trackstudio.secured.*;
import java.util.*;
import com.trackstudio.tools.formatter.*;

SecuredTaskTriggerBean stt = new SecuredTaskTriggerBean(task.getId(), sc);

DateFormatter df = sc.getUser().getDateFormatter();
Calendar time = Calendar.getInstance(df.getTimeZone(), df.getLocale());
String value = df.parse(time);

stt.setUdfValue("Date", value);

return stt;
TS Support
email: parsentev@yandex.ru
Petr
 
Posts: 1122
Joined: Wed Aug 12, 2009 4:38 pm

Re: Как записать дату в пользовательское поле?

Postby UkolovDA » Mon Sep 13, 2010 8:10 am

Большое спасибо, всё заработало!

:D
UkolovDA
 
Posts: 27
Joined: Sun Jan 31, 2010 10:22 am


Return to TrackStudio Support [Russian]

Who is online

Users browsing this forum: No registered users and 1 guest