Size: a a a

Camunda BPM Group

2021 February 28

ET

Ed Tsoy in Camunda BPM Group
DooDLeZz*
Всем привет, подскажите пожалуйста как решить проблему. Суть вот в чем:
1. Через RESTful API я записал переменную ‘expirationDate’ типа ‘date’ со значением ’2021-02-10T22:00:00.000’.
2. В camunda modeler повесил Timer Start Event, definitionType=Date, timerDefinition=${expirationDate}

В назначенную дату и время таймер не сработал. Пробовал вариант с ${dateTime().parse(expirationDate).toDate()} — тоже бестолку.

Что я делаю не так? Таймер не срабатывает
(1) - записали переменную куда?
если это самостоятельный процесс, стартующий по таймеру, а не подпроцесс, его экземпляра ещё не существует, так что непонятно, куда переменная сохранилась...
источник

D

DooDLeZz* in Camunda BPM Group
Ed Tsoy
(1) - записали переменную куда?
если это самостоятельный процесс, стартующий по таймеру, а не подпроцесс, его экземпляра ещё не существует, так что непонятно, куда переменная сохранилась...
Переменная была записана при выполнении complete метода externalTask. Таймер срабатывает в event SubProcess. BTW, если я заменяю значение переменной на статичное, или вместо типа Date сохраняю его с типом String (в формате, согласно iso8601, YYYY-MM-DD) — все работает
источник

ET

Ed Tsoy in Camunda BPM Group
DooDLeZz*
Переменная была записана при выполнении complete метода externalTask. Таймер срабатывает в event SubProcess. BTW, если я заменяю значение переменной на статичное, или вместо типа Date сохраняю его с типом String (в формате, согласно iso8601, YYYY-MM-DD) — все работает
я значение для переменной со временем для таймера присваиваю из кода, тоже с типом String...
если String работает - используйте этот тип :)
источник

D

DooDLeZz* in Camunda BPM Group
К сожалению это невозможно, так как в другом участке кода используется сортировка списка Task-ов по этому полю
источник

D

DooDLeZz* in Camunda BPM Group
Если я его передаю как String, то и сортировка, по логике должна срабатывать как при сортировке строк, что неприемлимо по требованиям
источник

ET

Ed Tsoy in Camunda BPM Group
по String нельзя сортировать?
источник

ET

Ed Tsoy in Camunda BPM Group
почему?
источник

D

DooDLeZz* in Camunda BPM Group
Потому что типы разные
источник

D

DooDLeZz* in Camunda BPM Group
при сортировке Date идет сортировка по возрастанию дат и времени, при сортировке строки он будет сортировать A-Z
источник

D

DooDLeZz* in Camunda BPM Group
или в камунда это работает как-то иначе?
источник

ET

Ed Tsoy in Camunda BPM Group
если часовой пояс у всех значений одинаковый, должно сортироваться правильно

если разные таймзоны - тогда сложнее
источник

D

DooDLeZz* in Camunda BPM Group
И это тоже, таймзоны разные
источник

D

DooDLeZz* in Camunda BPM Group
Что тоже кстати вызывает вопросы, так как при сохранении значения, значение было указано как YYYY-MM-DDThh:mm:ss.sss(+|-)tt:tt
источник

D

DooDLeZz* in Camunda BPM Group
а записалось без таймзоны
источник

D

DooDLeZz* in Camunda BPM Group
Возможно проблема как раз в таймзонах, я перерыл доку и не особо понял как установить временные зоны в камунде корректно, может тут подскажете как?
источник

ET

Ed Tsoy in Camunda BPM Group
поскольку дока говорит, что дата-время должны быть в формате ISO 8601,
я понимаю это так, что это должна быть строка (String)

попробуйте в выражении написать ${expirationDate.toString()}
может быть, поможет

с таймзоной как-то так: 2021-02-10T22:00:00+03:00
источник

D

DooDLeZz* in Camunda BPM Group
Пробовал, не помогло =/
источник

ET

Ed Tsoy in Camunda BPM Group
через кокпит или экскамад проверяли, что действительно записалось в эту переменную?
источник

D

DooDLeZz* in Camunda BPM Group
да
источник

D

DooDLeZz* in Camunda BPM Group
проверял
источник