Next in series >>
We moved to patch 22.214.171.124 in order to address few product defects but ended up with another product defect that caused error for the fields used as external application links. Let me explain the functionality first
A field on applet should display as hyperlink. When clicked a new browser window with external URL should open. Few parameters such as Asset Number or Row Id should be passed in the URL.
Create a calculated field with URL as value along as mentioned below:
Name : Link to App
Value: “<a href=’http://externapp.domain.com/apppage?asset_num=” + [Asset Num] + “’ target=’_blank’>Link to App</a>”
In the Applet create a field with HTML Type = Link and HTML Display Mode = DontEncodeData mapped to the BC field you just created.
This will result in a field appearing as link in Applet and clicking on it will open a new window with specified URL and asset number passed as parameter to the URL.
Issue with patch 126.96.36.199:
After applying the patch 188.8.131.52 when you click on this link you start getting error
“Error occurred in the calculated field. Please contact your System Administrator”
Workaround Suggested by Oracle:
To overcome this problem Oracle suggests two possible workarounds:
- Move to Patch 184.108.40.206
- Browser Script
- Add a button to the applet.
- Use window.open in the browser script to open a new window
We were not in a position to implement both workarounds. So we ended up with third workaround that caused minimal change in user behavior.
- Create a drilldown object on the target field on which you want to create hyperlink
- On the browser script of the Applet write the following script
function Applet_PreInvokeMethod (name, inputPropSet)
var currBC ;
if(name == "Drilldown")
currBC = this.BusComp();
//get the url from calculated field
url = currBC.GetFieldValue("Link to App Calc");
//open new window
//stop the actual drilldown
This will cause a new browser window to popup with external url. This is not a perfect workaround though. It has following limitations
- The user has to actually select the record before clicking the link. If user directly clicks the link then value returned by calculated field is that of selected record.
- This script will not work if you have an actual drilldown defined on the applet or have links on multiple fields (as was the case with me).
I wrote a slightly different script to overcome the second limitation but there is no workaround for the first limitation. I will share the script that works for multiple fields in my next post.
Next in series >>