SAPфорум.RU
https://sapboard.ru/forum/

SAPUI5\FIORI: SmartFilterBar+поле типа дата+OData
https://sapboard.ru/forum/viewtopic.php?f=133&t=96007
Страница 1 из 1

Автор:  Кодер [ Вт, янв 30 2018, 21:26 ]
Заголовок сообщения:  SAPUI5\FIORI: SmartFilterBar+поле типа дата+OData

В приложении используется SmartFilterBar на основе oData-сервиса. В сущности есть поле типа дата, которое используется в фильтре. При обработке фильтра получаю его значения и передаю в качестве фильтра в oData-сервис. Т.к. поле дата преобразуется в тип javascript Date, то в фильтре будут именно значения именно этого типа (год-день-месяц-время). В значение попадет Time Zone фронтенда (ну допустим GMT+3). А сам oData выполнит запрос к бэкэнду уже с приведенным временем.
Т.е., например, юзер выбрал в фильтре 30.01.2018, в значениях фильтра будет 30.01.2018 00:00:00GMT+3. Но в запросе к сервису SAPUI5 преобразует это все в 29.01.2018 21:00:00 (без тайм зоны).
Я конечно могу вручную сконвертить время в фильтре, но м.б. есть какой-то более правильный способ?
Опять же, интересно: я вот использовал перекидывание фильтра в сервис вручную, т.к. обошелся без SmartTable. А что будет если и SmartFilterBar и SmartTable будут использоваться вместе?

Автор:  Besa [ Вт, мар 13 2018, 12:48 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: SmartFilterBar+поле типа дата+OData

oData сервис на основе CDS?
В общем из опыта создания приложений на базе CDS все решается через анотации, там можно и задавать тип интервальный, и календарь там будет, и передаваться значения будут конкретно на бэк. И что касается таймзоны, также выставляется через анотации.
В этом случае по-моему это смартфильтры так отработают.
Если все в ручную делаете, точно не подскажу, но там вроде есть другим тип со смещением.

В целом, в данный момент у меня понимание создания приложений таково(опыта не много) - создается CDS, максимально описывается все через анотации (в комбинации с ассоциациями) + dpc/mpc классы для расширения, далее на фронте, по smarttemplate генерится приложение по odata сервису + файлу с анотациями.

Автор:  Кодер [ Вт, мар 13 2018, 15:32 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: SmartFilterBar+поле типа дата+OData

Besa написал:
oData сервис на основе CDS?

Да
Besa написал:
И что касается таймзоны, также выставляется через анотации.

Можно пример? что-то курил я доки по аннотациям и не нашел подходящей.
Besa написал:
В целом, в данный момент у меня понимание создания приложений таково(опыта не много) -

Если верить статьям, то все больше пропагандируется отказ от написания своего кода в классах сервисов. Теперь рекламируют вариант: CDS->BOPF->Sservice->Template application (Fiori Element).

Автор:  Besa [ Ср, мар 14 2018, 09:21 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: SmartFilterBar+поле типа дата+OData

Возможно я перепутал с функциями конвертации и получения timezone в CDS.
Анотациями выставляется интервальность и мультибор. https://help.sap.com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/7.5.6/en-US/d60c0bf6798a481fb7412bc89934cb8a.html

И все таки не понятно, у Вас поле в таблице какого типа DATS или TIMESTAMP?
oData сервис какой edm тип выставил?

Автор:  Кодер [ Ср, мар 14 2018, 09:54 ]
Заголовок сообщения:  Re: SAPUI5\FIORI: SmartFilterBar+поле типа дата+OData

Besa написал:
все таки не понятно, у Вас поле в таблице какого типа DATS или TIMESTAMP?

DATS
Besa написал:
Data сервис какой edm тип выставил?

Edm.DateTime
Т.к. создавал entity через CDS-reference, то вручную изменить тип в проекте сервиса система не дает

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/