Tree User Exit Changes
Since the XSLT user exits are now callout functions, five tree user exits need to be coded differently. The main purpose of these five user exits is to change a variable's value. The analogous new XSLT user exits return the desired value instead.
The user exits have been renamed to more accurately reflect their new function. Below is a comparison of names and purpose of JSP-based user exits versus XSLT-based user exits.
JSP name
Main purpose
XSLT name
Main purpose
setServiceIndex
Sets the desired serviceIndex variable.
overrideServiceIndex
Returns the desired index of the service.
setNavKey
Sets the desired newNavKey variable.
overrideNavKey
Returns the desired nav key.
setNavKeyIndex
Sets the desired navKeyIndex variable.
overrideNavKeyIndex
Returns the desired index of the nav key.
setImageOpenIndex
Sets the desired imageIndex variable.
overrideImageOpenIndex
Returns the desired index of the open image.
setImageClosedIndex
Sets the desired imageIndex variable.
overrideImageClosedIndex
Returns the desired index of the closed index.
Each user exit is passed the variable's original value. If the user exit does not return a value, the original variable's value will be used.
Below is an example of a JSP user exit and a converted XSLT user exit inside an .xjs file.
Here is the JSP user exit.


// $#BSES SETSERVICE
if (nodeName == 'newtype') {
   var myLetter = pageKeys.FT_TYPE.substr(0,1);
   if (myLetter == 'A') {
     serviceIndex = 1;
   }
   if (myLetter == 'B') {
     serviceIndex = 2;
   }
   if (myLetter == 'C') {
     serviceIndex = 3;
   }
   if (myLetter == 'P') {
     serviceIndex = 4;
   }
 }
// $#BSEE SETSERVICE

Here is the same user exit coded in an .xjs file:

function overrideServiceIndex(nodeName, services, pageKeys, serviceIndex) {
   var overrideIndex;
   if (nodeName == 'newtype') {
      var myLetter = pageKeys.FT_TYPE.substr(0,1);
      if (myLetter == 'A') {
        overrideIndex = 1;
      }
      if (myLetter == 'B') {
        overrideIndex = 2;
      }
      if (myLetter == 'C') {
        overrideIndex = 3;
      }
      if (myLetter == 'P') {
        overrideIndex = 4;
      }
   }
return overrideIndex;
}