Showing posts with label directly. Show all posts
Showing posts with label directly. Show all posts

Friday, March 23, 2012

Reporting Services 2000 Batch Printing

Is there anyway to send a subscription report directly to a printer on a network?

Thanks!

DotNetNow

http://www.builderau.com.au/program/sqlserver/soa/Introduction-to-Microsoft-SQL-Server-Reporting-Services/0,339028455,320283476,00.htm

Wednesday, March 21, 2012

Reporting Services - Overload and OutofMemoryException - Workaround?

We're having a good bit of trouble with a deployed report overloading
the server during times of heavy use. The report renders directly
from an external app to Excel, running the report by way of URL. I
haven't found any tuning that helps us - we have about 1200 clients
who try to run the report in a 2-hour span. Sometimes it seems like
they're all hitting it in the same 10 minutes. I can see the activity
in the performance monitor. Once active report requests reach 40 or
so, we usually get an OutOfMemory exception and RS recycles. It picks
back up, but the users who were waiting all get errors.
I couldn't find a metering option to force requests into a 'holding'
queue if active requests reach a threshold, so I'm trying to build a
workaround. I'm posting the basics of it here, in case it might help
anyone else.
' This code will go into the page that redirects users
' to the report. The page will either prompt the user
' to refresh or will have a refresh META tag
Dim rs As New sqlrpts.ReportingService
rs.Credentials = New System.Net.NetworkCredential _
("userid", "password", "domain")
' or - System.Net.CredentialCache.DefaultCredentials()
Dim jobs As sqlrpts.Job
Dim intx As Int16 = 0
For Each jobs In rs.ListJobs
intx = intx + 1
Next
' If intx is above the threshold we'll set (probably 25-30),
' we'll display a 'please wait' message. Otherwise, we'll
' redirect to the report URL
If anyone knows a better way around this, please reply on this thread
or email me.
Thanks!
Tim ShayHi Tim,
Just need to check with you quickly, which counter are you using to
determine the OutOfMemory exception and RS recycle?
Also, have you tried using ACT to test the report URL and see how many
RPS it can process? Coz we're having similar problem and is wondering
why RS cannot process concurrent user requests for the web application
we're developing.
Appreciate your input, thanks!
CCC
tshay@.foodlion.com (TShay) wrote in message news:<1fe4fd2c.0409100828.795a3ae3@.posting.google.com>...
> We're having a good bit of trouble with a deployed report overloading
> the server during times of heavy use. The report renders directly
> from an external app to Excel, running the report by way of URL. I
> haven't found any tuning that helps us - we have about 1200 clients
> who try to run the report in a 2-hour span. Sometimes it seems like
> they're all hitting it in the same 10 minutes. I can see the activity
> in the performance monitor. Once active report requests reach 40 or
> so, we usually get an OutOfMemory exception and RS recycles. It picks
> back up, but the users who were waiting all get errors.
> I couldn't find a metering option to force requests into a 'holding'
> queue if active requests reach a threshold, so I'm trying to build a
> workaround. I'm posting the basics of it here, in case it might help
> anyone else.
> ' This code will go into the page that redirects users
> ' to the report. The page will either prompt the user
> ' to refresh or will have a refresh META tag
> Dim rs As New sqlrpts.ReportingService
> rs.Credentials = New System.Net.NetworkCredential _
> ("userid", "password", "domain")
> ' or - System.Net.CredentialCache.DefaultCredentials()
> Dim jobs As sqlrpts.Job
> Dim intx As Int16 = 0
> For Each jobs In rs.ListJobs
> intx = intx + 1
> Next
> ' If intx is above the threshold we'll set (probably 25-30),
> ' we'll display a 'please wait' message. Otherwise, we'll
> ' redirect to the report URL
> If anyone knows a better way around this, please reply on this thread
> or email me.
> Thanks!
> Tim Shay

Saturday, February 25, 2012

Reporting on Sharepoint Lists?

