12.05.2014, 11:28 | #1 |
Участник
|
Представление "Мои действия" и странное поведение при выборе "срок"
Всем привет.
Обнаружилось непонятное поведение представления "Мои действия" со Сроком "Сегодня": если вкратце - выводятся действия с прошедшим сроком (вчера, полгода назад и т.д.) SQL Profiler показывает следующий запрос (exec sp_executesql ',,,' и параметры с собаками типа @ScheduledEnd0='2014-05-12 07:29:35' заменил для удобочитаемости): Код: select DISTINCT top 251 "activitypointer0".CreatedOn as "createdon" , "activitypointer0".ActivityTypeCode as "activitytypecode" , "activitypointer0".RegardingObjectId as "regardingobjectid" , "activitypointer0".Subject as "subject" , "activitypointer0".OwnerId as "ownerid" , "activitypointer0".ScheduledEnd as "scheduledend" , "activitypointer0".ActivityId as "activityid" , "activitypointer0".InstanceTypeCode as "instancetypecode" , "activitypointer0".RegardingObjectIdYomiName as "regardingobjectidyominame" , "activitypointer0".RegardingObjectTypeCode as "regardingobjecttypecode" , "activitypointer0".RegardingObjectIdName as "regardingobjectidname" , "activitypointer0".OwnerIdName as "owneridname" , "activitypointer0".OwnerIdYomiName as "owneridyominame" , "activitypointer0".OwnerIdType as "owneridtype" , "a_18319c3475a64263a23c3195b0b28557".New_sourcecampaignid as "a_18319c3475a64263a23c3195b0b28557.new_sourcecampaignid" , "a_18319c3475a64263a23c3195b0b28557".New_regionid as "a_18319c3475a64263a23c3195b0b28557.new_regionid" , "a_18319c3475a64263a23c3195b0b28557".New_cityid as "a_18319c3475a64263a23c3195b0b28557.new_cityid" , "a_18319c3475a64263a23c3195b0b28557".New_sourcecampaignidName as "a_18319c3475a64263a23c3195b0b28557.new_sourcecampaignid_new_sourcecampaignidname" , "a_18319c3475a64263a23c3195b0b28557".New_regionidName as "a_18319c3475a64263a23c3195b0b28557.new_regionid_new_regionidname" , "a_18319c3475a64263a23c3195b0b28557".New_cityidName as "a_18319c3475a64263a23c3195b0b28557.new_cityid_new_cityidname" from ActivityPointer as "activitypointer0" (NOLOCK) join ActivityParty as "a_6ff0bed3c2564990a5f59856d8ac3d24" (NOLOCK) on ("activitypointer0".ActivityId = "a_6ff0bed3c2564990a5f59856d8ac3d24".ActivityId and (("a_6ff0bed3c2564990a5f59856d8ac3d24".PartyId = 'B9A944AE-7CC6-E111-A0BE-001A6433B300'))) left outer join Contact as "a_18319c3475a64263a23c3195b0b28557" (NOLOCK) on ("activitypointer0".RegardingObjectId = "a_18319c3475a64263a23c3195b0b28557".ContactId) where ((((("activitypointer0".StateCode in (0, 3)) and ("activitypointer0".ActivityTypeCode != 4406 or "activitypointer0".ActivityTypeCode is null))) and (("activitypointer0".OwnerId = 'B9A944AE-7CC6-E111-A0BE-001A6433B300')) and (("activitypointer0".ScheduledEnd < '2014-05-12 06:41:15' or "activitypointer0".ScheduledEnd >= '2014-05-11 20:00:00' and "activitypointer0".ScheduledEnd < '2014-05-12 20:00:00' )))) order by "activitypointer0".CreatedOn desc , "activitypointer0".ActivityId asc Код: <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"> <entity name="activitypointer"> <order attribute="createdon" descending="true" /> <filter type="and"> <condition attribute="statecode" operator="in"> <value>0</value> <value>3</value> </condition> <condition attribute="activitytypecode" operator="ne" value="4406" /> </filter> <link-entity name="activityparty" from="activityid" to="activityid" alias="a_6ff0bed3c2564990a5f59856d8ac3d24"> <filter type="and"> <condition attribute="partyid" operator="eq-userid" /> </filter> </link-entity> <attribute name="createdon" /> <attribute name="activitytypecode" /> <attribute name="regardingobjectid" /> <attribute name="subject" /> <attribute name="ownerid" /> <attribute name="scheduledend" /> <link-entity alias="a_18319c3475a64263a23c3195b0b28557" name="contact" from="contactid" to="regardingobjectid" link-type="outer" visible="false"> <attribute name="new_sourcecampaignid" /> <attribute name="new_regionid" /> <attribute name="new_cityid" /> </link-entity> <attribute name="activityid" /> <filter type="and"> <condition attribute="ownerid" operator="eq-userid" /> </filter> </entity> </fetch> grid->parameters->dateFilter = Today (ok) fetchXmlForFilters - такой же как в SavedQuery (предыдущий блок кода) isFetchXmlNotFinal = FALSE (!) effectiveFetchXml: Код: <fetch distinct="true" no-lock="false" mapping="logical" page="1" count="250" returntotalrecordcount="true"> <entity name="activitypointer"> <attribute name="createdon" /> <attribute name="activitytypecode" /> <attribute name="regardingobjectid" /> <attribute name="subject" /> <attribute name="ownerid" /> <attribute name="scheduledend" /> <attribute name="activityid" /> <attribute name="createdon" /> <attribute name="regardingobjectid" /> <attribute name="subject" /> <attribute name="ownerid" /> <attribute name="scheduledend" /> <attribute name="instancetypecode" /> <filter type="and"> <filter type="and"> <condition attribute="statecode" operator="in"> <value>0</value> <value>3</value> </condition> <condition attribute="activitytypecode" operator="ne" value="4406" /> </filter> <filter type="and"> <condition attribute="ownerid" operator="eq-userid" /> </filter> <filter type="or"> <condition attribute="scheduledend" operator="lt" value="2014-05-12T11:05:35+04:00" /> <condition attribute="scheduledend" operator="tomorrow" /> <condition attribute="scheduledend" operator="today" /> </filter> <filter type="or"> <condition attribute="statecode" operator="eq" value="0" /> <condition attribute="statecode" operator="eq" value="3" /> </filter> </filter> <order attribute="createdon" descending="true" /> <link-entity name="activityparty" to="activityid" from="activityid" link-type="inner" alias="a_6ff0bed3c2564990a5f59856d8ac3d24"> <filter type="and"> <condition attribute="partyid" operator="eq-userid" /> </filter> </link-entity> <link-entity name="contact" to="regardingobjectid" from="contactid" link-type="outer" alias="a_18319c3475a64263a23c3195b0b28557"> <attribute name="new_sourcecampaignid" /> <attribute name="new_regionid" /> <attribute name="new_cityid" /> </link-entity> </entity> </fetch> в какую сторону копать и как с этими кондишенами вообще работать (наверное, в первую очередь интересуют пользовательские\дизайнерские настройки\визарды, но не обязательно)? Последний раз редактировалось Eugene.Ostroukhov; 12.05.2014 в 11:34. |
|
12.05.2014, 12:18 | #2 |
Чайный пьяница
|
Была тема на форуме. Артём кажется поднимал. Смысл таков, что в это представление добавляются все просроченные действия.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: Eugene.Ostroukhov (1). |
12.05.2014, 12:24 | #3 |
Участник
|
Цитата:
просто тогда становится непонятным пункт "Просрочено" в дроп-дауне срока |
|
12.05.2014, 12:25 | #4 |
Чайный пьяница
|
Чисто теоретически - можно плагином перехватывать RetreiveMultiple и вырезать оттуда ненужный фильтр.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
12.05.2014, 15:54 | #5 |
Консультант-джедай
|
Цитата:
Просрочено: · - время окончания действия < текущей даты и текущего времени – 3 часа, ИЛИ · - время окончания действия не заполнено Сегодня: · - время окончания действия < текущей даты и текущего времени – 3 часа, ИЛИ · - время окончания действия >= 21:00 прошлого дня И < 21:00 сегодняшнего дня, ИЛИ · - время окончания действия не заполнено Завтра: · - время окончания действия >= 21:00 сегодняшнего дня И < 21:00 завтрашнего дня, ИЛИ · - время окончания действия не заполнено
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
12.05.2014, 16:29 | #6 |
Чайный пьяница
|
Вячеслав,
Зачем же вводить в ступор человека? +- часы - если я не ошибаюсь - это приведение к локальной временной зоне конкретного пользователя. Если у человека будет выставлен гринвич во временной зоне, но смещения вообще не будет, а в Нью-Йорке - будет смещение +7 часов. Ни в чём не ошибся?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
12.05.2014, 16:37 | #7 |
Участник
|
Цитата:
Сообщение от a33ik
Вячеслав,
Зачем же вводить в ступор человека? +- часы - если я не ошибаюсь - это приведение к локальной временной зоне конкретного пользователя. Если у человека будет выставлен гринвич во временной зоне, но смещения вообще не будет, а в Нью-Йорке - будет смещение +7 часов. Ни в чём не ошибся? |
|