AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2011, 17:44   #1  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Не работает публикация отчетов в CRM. Помогите!!!!
Столкнулся с такой проблемой, разработал в Visual Studio 2008 отчет, вот скрины:








Т.е. в Visual Studio 2008 когда нажимаешь на Run (Выполнить отчет) он срабатывает нормально.

Buld-ится, и Deploy-ится нормально без ошибок и варнингов.

Затем когда пытаюсь эту RDL-ку загрузить в CRM в отчеты, то при запуске этого же отчета из среды CRM появляется ошибка. Причем из среды CRM этот отчет я запускал из под системного администратора со всеми возможными ролями.



Уже замучался в интернете ничего на эту тему нет, на вашем сайте тоже.

Даже не знаю куда и копать.
Помогите пожалуйста.

RDL-ку прилагаю.
Вложения
Тип файла: rar dsSalesPlanFact.rar (5.4 Кб, 56 просмотров)

Последний раз редактировалось Dicora; 16.03.2011 в 17:46.
Старый 16.03.2011, 17:53   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
1. Используйте представления, а не сами базы! Для каждого объекта CRM в базе есть фильтрованное представление Filtered<ObjectName> на которое есть права у пользователей системы и у учетных записей служб. Возможно ваша проблема в этом.
2. Деплоили отчет через интерфейс CRM или из студии? Деплоить нужно через интерфейс CRM, так как отчет подвергнется дополнительным модификациям, в частности система пере подключит источник данных.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: Dicora (1).
Старый 16.03.2011, 20:02   #3  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Кроме написанного Артёмом добавлю, что при разработке отчётов под CRM нельзя использовать Shared Datasources, а необходимо использовать строку подключения к базе в теле отчёта.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Dicora (1).
Старый 17.03.2011, 02:10   #4  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
А у меня вопрос, допустим на все сущности которые созданы в среде CRM (системные и настраиваемые) имеют фильтрованные представления.

Но у меня ещё есть таблица Salesplan, SalesplanData и Salesfact - которые я создал через SQL вручную, сюда по расписанию подкачиваются данные из 1С-ки, соответственно эти таблицы не имеют ничего общего с сущностями CRM-а и как следствие не имеют фильтрованных представлений.

Я могу обращаться к ним в SQL-запросе или нет? и что делать в случае если нельзя.
Как сделать фильтрованное представление и как сделать права на видимость этого представления всем пользователям системы.

Я в визуал студию после того как в дизайнере отчетов настроил внешний вид и написал SQL запрос - нажал Project -> Build, затем Project->Deploy, после чего сохранил это всё как Save As... (в виде RDL-файла) и затем зашел в CRM нажал создать отчет и выбрать существущий файл (выбрал RDL-файл) - сохранил, затем запустил - и появляется ошибка.

А если этот же отчет в Visual Studio запустить (нажав на Run) - то отчет работает так как надо и сразу запускается.

Ещё вопрос, что значит Shared Data Source? и как добавить строку подключения в тело запроса?

Заранее спасибо!
Старый 17.03.2011, 03:59   #5  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Цитата:
Сообщение от Dicora Посмотреть сообщение
Но у меня ещё есть таблица Salesplan, SalesplanData и Salesfact - которые я создал через SQL вручную, сюда по расписанию подкачиваются данные из 1С-ки, соответственно эти таблицы не имеют ничего общего с сущностями CRM-а и как следствие не имеют фильтрованных представлений.

Я могу обращаться к ним в SQL-запросе или нет?
Да можете. нада просто пердоставить к ним доступ... Примерно так:
X++:
Grant Select
ON dbo.YourTable
TO [NT AUTHORITY\NETWORK SERVICE]
GO
Цитата:
Ещё вопрос, что значит Shared Data Source? и как добавить строку подключения в тело запроса?
В VS в Solution Explorer при работе над проектом отчетов, есть папка Shared Data Source. Вот через нее источники данных создавать не надо
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
За это сообщение автора поблагодарили: Dicora (1).
Старый 17.03.2011, 10:22   #6  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Я сделал как Вы просили, добавил права на таблицы, я так понял это нужно было добавить туда где у меня запрос SQL?

X++:
Grant Select
ON dbo.Salesplan
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.SalesplanData
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.Salesfact
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.OpportunityBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.OpportunityExtensionBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.New_trendBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.New_trendExtensionBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.New_departmentBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.New_departmentExtensionBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

Grant Select
ON dbo.SystemUserBase
TO [NT AUTHORITY\NETWORK SERVICE]
GO

declare @unix_time_now int
select @unix_time_now = DATEDIFF(s, 'Jan 1 1970',GETUTCDATE())
declare @unix_time_start2 int
declare @unix_time_end2 int