I was wondering if it would be possible to generate reports directly from
Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
tnx
-= Maximizing Creativity and Productivity =-Dear Maarten
Yes, you can generate a report from data of WSS - although it is a bit of a
guesswork. WSS saves all user data in one table only (called UserData). You
will have to filter the right data from this table. In order to know what to
filter, you will have to identify the tp_ListId (uniqueidentifier) of the
WSS-List on which you want to base your report. In order to find this
tp_ListId you have to search first in the Sites table for the tp_ID of the
site. With this ID you can look up the tp_ID of the subweb in the Webs table.
And finally, with the ID of the subweb you can look up the ID of the WSS list
in the Lists table.
The next step will be to identify the fields for the identified list. There
is only one way: make a print screen from the WSS-list and scroll the list
date in the UserData table in order to find the fields that store the WSS
list data.
Furthermore, I have found it easiest to define different views on the
UserData table and to work with this views in Reporting Services (not
directly with the UserData table). In the view, you can rename the fields of
the UserData table with aliases that are the names of the columns of the WSS
list.
A last hint: you can display reports in WSS. Just define a WSS page with a
webpart aerea and give this webpart the reportserver link of the report you
want to show. It works fine.
Good luck - Judith Schuetz (www.osn.ch)
"Maarten Visser" wrote:
> I was wondering if it would be possible to generate reports directly from
> Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> tnx
> -= Maximizing Creativity and Productivity =-|||Judith.
Thanks for the information, I understand your solution.
But, like you are saying.. ' It is a bit of a guesswork'.
I have to build a solution for a customer, where end users have to build
reports and the manipulation of data has to be as easy as possible. Because
of this, i was thinking to use WSS as a front-end for data input and
Reporting Services for generating reports on this data.
I'm afraid the given solution would not work in this case, because the user
needs to be able to add columns (in WSS) and the report should than easily be
adapted by the user to show this column. (It would be best if the report
automatically showed the extra column).
Could the ADO.Net extensibility of Reporting Services do something here..
Would it be possible to build a webservice that gets the information from
Sharepoint and let Reporting Services build reports based on the data (rows)
that this webservice provides?
Tnx.
Maarten
I'm afraid the given solution would not work in this case, because the user
needs to be able to add columns and the report should than easely be adapted
by the user to show this column. (It would be best if the report
automatecally showed the extra column).
"j schuetz" wrote:
> Dear Maarten
> Yes, you can generate a report from data of WSS - although it is a bit of a
> guesswork. WSS saves all user data in one table only (called UserData). You
> will have to filter the right data from this table. In order to know what to
> filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> WSS-List on which you want to base your report. In order to find this
> tp_ListId you have to search first in the Sites table for the tp_ID of the
> site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> And finally, with the ID of the subweb you can look up the ID of the WSS list
> in the Lists table.
> The next step will be to identify the fields for the identified list. There
> is only one way: make a print screen from the WSS-list and scroll the list
> date in the UserData table in order to find the fields that store the WSS
> list data.
> Furthermore, I have found it easiest to define different views on the
> UserData table and to work with this views in Reporting Services (not
> directly with the UserData table). In the view, you can rename the fields of
> the UserData table with aliases that are the names of the columns of the WSS
> list.
> A last hint: you can display reports in WSS. Just define a WSS page with a
> webpart aerea and give this webpart the reportserver link of the report you
> want to show. It works fine.
> Good luck - Judith Schuetz (www.osn.ch)
>
> "Maarten Visser" wrote:
> >
> > I was wondering if it would be possible to generate reports directly from
> > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> >
> > tnx
> >
> > -= Maximizing Creativity and Productivity =-|||Sorry - I can't help you with this one.
"Maarten Visser" wrote:
> Judith.
> Thanks for the information, I understand your solution.
> But, like you are saying.. ' It is a bit of a guesswork'.
> I have to build a solution for a customer, where end users have to build
> reports and the manipulation of data has to be as easy as possible. Because
> of this, i was thinking to use WSS as a front-end for data input and
> Reporting Services for generating reports on this data.
> I'm afraid the given solution would not work in this case, because the user
> needs to be able to add columns (in WSS) and the report should than easily be
> adapted by the user to show this column. (It would be best if the report
> automatically showed the extra column).
> Could the ADO.Net extensibility of Reporting Services do something here..
> Would it be possible to build a webservice that gets the information from
> Sharepoint and let Reporting Services build reports based on the data (rows)
> that this webservice provides?
> Tnx.
> Maarten
>
> I'm afraid the given solution would not work in this case, because the user
> needs to be able to add columns and the report should than easely be adapted
> by the user to show this column. (It would be best if the report
> automatecally showed the extra column).
>
> "j schuetz" wrote:
> > Dear Maarten
> >
> > Yes, you can generate a report from data of WSS - although it is a bit of a
> > guesswork. WSS saves all user data in one table only (called UserData). You
> > will have to filter the right data from this table. In order to know what to
> > filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> > WSS-List on which you want to base your report. In order to find this
> > tp_ListId you have to search first in the Sites table for the tp_ID of the
> > site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> > And finally, with the ID of the subweb you can look up the ID of the WSS list
> > in the Lists table.
> >
> > The next step will be to identify the fields for the identified list. There
> > is only one way: make a print screen from the WSS-list and scroll the list
> > date in the UserData table in order to find the fields that store the WSS
> > list data.
> >
> > Furthermore, I have found it easiest to define different views on the
> > UserData table and to work with this views in Reporting Services (not
> > directly with the UserData table). In the view, you can rename the fields of
> > the UserData table with aliases that are the names of the columns of the WSS
> > list.
> >
> > A last hint: you can display reports in WSS. Just define a WSS page with a
> > webpart aerea and give this webpart the reportserver link of the report you
> > want to show. It works fine.
> >
> > Good luck - Judith Schuetz (www.osn.ch)
> >
> >
> > "Maarten Visser" wrote:
> >
> > >
> > > I was wondering if it would be possible to generate reports directly from
> > > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> > >
> > > tnx
> > >
> > > -= Maximizing Creativity and Productivity =-|||This is a fragment from a sp I wrote for a customer that ought to get you
started...
declare @.tbl table(DisplayName varchar(100), ColName varchar(100), List
varchar(20), ShowFld varchar(100))
select top 1 @.flds=cast(tp_Fields as varchar(8000))
from dbo.Lists
where <-- some selection clause -->
select @.flds = '<root>'+@.flds+'</root>' -- surround field list with top
level node, otherwise DOM throws error
exec sp_xml_preparedocument @.hnd output, @.flds
insert into @.tbl
select *
from openxml(@.hnd, N'/root/Field') with (DisplayName varchar(100), ColName
varchar(100), List varchar(20), ShowField varchar(100))
where DisplayName is not null
exec sp_xml_removedocument @.hnd
select @.cmd='select "ID"=ud.tp_ID, Created=ud.tp_Created,
Modified=ud.tp_Modified, Author=u1.tp_Title'
declare crs cursor for select DisplayName, ColName, List, ShowFld from @.tbl
open crs
fetch next from crs into @.name, @.colname, @.list, @.showfld
select @.joinum=2, @.join=''
while @.@.fetch_status = 0
begin
if @.list is not NULL -- if this is a userlist field, join in the list and
return the value (not the list id)
begin
select @.alias = 'u'+cast(@.joinum as varchar(3))
select @.join=@.join+' join dbo.'+@.list+' '+@.alias+' on
(ud.'+@.colname+'='+@.alias+'.tp_ID and ud.tp_Siteid='+@.alias+'.tp_SiteID)'
select @.cmd=@.cmd+', '''+@.name+'''='+@.alias+'.tp_'+@.showfld
select @.joinum=@.joinum+1
end
else
begin
if left(@.colname, 5) = 'ntext' select @.colname = 'cast('+@.colname+' as
varchar('+cast(@.txtlen as varchar(4))+'))'
select @.cmd=@.cmd+', '''+@.name+'''='+@.colname
end
fetch next from crs into @.name, @.colname, @.list, @.showfld
end
close crs
deallocate crs
select @.cmd=@.cmd+' from dbo.UserData ud join dbo.UserInfo u1 on
(ud.tp_Author=u1.tp_ID and ud.tp_Siteid=u1.tp_SiteID) '+@.join
select @.cmd=@.cmd+' order by ud.tp_ID'
Cheers
Mitch
"j schuetz" wrote:
> Sorry - I can't help you with this one.
> "Maarten Visser" wrote:
> > Judith.
> >
> > Thanks for the information, I understand your solution.
> > But, like you are saying.. ' It is a bit of a guesswork'.
> >
> > I have to build a solution for a customer, where end users have to build
> > reports and the manipulation of data has to be as easy as possible. Because
> > of this, i was thinking to use WSS as a front-end for data input and
> > Reporting Services for generating reports on this data.
> >
> > I'm afraid the given solution would not work in this case, because the user
> > needs to be able to add columns (in WSS) and the report should than easily be
> > adapted by the user to show this column. (It would be best if the report
> > automatically showed the extra column).
> >
> > Could the ADO.Net extensibility of Reporting Services do something here..
> > Would it be possible to build a webservice that gets the information from
> > Sharepoint and let Reporting Services build reports based on the data (rows)
> > that this webservice provides?
> >
> > Tnx.
> > Maarten
> >
> >
> > I'm afraid the given solution would not work in this case, because the user
> > needs to be able to add columns and the report should than easely be adapted
> > by the user to show this column. (It would be best if the report
> > automatecally showed the extra column).
> >
> >
> >
> > "j schuetz" wrote:
> >
> > > Dear Maarten
> > >
> > > Yes, you can generate a report from data of WSS - although it is a bit of a
> > > guesswork. WSS saves all user data in one table only (called UserData). You
> > > will have to filter the right data from this table. In order to know what to
> > > filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> > > WSS-List on which you want to base your report. In order to find this
> > > tp_ListId you have to search first in the Sites table for the tp_ID of the
> > > site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> > > And finally, with the ID of the subweb you can look up the ID of the WSS list
> > > in the Lists table.
> > >
> > > The next step will be to identify the fields for the identified list. There
> > > is only one way: make a print screen from the WSS-list and scroll the list
> > > date in the UserData table in order to find the fields that store the WSS
> > > list data.
> > >
> > > Furthermore, I have found it easiest to define different views on the
> > > UserData table and to work with this views in Reporting Services (not
> > > directly with the UserData table). In the view, you can rename the fields of
> > > the UserData table with aliases that are the names of the columns of the WSS
> > > list.
> > >
> > > A last hint: you can display reports in WSS. Just define a WSS page with a
> > > webpart aerea and give this webpart the reportserver link of the report you
> > > want to show. It works fine.
> > >
> > > Good luck - Judith Schuetz (www.osn.ch)
> > >
> > >
> > > "Maarten Visser" wrote:
> > >
> > > >
> > > > I was wondering if it would be possible to generate reports directly from
> > > > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> > > >
> > > > tnx
> > > >
> > > > -= Maximizing Creativity and Productivity =-|||I was negligent in noting that;
This posting is provided "AS IS" with no warranties, and confers no rights.
Now that the lawyers are happy - have fun... :-)
"Mitch vH [MSFT]" wrote:
> This is a fragment from a sp I wrote for a customer that ought to get you
> started...
> declare @.tbl table(DisplayName varchar(100), ColName varchar(100), List
> varchar(20), ShowFld varchar(100))
> select top 1 @.flds=cast(tp_Fields as varchar(8000))
> from dbo.Lists
> where <-- some selection clause -->
> select @.flds = '<root>'+@.flds+'</root>' -- surround field list with top
> level node, otherwise DOM throws error
> exec sp_xml_preparedocument @.hnd output, @.flds
> insert into @.tbl
> select *
> from openxml(@.hnd, N'/root/Field') with (DisplayName varchar(100), ColName
> varchar(100), List varchar(20), ShowField varchar(100))
> where DisplayName is not null
> exec sp_xml_removedocument @.hnd
> select @.cmd='select "ID"=ud.tp_ID, Created=ud.tp_Created,
> Modified=ud.tp_Modified, Author=u1.tp_Title'
> declare crs cursor for select DisplayName, ColName, List, ShowFld from @.tbl
> open crs
> fetch next from crs into @.name, @.colname, @.list, @.showfld
> select @.joinum=2, @.join=''
> while @.@.fetch_status = 0
> begin
> if @.list is not NULL -- if this is a userlist field, join in the list and
> return the value (not the list id)
> begin
> select @.alias = 'u'+cast(@.joinum as varchar(3))
> select @.join=@.join+' join dbo.'+@.list+' '+@.alias+' on
> (ud.'+@.colname+'='+@.alias+'.tp_ID and ud.tp_Siteid='+@.alias+'.tp_SiteID)'
> select @.cmd=@.cmd+', '''+@.name+'''='+@.alias+'.tp_'+@.showfld
> select @.joinum=@.joinum+1
> end
> else
> begin
> if left(@.colname, 5) = 'ntext' select @.colname = 'cast('+@.colname+' as
> varchar('+cast(@.txtlen as varchar(4))+'))'
> select @.cmd=@.cmd+', '''+@.name+'''='+@.colname
> end
> fetch next from crs into @.name, @.colname, @.list, @.showfld
> end
> close crs
> deallocate crs
> select @.cmd=@.cmd+' from dbo.UserData ud join dbo.UserInfo u1 on
> (ud.tp_Author=u1.tp_ID and ud.tp_Siteid=u1.tp_SiteID) '+@.join
> select @.cmd=@.cmd+' order by ud.tp_ID'
> Cheers
> Mitch
> "j schuetz" wrote:
> > Sorry - I can't help you with this one.
> >
> > "Maarten Visser" wrote:
> >
> > > Judith.
> > >
> > > Thanks for the information, I understand your solution.
> > > But, like you are saying.. ' It is a bit of a guesswork'.
> > >
> > > I have to build a solution for a customer, where end users have to build
> > > reports and the manipulation of data has to be as easy as possible. Because
> > > of this, i was thinking to use WSS as a front-end for data input and
> > > Reporting Services for generating reports on this data.
> > >
> > > I'm afraid the given solution would not work in this case, because the user
> > > needs to be able to add columns (in WSS) and the report should than easily be
> > > adapted by the user to show this column. (It would be best if the report
> > > automatically showed the extra column).
> > >
> > > Could the ADO.Net extensibility of Reporting Services do something here..
> > > Would it be possible to build a webservice that gets the information from
> > > Sharepoint and let Reporting Services build reports based on the data (rows)
> > > that this webservice provides?
> > >
> > > Tnx.
> > > Maarten
> > >
> > >
> > > I'm afraid the given solution would not work in this case, because the user
> > > needs to be able to add columns and the report should than easely be adapted
> > > by the user to show this column. (It would be best if the report
> > > automatecally showed the extra column).
> > >
> > >
> > >
> > > "j schuetz" wrote:
> > >
> > > > Dear Maarten
> > > >
> > > > Yes, you can generate a report from data of WSS - although it is a bit of a
> > > > guesswork. WSS saves all user data in one table only (called UserData). You
> > > > will have to filter the right data from this table. In order to know what to
> > > > filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> > > > WSS-List on which you want to base your report. In order to find this
> > > > tp_ListId you have to search first in the Sites table for the tp_ID of the
> > > > site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> > > > And finally, with the ID of the subweb you can look up the ID of the WSS list
> > > > in the Lists table.
> > > >
> > > > The next step will be to identify the fields for the identified list. There
> > > > is only one way: make a print screen from the WSS-list and scroll the list
> > > > date in the UserData table in order to find the fields that store the WSS
> > > > list data.
> > > >
> > > > Furthermore, I have found it easiest to define different views on the
> > > > UserData table and to work with this views in Reporting Services (not
> > > > directly with the UserData table). In the view, you can rename the fields of
> > > > the UserData table with aliases that are the names of the columns of the WSS
> > > > list.
> > > >
> > > > A last hint: you can display reports in WSS. Just define a WSS page with a
> > > > webpart aerea and give this webpart the reportserver link of the report you
> > > > want to show. It works fine.
> > > >
> > > > Good luck - Judith Schuetz (www.osn.ch)
> > > >
> > > >
> > > > "Maarten Visser" wrote:
> > > >
> > > > >
> > > > > I was wondering if it would be possible to generate reports directly from
> > > > > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> > > > >
> > > > > tnx
> > > > >
> > > > > -= Maximizing Creativity and Productivity =-|||I'm reviewing this... sounds promising:
http://www.teuntostring.net/blog/2006/03/update-reporting-over-sharepoint-lists.html
"Maarten Visser" wrote:
> Judith.
> Thanks for the information, I understand your solution.
> But, like you are saying.. ' It is a bit of a guesswork'.
> I have to build a solution for a customer, where end users have to build
> reports and the manipulation of data has to be as easy as possible. Because
> of this, i was thinking to use WSS as a front-end for data input and
> Reporting Services for generating reports on this data.
> I'm afraid the given solution would not work in this case, because the user
> needs to be able to add columns (in WSS) and the report should than easily be
> adapted by the user to show this column. (It would be best if the report
> automatically showed the extra column).
> Could the ADO.Net extensibility of Reporting Services do something here..
> Would it be possible to build a webservice that gets the information from
> Sharepoint and let Reporting Services build reports based on the data (rows)
> that this webservice provides?
> Tnx.
> Maarten
>
> I'm afraid the given solution would not work in this case, because the user
> needs to be able to add columns and the report should than easely be adapted
> by the user to show this column. (It would be best if the report
> automatecally showed the extra column).
>
> "j schuetz" wrote:
> > Dear Maarten
> >
> > Yes, you can generate a report from data of WSS - although it is a bit of a
> > guesswork. WSS saves all user data in one table only (called UserData). You
> > will have to filter the right data from this table. In order to know what to
> > filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> > WSS-List on which you want to base your report. In order to find this
> > tp_ListId you have to search first in the Sites table for the tp_ID of the
> > site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> > And finally, with the ID of the subweb you can look up the ID of the WSS list
> > in the Lists table.
> >
> > The next step will be to identify the fields for the identified list. There
> > is only one way: make a print screen from the WSS-list and scroll the list
> > date in the UserData table in order to find the fields that store the WSS
> > list data.
> >
> > Furthermore, I have found it easiest to define different views on the
> > UserData table and to work with this views in Reporting Services (not
> > directly with the UserData table). In the view, you can rename the fields of
> > the UserData table with aliases that are the names of the columns of the WSS
> > list.
> >
> > A last hint: you can display reports in WSS. Just define a WSS page with a
> > webpart aerea and give this webpart the reportserver link of the report you
> > want to show. It works fine.
> >
> > Good luck - Judith Schuetz (www.osn.ch)
> >
> >
> > "Maarten Visser" wrote:
> >
> > >
> > > I was wondering if it would be possible to generate reports directly from
> > > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> > >
> > > tnx
> > >
> > > -= Maximizing Creativity and Productivity =-|||Do you know if this will be valid for the new version of WSS(v3)?
"Mitch vH [MSFT]" wrote:
> This is a fragment from a sp I wrote for a customer that ought to get you
> started...
> declare @.tbl table(DisplayName varchar(100), ColName varchar(100), List
> varchar(20), ShowFld varchar(100))
> select top 1 @.flds=cast(tp_Fields as varchar(8000))
> from dbo.Lists
> where <-- some selection clause -->
> select @.flds = '<root>'+@.flds+'</root>' -- surround field list with top
> level node, otherwise DOM throws error
> exec sp_xml_preparedocument @.hnd output, @.flds
> insert into @.tbl
> select *
> from openxml(@.hnd, N'/root/Field') with (DisplayName varchar(100), ColName
> varchar(100), List varchar(20), ShowField varchar(100))
> where DisplayName is not null
> exec sp_xml_removedocument @.hnd
> select @.cmd='select "ID"=ud.tp_ID, Created=ud.tp_Created,
> Modified=ud.tp_Modified, Author=u1.tp_Title'
> declare crs cursor for select DisplayName, ColName, List, ShowFld from @.tbl
> open crs
> fetch next from crs into @.name, @.colname, @.list, @.showfld
> select @.joinum=2, @.join=''
> while @.@.fetch_status = 0
> begin
> if @.list is not NULL -- if this is a userlist field, join in the list and
> return the value (not the list id)
> begin
> select @.alias = 'u'+cast(@.joinum as varchar(3))
> select @.join=@.join+' join dbo.'+@.list+' '+@.alias+' on
> (ud.'+@.colname+'='+@.alias+'.tp_ID and ud.tp_Siteid='+@.alias+'.tp_SiteID)'
> select @.cmd=@.cmd+', '''+@.name+'''='+@.alias+'.tp_'+@.showfld
> select @.joinum=@.joinum+1
> end
> else
> begin
> if left(@.colname, 5) = 'ntext' select @.colname = 'cast('+@.colname+' as
> varchar('+cast(@.txtlen as varchar(4))+'))'
> select @.cmd=@.cmd+', '''+@.name+'''='+@.colname
> end
> fetch next from crs into @.name, @.colname, @.list, @.showfld
> end
> close crs
> deallocate crs
> select @.cmd=@.cmd+' from dbo.UserData ud join dbo.UserInfo u1 on
> (ud.tp_Author=u1.tp_ID and ud.tp_Siteid=u1.tp_SiteID) '+@.join
> select @.cmd=@.cmd+' order by ud.tp_ID'
> Cheers
> Mitch
> "j schuetz" wrote:
> > Sorry - I can't help you with this one.
> >
> > "Maarten Visser" wrote:
> >
> > > Judith.
> > >
> > > Thanks for the information, I understand your solution.
> > > But, like you are saying.. ' It is a bit of a guesswork'.
> > >
> > > I have to build a solution for a customer, where end users have to build
> > > reports and the manipulation of data has to be as easy as possible. Because
> > > of this, i was thinking to use WSS as a front-end for data input and
> > > Reporting Services for generating reports on this data.
> > >
> > > I'm afraid the given solution would not work in this case, because the user
> > > needs to be able to add columns (in WSS) and the report should than easily be
> > > adapted by the user to show this column. (It would be best if the report
> > > automatically showed the extra column).
> > >
> > > Could the ADO.Net extensibility of Reporting Services do something here..
> > > Would it be possible to build a webservice that gets the information from
> > > Sharepoint and let Reporting Services build reports based on the data (rows)
> > > that this webservice provides?
> > >
> > > Tnx.
> > > Maarten
> > >
> > >
> > > I'm afraid the given solution would not work in this case, because the user
> > > needs to be able to add columns and the report should than easely be adapted
> > > by the user to show this column. (It would be best if the report
> > > automatecally showed the extra column).
> > >
> > >
> > >
> > > "j schuetz" wrote:
> > >
> > > > Dear Maarten
> > > >
> > > > Yes, you can generate a report from data of WSS - although it is a bit of a
> > > > guesswork. WSS saves all user data in one table only (called UserData). You
> > > > will have to filter the right data from this table. In order to know what to
> > > > filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> > > > WSS-List on which you want to base your report. In order to find this
> > > > tp_ListId you have to search first in the Sites table for the tp_ID of the
> > > > site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> > > > And finally, with the ID of the subweb you can look up the ID of the WSS list
> > > > in the Lists table.
> > > >
> > > > The next step will be to identify the fields for the identified list. There
> > > > is only one way: make a print screen from the WSS-list and scroll the list
> > > > date in the UserData table in order to find the fields that store the WSS
> > > > list data.
> > > >
> > > > Furthermore, I have found it easiest to define different views on the
> > > > UserData table and to work with this views in Reporting Services (not
> > > > directly with the UserData table). In the view, you can rename the fields of
> > > > the UserData table with aliases that are the names of the columns of the WSS
> > > > list.
> > > >
> > > > A last hint: you can display reports in WSS. Just define a WSS page with a
> > > > webpart aerea and give this webpart the reportserver link of the report you
> > > > want to show. It works fine.
> > > >
> > > > Good luck - Judith Schuetz (www.osn.ch)
> > > >
> > > >
> > > > "Maarten Visser" wrote:
> > > >
> > > > >
> > > > > I was wondering if it would be possible to generate reports directly from
> > > > > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> > > > >
> > > > > tnx
> > > > >
> > > > > -= Maximizing Creativity and Productivity =-|||Hi,
In case you are interested, we have developped a Reporting Services Data
Extension for SharePoint. An evaluation version is available on our web site
at http://www.enesyssoftware.com/Default.aspx?tabid=56.
If you would like to develop it from scratch, the article from Teun Duynstee
is surely the way to go.
--
Frederic Latour
Enesys
http://www.enesyssoftware.com
"Bob C." wrote:
> I'm reviewing this... sounds promising:
> http://www.teuntostring.net/blog/2006/03/update-reporting-over-sharepoint-lists.html
> "Maarten Visser" wrote:
> > Judith.
> >
> > Thanks for the information, I understand your solution.
> > But, like you are saying.. ' It is a bit of a guesswork'.
> >
> > I have to build a solution for a customer, where end users have to build
> > reports and the manipulation of data has to be as easy as possible. Because
> > of this, i was thinking to use WSS as a front-end for data input and
> > Reporting Services for generating reports on this data.
> >
> > I'm afraid the given solution would not work in this case, because the user
> > needs to be able to add columns (in WSS) and the report should than easily be
> > adapted by the user to show this column. (It would be best if the report
> > automatically showed the extra column).
> >
> > Could the ADO.Net extensibility of Reporting Services do something here..
> > Would it be possible to build a webservice that gets the information from
> > Sharepoint and let Reporting Services build reports based on the data (rows)
> > that this webservice provides?
> >
> > Tnx.
> > Maarten
> >
> >
> > I'm afraid the given solution would not work in this case, because the user
> > needs to be able to add columns and the report should than easely be adapted
> > by the user to show this column. (It would be best if the report
> > automatecally showed the extra column).
> >
> >
> >
> > "j schuetz" wrote:
> >
> > > Dear Maarten
> > >
> > > Yes, you can generate a report from data of WSS - although it is a bit of a
> > > guesswork. WSS saves all user data in one table only (called UserData). You
> > > will have to filter the right data from this table. In order to know what to
> > > filter, you will have to identify the tp_ListId (uniqueidentifier) of the
> > > WSS-List on which you want to base your report. In order to find this
> > > tp_ListId you have to search first in the Sites table for the tp_ID of the
> > > site. With this ID you can look up the tp_ID of the subweb in the Webs table.
> > > And finally, with the ID of the subweb you can look up the ID of the WSS list
> > > in the Lists table.
> > >
> > > The next step will be to identify the fields for the identified list. There
> > > is only one way: make a print screen from the WSS-list and scroll the list
> > > date in the UserData table in order to find the fields that store the WSS
> > > list data.
> > >
> > > Furthermore, I have found it easiest to define different views on the
> > > UserData table and to work with this views in Reporting Services (not
> > > directly with the UserData table). In the view, you can rename the fields of
> > > the UserData table with aliases that are the names of the columns of the WSS
> > > list.
> > >
> > > A last hint: you can display reports in WSS. Just define a WSS page with a
> > > webpart aerea and give this webpart the reportserver link of the report you
> > > want to show. It works fine.
> > >
> > > Good luck - Judith Schuetz (www.osn.ch)
> > >
> > >
> > > "Maarten Visser" wrote:
> > >
> > > >
> > > > I was wondering if it would be possible to generate reports directly from
> > > > Windows Sharepoint Services (WSS) Lists or from the output of a Webservice?
> > > >
> > > > tnx
> > > >
> > > > -= Maximizing Creativity and Productivity =-

Reporting on Exchange Emails

Is it possible tpo query exchange directly from reporting services or ... how do i extract data out of exchange into a sql database so i can report on it with RS.

Any ideas anyone..

CheersThere is an OLE DB provider for Exchange that is built into Exchnage and one for HTTP DAV somewhere (I think it is called 'OLE DB for Internet Publishing') but I can't remember where to find it right now.

There are also some third party products that extract statistical information from Exchange (Microsoft Operations Manager http://www.microsoft.com/mom/default.mspx and Exchange Reporter at http://www.ssw.com.au/ssw/ExchangeReporter/ are two that come to mind).