We are using SSRS (SQL Server 2012) in SharePoint (2013) integrated mode. The report uses 3 parameters, all of them using shared datasets. It appears that if you take longer than 30sec to select a parameter, after selecting the first one, even though you see all 3 parameter values selected, when you hit "Apply" the report doesn't run and all parameter values return to again.
Some research led me to this link Time-out values for shared datasets
but I'm unable to change the property "Edit Query execution time out" because I can not find it anywhere and I know that it would not have been set at all.
I have stumbled across the answer to the above issue that annoyed users for too long. We had to add a few lines of code to the file global.asax on our reporting web server and that fixed the issue for us.
<script runat="server">
protected void Application_BeginRequest()
{
if( FormsAuthentication.IsEnabled
&& Context.Request.RequestType == "POST"
&& Context.Request.Headers["x-requested-with"] == "XMLHttpRequest"
)
Context.Response.SuppressFormsAuthenticationRedirect = true;
}
</script>
Find the whole article here: SharePoint Authentication Redirect
Related
I am working on generating a report in episerver in the form of a scheduled job.This report is basically used to get all the contents(page types,blocks,media) within Episerver.
There are some good nuget packages for content usages but for some reason& to have more control & plans for tweeking & extending it further,i am creating a custom one rather than using the available 3rd party packages.
The scheduled job is kind of similar to
https://www.codeart.dk/blog/2018/12/content-report-generator/ .
The article helped me a lot to get my report working with some modifications as per my requirement.
The one thing that I am struggling here is to get the URL of where the block is. Now this is a point of debate here.
I am aware that the blocks being shared in nature can be used anywhere in a site but the point is they are still used in pages or as a matter of fact in other blocks which is turn is used on a page.What i am trying to say here is,they directly or indirectly are part of a page.So is there a way to get the page url of a block irrespective of how many pages they are in.
Every forum I have looked at ,there's always page url of Pagedata or mediadata & nothing on blockdata.Even 3rd party nuget packages that i have looked for does not have page url for block types.
I do understand that there is nothing out of the box here.Is there a way to achieve this ie get the page url of a specific block type which can be a list of page urls if the block is used in multiple pages.
Recursive function to reach the page:
private string GetPublicUrl(IContentRepository contentRepository, IContentSoftLinkRepository contentSoftLinkRepository, ContentReference contentReference)
{
var publicUrl = string.Empty;
var content = contentRepository.Get<IContent>(contentReference);
var referencingContentLinks = contentSoftLinkRepository.Load(content.ContentLink, true)
.Where(link => link.SoftLinkType == ReferenceType.PageLinkReference && !ContentReference.IsNullOrEmpty(link.OwnerContentLink))
.Select(link => link.OwnerContentLink);
foreach (var referencingContentLink in referencingContentLinks)
{
publicUrl = UrlResolver.Current.GetUrl(referencingContentLink.GetPublicUrl()) ?? GetPublicUrl(contentRepository, contentSoftLinkRepository, referencingContentLink);
}
return publicUrl;
}
I have written this recursive function to reach the page ,but this works only when there is a single level. For instance A 2Col block on a page.
If I have a block say Download Block which is on a 2Col block which in turn is on a page ,then in this case the url is empty.
Any input is appreciated.
With IContentSoftLinkRepository you can find where the blocks are used. You can check whether the SoftLink points to a page with SoftLink.SoftLinkType == PageLinkReference and then use IUrlResolver to get the page's URL.
I have an SSRS 2016 Report. When I run the report by clicking the report in the SSRS Site it runs fine. When I use the url to create the pdf like this:
http://vmbksa69901mdt/ReportServer_ssrs1p?/DAS/CDO_Suite/PortfolioHoldings&rs:Command=Render&ReportName=OCTAGO28_Portfolio_Holdings_pdf_1&rs:Format=PDF
It gives me the error:
The webpage at
http://vmbksa69901mdt/ReportServer_ssrs1p?/DAS/CDO_Suite/PortfolioHoldings&rs:Command=Render&ReportName=OCTAGO28_Portfolio_Holdings_pdf_1&rs:Format=PDF
might be temporarily down or it may have moved permanently to a new
web address. ERR_INVALID_RESPONSE
When I look at the view [dbo].[ExecutionLog3], it shows an error of rrRenderingError.
What's odd is that if I change the url and put the "format=Excel", it works fine. And then right away change it back to PDF it works fine.
So my guess is this is a timeout issue. Can anyone tell if that is a valid assumption? If it is, how do I go about changing that timeout? The underlying stored procedure for the report can take > 60s.
If it's not a timeout, how do I dig deeper into the logs to show me what the error really could be?
Issue solved: Turns out that it was an expression on my report:
="Portfolio Holdings Report as of " & Format(CDate(First(Fields!ReportParameterValue.Value, "AsOfDate")), "MM/d/yy")
When I took this off, the report ran fine. However I still needed this on my report, so I made a hidden parm, and set a default value from my AsOfDate Dataset. Then made the expression this:
="Portfolio Holdings Report as of " & Format(CDate(Parameters!AsOfDate.Value), "MM/d/yy")
Then all of my scheduled events went off without a hitch.
First of all, I'm really a begginer to Access. I have basic knowledge about databases ( running on SQL mostly ), so thanks for dumbing down the answers a bit.
The company I work for created a database using Access 2000 and built on it since then. They wish to use the newest version of Access instead of the 2003 one but want to keep the database as it is.
When the database ( .mdb file ) is opened with Access 2003, it opens on the Form called "Fiche Principale", and immediately gives the first entry of the database and all of its related informations. This is what the company wants to keep.
However, when opened with the new Access, it prompts a dialog box :
Enter Value Parameter :
Form!Fiche Recherche Contact!REFINTERNE
( REFINTERNE is an Id )
I looked it up online, there's a lot of issues related to the Enter Value Parameter dialog box, mostly people forgot ' " ' when using a string, or just some misspeling with parameter names. I checked that as best as I could, but it might still be an error like this.
Weird thing is, the database and forms are working fine on the old Access, so I tried converting the databse to a .accdb file but the problem remains.
I hope I'm clear enough, don't hesitate to ask question to clarify if needs be.
Thanks alot
EDIT : I found this code related to "Fiche Recherche Contact" :
Function rech2()
Forms![Fiche Principale].RecordSource = "Fiche Principale - Filtre Contacts"
'Forms![Fiche Recherche Contacts].RecordSource = ""
End Function
From what i can understand, "Fiche Recherche Contact" is a sub-form of "Fiche Principale".
EDIT : I know giving a precise answer will be difficult, so I'm more looking for a general direction in order to know where to look.
I am currently trying to track down a problem in another persons agent. The agent crashes when it performs a lookup with a certain view in another database (I do not have designer access to it). In order to see whats wrong I wanted to take a look at the view and see if its empty or not. Problem is that I only have the "real name" of the view and navigation in Notes only gives me the "display name" which is totally different.
I searched the entire client if is possible to navigate to the view by "real name" but I did not find anything. Does anyone know?
If you have a properly installed Notes client, and a version of Windows which includes PowerShell, you can do the following after you open a Powershell prompt:
$ns = New-Object -COM Lotus.NotesSession
$ns.Initialize()
$db = $ns.GetDatabase("Server", "Filepath")
$db.Views | sort Name | ft Name, Aliases -auto
If the Notes type library is properly installed, you should execute the first command without issues.
If the client is properly installed and you entered the right password, the Notes session should have been properly initialized.
If the server and filepath are correct, the third instruction should execute without issues.
If all goes well, you will get a sorted list of all the views in the database, with their corresponding aliases (I think you are referring to the alias of a view when you refer to the "real name").
Edit: I should clarify that "all the views in the database" only includes the views that are visible for you. The database ACL may block you from accessing some views.
You can use the NotesPeek tool. It will let you explore everything in the database that you have rights to see, using a tree-style UI.
I hope this two tips will help you:
Shortcuts to open also hidden views in the database:
How to display hidden views in a Notes/Domino database
Or if point 1. does not help you try to make a toolbar action with the following formula:
OpenView #Command
and then, open the database where you think the view is and run the toolbar action.
If you are not familiar how you can make toolbar action mabye this link will help you:
Customize toolbar functionality and buttons
You know view's "real name" (= alias).
Create a button or agent somewhere with following LotusScript code:
Dim workspace As New NotesUIWorkspace
Call workspace.OpenDatabase("yourServer", "yourDatabasePath", "yourViewRealName")
or with following formula:
#Command([FileOpenDatabase]; "yourServer" : "yourDatabasePath"; "yourViewRealName")
and execute it in Notes Client. It will open the view.
As an alternative, copy the database to Local with the option "Application design only" and without option "Access Control List" and explore it in Designer.
I am trying to make WatiN attach to an IE popup window (IE 10).
This popup contains a frameset --> a single frame --> a pdf document.
My goal is to save this pdf to my disk.
Dim winExists = IE.Exists(Of IE)(Find.ByUrl(Function(url) url.Contains("__ADFvDlg")))
If winExists Then 'this evaluates to true
Dim win = IE.AttachTo(Of IE)(Find.ByUrl(Function(url) url.Contains("__ADFvDlg"))) ' Timeout while waiting for frame document becoming available
End If
1) I have tried using the above code inline or in a STA thread
2) When coded inline, its parent thread is also STA
3) I have tried to increase the default timeout to 8 minutes, same result after 8 minutes have passed
There is no other option for me than to parse this particular popup, since it is a site built with Oracle ADF and, apart from the fact that it is A MESS, it is very strange at times...this popup has a URL that somehow works only once. If I try to use it in another window, no pdf is returned. The same happens when I refresh the popup.
I cannot fetch the PDF in the Temporary Internet Files since it is not there (I suppose this is because the website works under SSL).
Any guidelines or solutions even outside WatiN's scope is more than welcome since I've hit a brick wall.
Technologies: VS2012, WPF
Thanks a lot in advance.
I found it easiest when I tried the same thing by making the pop-up show up as a new tab. That way I could attach to it's URL. From there I would use
File.WriteAllText(fileName, responseDownLoad.Content.ReadAsStringAsync().Result);
Where responseDownload will be a HttpResponseMessage