declare @unix_time_start int
declare @unix_time_end int

declare @D datetime
set @D = getdate()

select @unix_time_start2 = DATEDIFF(s, 'Jan 1 1970',DateAdd(  Year , DateDiff(Year , 0, @D)   , 0)   )
select @unix_time_end2 = DATEDIFF(s, 'Jan 1 1970',DateAdd(  day, -1, DateAdd(  Year , DateDiff(Year , 0, @D) +1, 0))   )

select @unix_time_start = DATEDIFF(s, '01.01.1970', @aStartDate   )
select @unix_time_end = DATEDIFF(s, '01.01.1970', @aEndDate )

select
       new_departments.New_name as Company,
       COALESCE(
		(select Sum(Salesplan.Price)
		from Salesplan
		where Salesplan.ParentSalesplanId = (select SalesplanId	
								   from Salesplan 
								   where @unix_time_now BETWEEN DateStart AND DateEnd
								   and ParentSalesplanId is NULL)
        and Salesplan.CreatedBy = trend.OwningUser)
       , 0) as PlanCompany,	
       new_trend.New_Department as GroupName,
	   COALESCE (
		(select Sum(Salesplan.Price)
		from Salesplan
		where Salesplan.ParentSalesplanId = (select SalesplanId	
								   from Salesplan 
								   where @unix_time_now BETWEEN DateStart AND DateEnd
								   and ParentSalesplanId is NULL)
        and Salesplan.ManagerId = new_trend.New_systemuser_new_trend)
       , 0) as PlanGroup,	
 	   Coalesce (
        ( 
        select Sum(Salesfact.Price)
		from Salesfact, OpportunityExtensionBase, OpportunityBase, SystemUserBase
		where Salesfact.DateFact BETWEEN @unix_time_start AND @unix_time_end
        and Salesfact.AgreementCode = OpportunityExtensionBase.New_Agreement_Code
		and OpportunityBase.OpportunityId = OpportunityExtensionBase.OpportunityId
        and ( (OpportunityBase.OwningUser = new_trend.New_systemuser_new_trend
			    and OpportunityBase.OwningUser = SystemUserBase.SystemUserId) or
              (OpportunityBase.OwningUser = SystemUserBase.SystemUserId
                and SystemUserBase.ParentSystemUserId = new_trend.New_systemuser_new_trend)
	     )
        )
       , 0) as FactGroup,		
	   new_trend.New_name as Department,
       COALESCE (
		(select Sum(SalesplanData.Price)
		from SalesplanData
		where SalesplanData.SalesplanId = (select SalesplanId	
								   from Salesplan 
								   where @unix_time_now BETWEEN DateStart AND DateEnd 
								   and ParentSalesplanId is NULL)
        and SalesplanData.DepartmentId = new_trend.New_trendId
        and SalesplanData.Period <> 5 and SalesplanData.Period is NOT NULL
        and SalesplanData.ProductstypeId is NOT NULL
        and SalesplanData.ManagerId is NOT NULL)
       , 0) as PlanDepartment,	
 	   Coalesce (
        ( 
        select Sum(Salesfact.Price)
		from Salesfact, OpportunityExtensionBase, OpportunityBase, SystemUserBase
		where Salesfact.DateFact BETWEEN @unix_time_start AND @unix_time_end
        and Salesfact.AgreementCode = OpportunityExtensionBase.New_Agreement_Code
		and OpportunityBase.OpportunityId = OpportunityExtensionBase.OpportunityId
        and ( (OpportunityBase.OwningUser = new_trend.New_systemuser_new_trend
			    and OpportunityBase.OwningUser = SystemUserBase.SystemUserId) or
              (OpportunityBase.OwningUser = SystemUserBase.SystemUserId
                and SystemUserBase.ParentSystemUserId = new_trend.New_systemuser_new_trend)
	     )
        )
       , 0) as FactDepartment,
       new_trend.New_trendId as DepartmentId,
       new_trend.New_systemuser_new_trend as GroupUserId,
       new_departments.New_departmentId as CompanyId,
      Coalesce (
 (select Sum(O.EstimatedValue_Base) as Sum
 from OpportunityBase as O, OpportunityExtensionBase as OBase
 where O.OpportunityId = OBase.OpportunityId
 and DATEDIFF(s, '01.01.1970 00:00:00', O.ModifiedOn) BETWEEN @unix_time_start and @unix_time_end
 and O.CloseProbability >= 80
 and O.statecode = 0
 and OBase.New_blid = new_trend.New_trendId
)
  
,0) as OpportunityClosedSum,
      Coalesce (
 (select Sum(O.EstimatedValue_Base) as Sum
 from OpportunityBase as O, OpportunityExtensionBase as OBase
 where O.OpportunityId = OBase.OpportunityId
 and DATEDIFF(s, '01.01.1970 00:00:00', O.ModifiedOn) BETWEEN @unix_time_start and @unix_time_end
 and O.CloseProbability < 80
 and O.CloseProbability >= @aProbability
 and O.statecode = 0
 and OBase.New_blid = new_trend.New_trendId
)
  
,0) as OpportunityOpenSum
from
        New_departmentExtensionBase as new_departments
        left outer join New_departmentBase as departments
                        on departments.New_departmentId = new_departments.New_departmentId
                        and departments.statecode = 0			

        left outer join New_trendExtensionBase as new_trend
                        on new_trend.New_buid = departments.New_departmentId
        left outer join New_trendBase as trend
                        on new_trend.New_trendId = trend.New_trendId
                        and trend.statecode = 0
