Deploying extensions created by the web UI framework extensibility workbench using aJavaScript builder file

You can use a JavaScript Builder file to deploy differential extensions created using the Extensibility Workbench. You cannot use this procedure to deploy override extensions created using the Designer Workbench.

About this task

A JSB can be used if the base screen is launched through a JSB or through a JSB that uses a JavaScript library to render screens.

Note: UNIX/Linux file paths are used in the following procedure.

Procedure

  1. Install the application and build a WAR file for it.
    1. Deploy the WAR file on the server in the exploded format.
    2. Start the application server by passing the following argument:
      -Dwufdevmode=true
  2. Make sure that the changes made using the Extensibility Workbench have all the Java™ files generated and saved.
  3. In the INSTALL_DIR/extensions folder of your installation directory, create the following subdirectory:

    application package name/webpages

  4. In the webpages subdirectory, replicate the directory structure of the screen that you want to extend (relative to your deployment) and copy in all of the script files generated by the Extensibility Workbench.

    For example, if you extend the Manage Flight Route screen (which uses the file path application package name/flightRoute), you would copy all of the extension Java files into the INSTALL_DIR/extensions/application package name/webpages/application package name/flightRoute directory.

  5. Create a new JSB file in the same folder to launch these newly generated files. The ExtensionJSFile_overlays.js files should be included before the corresponding ExtensionJSFile.js files. You can use the JSB template of the Code Template Generator to create the code for this file. You would have to paste the code into the new file.
    Sample code for JSB:
    ?xml version="1.0" encoding="utf-8"? 
    project name="scuiIDE" 
                author="Your Company" 
        target name="flight_route" 
    !-- The name attribute in target is used to uniquely identify 
    this JSB in the application. It serves as its identifier.-- 
                file="/extn/stk/flightRoute/test-all.js"
                loadAfter="flightService" 
    !-- The loadAfter attribute in target is used to specify the 
    javascript library after which the current JSB should be rendered.--
                allowDynamicLoad="true" 
                debug="True" 
                shorthand="False"
                shorthand-list="" 
            include name="/extn/stk/flightRoute/test_overlays.js"/ 
            include name="/extn/stk/flightRoute/test.js"/ 
        /target
    /project
    
  6. Create a new servlet to register the new JSB file. The extn folder should be prefixed for LoadJSLibraryXml and loadIncrementalMashupExtnXml calls.
    Sample code for creating the servlet:
    package jsbCreator; 
    import javax.servlet.ServletConfig; 
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import
    com.sterlingcommerce.ui.web.framework.helpers.SCUIJSLibraryHelper;
    import
    com.sterlingcommerce.ui.web.framework.helpers.SCUIMashupHelper;
    public class CreateServlet extends HttpServlet { 
            private static final long serialVersionUID = 
    4693417985837892469L; 
            public synchronized void init(final ServletConfig config) 
    throws ServletException { 
                    //loads the JSB specified at the path
                    SCUIJSLibraryHelper.loadJSLibraryXml
    ("extn/stk/flightRoute/test.jsb", config.getServletContext()); 
                    //loads the mashup XML specified at the path
                    SCUIMashupHelper.loadIncrementalMashupExtnXml
    ("/extn/stk/flightRoute/test_mashup.xml", config.getServletContext()); 
            } 
    }
    
  7. Package the servlet into a JAR file.
  8. Update the web.xml file with your customizations.
  9. Relaunch the application to display the extended changes.

    The changes will appear overlaid on the base screen.