SSRS Atom Data Feed With No Identifier - reporting-services

I'm trying to follow the SSRS documentation to build an Atom-Compliant data feed based off of one of my reports.
Environment: SSRS 2012 Integrated into Sharepoint 2013
Report: Contains Map and Tablix (both should generate data feeds)
I understand that you have to download the atom service document and that it should contain the data feed URL but I'm stuck because the URLs in the service doc do not have an ID like the documentation says that they will. Instead the URL ends with:
Command=Render&rs%3AFormat=ATOM&rc%3AItemPath=Tablix1
Which just runs the report if I try to navigate to this link.
Full service doc:
<?xml version="1.0" encoding="UTF-8"?>
<service xmlns="http://www.w3.org/2007/app" xmlns:app="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
<workspace>
<atom:title>Countries.rdl</atom:title>
<collection href="https://hr.company.com/dashboards/gwa/_vti_bin/ReportServer?https%3a%2f%2fhr.company.com%2fdashboards%2fgwa%2fexec-DEV%2fReports%2fOverview+Reports%2fCountries.rdl&rs%3ACommand=Render&rs%3AFormat=ATOM&rc%3AItemPath=Map2.Map2_PolygonLayer1_Group">
<atom:title>Map2</atom:title>
</collection>
<collection href="https://hr.company.com/dashboards/gwa/_vti_bin/ReportServer?https%3a%2f%2fhr.company.com%2fdashboards%2fgwa%2fexec-DEV%2fReports%2fOverview+Reports%2fCountries.rdl&rs%3ACommand=Render&rs%3AFormat=ATOM&rc%3AItemPath=Tablix1">
<atom:title>Tablix1</atom:title>
</collection>
</workspace>
</service>
How can I generate the Atom Feed ID????

It appears that there isn't an atom identifier due to the fact that there is no device setting for ATOM in rsreportserver.config file.

Related

Pull data from reference tables (displayed in XML format) and store it in another XML file

I want to link a reference table, (given to me in XML format via link, from a remote server) into another XML file.
For example
<reference>
<listName>countries</listName>
<itemCount>191</itemCount>
<item type="Country" row="1">
<id>1104</id>
<name>TURKEY</name>
</item>
</reference> <!-- Added by edit -->
The thing is that every single item is in different XML, with different link. So I need to link them all and, (in a way) filter the information in a new XML, which to then import to Word Press.
If not XML to XML, then XML to JSON or CSV is ok. Or if there is an software to help me do this.
Thank you in advance.
The best way is to use some online tool where you can load data from URL i found one editor you can use that or use some similar online tool.
Online Ide for xml to json

Custom translator cannot extract contents of XLIFF file

The XLIFF (version 2.0) files I upload for training the custom translator always come up with the same error: "Failed to extract the contents of the uploaded file."
I used a schema to ensure the formatting of the file is correct and simplified it to 1 translation but it still doesn't work. This is what the file looks like:
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en-US" trgLang="es-ES">
<file id="f1" original="Graphic Example.psd">
<skeleton href="Graphic Example.psd.skl"/>
<unit id="1">
<segment>
<source>Calculating...</source>
<target>Calculando...</target>
</segment>
</unit>
</file>
</xliff>
We don't currently support Xliff 2.0. It's something that we want to add in very soon, but currently we only support version 1.2 and older.

Is it possible to access a html outside of webapp?

I have a process to generate html file dynamically, but i dont want to place those html files under the webapp, because if the project are re-deployed, I have to deal with the existing html files(copy out and copy in).
So I'm just wondering if I can place the html files outside of the webapp.
If not, is there any other proper way to meet the requriement?
I'm using tomcat.
Appropriate your help.
Create below dir if not exist:
${CATALINA_HOME}/conf/Catalina/localhost
Create a xml file "article.xml", place the xml under the above path as follows.
${CATALINA_HOME}/conf/Catalina/localhost/article.xml
Add below content to the xml.
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/article" docBase="C:/apps/blog/article" debug="0"
reloadable="true" privileged="true">
</Context>
Start tomcat.
If there's aa.html under the C:/apps/blog/article, use http://localhost:8080/article/aa.html to access the html.
NOTE:
1. Tomcat will take the xml as an web application, and load the resource configed in the xml.
2. No need to create WEB-INF and META-INF for the external folder(C:/apps/blog/article here).

SSRS - Upload Data Source after Report

