Redirecting to external URL from script include
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-06-2019 01:08 PM
Hello everyone,
I have created a scoped application that feeds into a third party application via an API Rest Call. After the initial call is complete the requirements I am working with state they want the user to be redirected to an outside URL that will end with a unique value they will send me in the initial API calls response. I am getting this value and entering it on the record so it is usable. The problem I am having is that the redirect straight from the record producer is too fast. I can't seem to delay it for 3 seconds so that the third party can return the value I need so the link in the redirect will work. I am now trying a script include that looks like this:
var MyGlobalScopeUtils = Class.create();
MyGlobalScopeUtils.prototype = {
initialize: function() {
},
sleep: function (duration) {
gs.sleep(duration);
},
type: 'MyGlobalScopeUtils'
};
In my record producer I have this script:
var globalUtils = new global.MyGlobalScopeUtils();
globalUtils.sleep(5000);
producer.redirect="https://service/exams/${current.x_unoci_rapid_retu_cover_sheet_link}";
Since I have put the first two lines in the redirect no longer works. Is there something I can do to fix this from the record producer or is there a way I can handle this redirect from the script include?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-06-2019 01:29 PM
Try this in your script include:
var url =YOUR_URL;
this.response.sendRedirect(url);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-06-2019 01:32 PM
Hi Stephan,
So something like this?
var MyGlobalScopeUtils = Class.create();
MyGlobalScopeUtils.prototype = {
initialize: function() {
},
sleep: function (duration) {
gs.sleep(duration);
var url = 'https://service/rapidReturn/exams/${current.x_unoci_rapid_retu_cover_sheet_link}';
this.response.sendRedirect(url);
},
type: 'MyGlobalScopeUtils'
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-06-2019 03:08 PM
Upon further review I am getting the following error when trying to call my script include
org.mozilla.javascript.EcmaError: "MyGlobalScopeUtils" is not defined.
Caused by error in <refname> at line 1
==> 1: var initialize = new MyGlobalScopeUtils();
2: initialize.sleep(5000);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-07-2019 05:41 PM
Hmm... Interesting. It may be additional utils are needed. Unfortunately there isn't much in the way of documentation for this function. Here's the header to a script I use the "response.sendRedirect()" command in:
gs.include('PrototypeServer');
gs.include('AbstractTransaction');
var MyScriptInclude = Class.create();
MyScriptInclude.prototype = Object.extendsObject(AbstractTransaction, {