where trend.statecode is NOT NULL
	  and departments.statecode is NOT NULL
	  and new_departments.New_name NOT LIKE '%СНГ%'
order by new_departments.New_name, new_trend.New_Department, new_trend.New_Name
Затем я добавил строку подключения не в Shared Data Source, вот скрин,







Но появляются ошибки.
Старый 17.03.2011, 10:24   #7  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Также я удалил справа DataSource1.rds в Shared Data Source
Старый 17.03.2011, 10:29   #8  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Этот запрос надо запустить один раз, чтобы дать права на таблицы и не более.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 17.03.2011, 10:35   #9  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
а где его запустить в SQL-е? вручную???
Старый 17.03.2011, 10:46   #10  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Запустил эти запросы

GRANT Select и т.д.

ко всем используемым таблицам в запросе которые я использую

в SQL Management Studio единожды.

затем сохранил отчет в Visual Studio и постандартной схеме выгрузил его в CRM.

та же ошибка

X++:
    .
       "dsSalesPlanFact".
      ,
Черт, что же такое??
Старый 17.03.2011, 11:02   #11  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Включите подробные ошибки:
откройте Management Studio и подключитесь к экземпляру Reportig Services (не Database Engine) щелкните правой кнопкой по руту и выберите свойства, перейдите к Advsnced и включите EnableRemoteErrors. Полсе этого вместо Вы должны увидите вменяемое описание ошибки
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 17.03.2011, 12:09   #12  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Я уже гуглил эту тему и мне тоже писали о том чтобы я включил ошибки именно так как вы и сказали, но я может быть совсем тупой но у меня нету этой возможности в SQL Management Studio.







я ведь всё правильно сделал??

1. Подключился к Reporting Services (не Database Engine)

2. Кликнул на Root-a (Кстати на папки которые внутри Home и другие тоже кликал - там возможностей ещё меньше в Properties), выбрал Properties и Advanced - там нету.
Старый 17.03.2011, 12:57   #13  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
В 2005 они включаются по другому http://msdn.microsoft.com/en-us/libr...v=sql.90).aspx
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 17.03.2011, 14:32   #14  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Сделал как вы просили.
права включил



Также включил EnableRemoteErrors, через строку Cmd.


Затем снова опубликовал отчет, но ошибка появляется всё равно.

Старый 17.03.2011, 14:45   #15  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Под какой учеткой у Вас работает апликейшн пул сайта CRM?

И Вы писали что выбираете данные из нескольких таблиц. На другие таблицы не ругается?
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 17.03.2011, 17:06   #16  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Бинго! Ошибка решена!

Оказывается дать привилегии на Select пользователю NT AUTORITY\NETWORK SERVICE применительно к пользовательским таблицам (тем которые я создавал сам через MSSQL) нужно ещё дать привилегии всей базе целиком, а именно:



причем не только по пользователю

NT AUTORITY\NETWORK SERVICE, дать права на SELECT, но и по оставшимся другим 3-м пользователям (PrivReportGroup и т.д.) - тоже.
Старый 17.03.2011, 19:59   #17  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Проще и органичнее было создать необходимые кастомные объекты в CRM, импортировать данные из 1С в таблицы созданных объектов. Это решает все ваши проблемы с доступом к объектам базы
Плюс такого рода кастомизация - поддерживаемая, а ваша - ужасно ансапортная.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Windows Azure AppFabric Integration with Microsoft Dynamics CRM - Step By Step Blog bot Dynamics CRM: Blogs 0 18.02.2011 23:12
Microsoft Dynamics CRM Team Blog: Upgrading a CRM 4.0 Custom Workflow Activity to CRM 2011 Blog bot Dynamics CRM: Blogs 0 18.11.2010 01:12
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Проблема с публикацией отчетов - не работает "Сделать отчет доступным для организации" serjio72 Dynamics CRM: Администрирование 8 16.07.2009 18:11
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:28.