I'm creating an MVC application which uses the Reporting Web service (2010) for programatically managing reports and data sources.
About a month or so ago when I first implemented this functionality, I was able to upload reports (.rdl files) first and later upload its data source.
I was then able to view the report using a report viewer control in a web page.
However, since a week or so, this flow has broken, i.e. if I upload the report first and then the data source, the report doesn't render in the report viewer control. It gives the following error.
The report server cannot process the report or shared dataset.
The shared data source 'AW' for the report server or SharePoint site is not valid.
Browse to the server or site and select a shared data source.
The data source is a shared data source which is defined in the rdl file as follows.
<DataSources>
<DataSource Name="AW">
<DataSourceReference>AW</DataSourceReference>
</DataSource>
</DataSources>
If I reverse the flow, i.e. upload the data source first and then the report, it starts working!
But I'm 100% sure, the other flow used to work when I first implemented it.
I'm stumped as to why the original flow has stopped working.
Both the report and the data source are uploaded to a specific folder.
Can someone please shed some light on this.
Does the original flow make sense? I mean is it supposed to work, or was I imagining stuff?
btw, the data source uploaded is in the following format
<?xml version="1.0" encoding="utf-8"?>
<DataSourceDefinition xmlns="http://schemas.microsoft.com/sqlserver/reporting/2006/03/reportdatasource">
<Extension>SQLAZURE</Extension>
<ConnectString>Data Source=xxx;Initial Catalog=AdventureWorks2012</ConnectString>
<UseOriginalConnectString>false</UseOriginalConnectString>
<OriginalConnectStringExpressionBased>false</OriginalConnectStringExpressionBased>
<CredentialRetrieval>Store</CredentialRetrieval>
<WindowsCredentials>false</WindowsCredentials>
<ImpersonateUser>false</ImpersonateUser>
<UserName>user</UserName>
<Password>pass</Password>
<Enabled>True</Enabled>
</DataSourceDefinition>
and I use the ReportingService2010.CreateCatalogItem method for creating both the report and the data source.
Any help is highly appreciated.
Perhaps, my case may be useful for you. I had a task to upload reports from rdl-files to SSRS2012 before application server start. I decided to use Web Service API, not rs.exr.
After report loading by method CreateCatalogItem of class ReportingService2010 I tried to execute reports in browser and got error. SSRS could not find shared data source for loaded report. When I published reports from VS2013, reports worked properly. I could not use method SetItemDataSources , because could not get the reference to existing data source as instance of DataSource class. That is why I found following solution. The idea in that the rdl-file has only name of shared data source, not path. Therefore, if report and its data source are located in different folder, report don’t see data source. In my case my data source located in folder “Data Sources”, so it’s necessary to correct rdl-file before uploading,, as shown below:
Warning[] warnings = null;
string name = "ProductList";
string dsName = "DB_CORE";
string dsFolderPath = "/Data Sources";
byte[] definition = null;
// correct rdl
XmlDocument rdlDoc = new XmlDocument();
rdlDoc.Load(+ name + ".rdl");
XmlNodeList dsRefmodes = rdlDoc.GetElementsByTagName("DataSourceReference");
dsRefmodes[0].InnerText = dsFolderPath + "/" + dsName;
definition = Encoding.UTF8.GetBytes(rdlDoc.OuterXml);
// upload
CatalogItem report = rs.CreateCatalogItem("Report", name, "/" + parent,
true, definition, null, out warnings);

Local XSL reference within XML-File

First a short task description:
There is an XML file which references a xsl stylesheet which is within a *.dll.
The beginning of this XML looks as follows:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='res://name_xsl.dll/frameset.xsl'?>
This xml file can be opened and displayed as an HTML within Internet Explorer and only IE.
(The xsl transform the xml to html)
As you can see it references the win32 system folder, in which the dll file is saved.
Referencing with "res://" does work.
But now I do not want to store my dll within the system folder, but under a different folder lets say %ALLUSERSPROFILE% (environment variable) which e.g. on Windows XP is C:\Documents and Settings\All Users or on Win7 C:\Users\Public (Not sure about that one).
How do I reference to the dll lying in that folder?
Is it possible to do this using environment variables, such that it is system independent?
What solution would you recommend.
(All html, xsl data is saved locally within the dll on the local computer.)
So far I have tried to change the reference line to the following:
<?xml-stylesheet type='text/xsl' href='file:///c:/Documents and Settings/All Users/name_xsl.dll/frameset.xsl'?>
I have also tried the same with the root folder c: and even without absolute path having all files (xml and dll) in the same folder.
All attempts without res:// resulted in the following error message:
The system cannot locate the resource specified.
Error processing resource 'file:///C:/Documents and Settings/All Users/name_xsl.dll/...
or 'file:///C:/name_xsl.dll/frameset.xsl'
Could you help me out? Why it does not find the file?
(filenames are fictive)
This is the solution:
<?xml-stylesheet type='text/xsl' href='res://C:%5CDocuments and Settings%5CAll Users%5Cname_xsl.dll/frameset.xsl'?>
Notes:
You MUST use the res:// protocol to access a resource within a file.
File system backslashes can be encoded as %5C . Possibly forward slashes will work as well.
Example:
I tested this example for the file:// protocol, but it should work the same way as the res: protocol. On my system, I have a text file located at:
C:\Program Files\CodeGear\Delphi for PHP\2.0\privacy.txt
I can access this file, by putting into the nav bar of the Windows File Explorer:
file:///%ProgramFiles%/CodeGear/Delphi for PHP/2.0/privacy.txt
Notice backslashes converted to forward slashes, and no need to escape spaces. This has been tested and it works. The equivalent on the res protocol had not been tested, but it should work the same way, except of course that the res protocol is slightly different in that it also includes a resource index number.
Refer http://msdn.microsoft.com/en-us/library/ie/aa767740(v=vs.85).aspx for syntax.