1

Scenario:

I have two custom visualforce pages called, reportlist and reportshow. The reportlist does not accept parameters and opens via an app's tab in salesforce classic. The reportlist displays a table and each row has a link that opens the reportshow visualforce page with specific parameters (not URL hacks).

Also, reportshow uses third-party scripts via static resource and relies on the custom parameters for loading salesforce reports. Without parameters, reportshow will return an error.

Problem:

When I switch to lightning experience, reportlist seems to load fine, but the table links that open reportshow ends up displaying the following:

URL No Longer Exists
You have attempted to reach a URL that no longer exists on salesforce.com.

Observations:

I noticed the following difference after trying to open a reportshow:

  1. The fqdn is different on the error page compared to the url when I hover in the reportlist.
  2. The path /apex/ became /one/.

[Sample hover link]

https://ns-dev-ed--ns.na30.visual.force.com/apex/reportshow?id=00O36000002TXfdEAG&reportName=TestReport

[Sample URL in address bar of error page]

https://ns-dev-ed.my.salesforce.com/one/reportshow?id=00O36000002TXfdEAG&reportName=TestReport

Attempted fixes:

I tried prefixing apex/ to the href value in the reportlist, but hovering on the links now displays /apex/apex/ and clicking it leads me to URL No Longer Exists.

I also tried adding target="_blank" and it works as expected minus the lightning experience.

Question:

How do I open the reportshow visualforce page in lightning experience?

5

This looks to be a namespace issue similar to the one described here - currently in review.

It can be reproduced using these steps as mentioned on the link

  • Create an namespace on your Developer Org and a Managed Package
  • Add the two Visualforce Pages to the package and upload it copying the link
  • Log into another organization and install the package.
  • Override the Account View with TestPage1 and then switch to Lightning Experience.
  • Navigate to any Account page and click on either the A href link or OutputLink, clicking OutputLink will work as expected maintaining the correct namespace, clicking on A href link will navigate to your default org namespace which results in either URL "No Longer Exists" or "Page namespace__TestPage1 does not exist". (Behavior varies on how the page will display)

The suggested workaround is not ideal, but it works

1) Right click on the link and select "Open Link in New Tab";
2) Disable Lightning Experience;
3) Change the tag references to make use of the Visualforce tag

  • This answer has solved my problem because it showed me about using the managed <apex:outputLink> in place of the unmanaged <a>. As a result, the links in the reportlist are converted for Lightning Experience, while in Classic it remains the same. Here is a sample converted link: javascript:srcUp('https%3A%2F%2Fns-dev-ed--ns.na30.visual.force.com%2Fapex%2Freportshow%3Fid%3D00O36000002TXfdEAG%26reportName%3DTestingReport%26isdtp%3Dp1'); – Bryan Jun 24 '16 at 21:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.