Implementando extensões criadas pelo ambiente de trabalho de extensibilidade do Web UI Framework e pelo ambiente de trabalho do designer usando uma página do servidor Java

É possível implementar extensões que são criadas pela página do Web UI Framework Extensibility e Designer Workbench Java™ Server.

Sobre esta tarefa

Faça o seguinte para usar uma JSP (Java Server Page) para implementar extensões diferenciadas (modificadas com o Extensibility Workbench) ou extensões de substituição (criadas usando o Designer Workbench):

Nota: Caminhos do arquivo UNIX/Linux são usados no procedimento a seguir.

Procedimento

  1. Instale o aplicativo e construa um arquivo WAR para ele.
    1. Implemente o arquivo WAR no servidor no formato explodido.
    2. Após a implementação ser concluída, inicie o servidor de aplicativos.
  2. Certifique-se de que as mudanças feitas usando o Extensibility Workbench ou a nova tela criada usando o Designer Workbench tenham todos os arquivos JSON e JavaScript relevantes gerados e salvos..
  3. Na pasta INSTALL_DIR/extensions, crie o seguinte subdiretório:

    nome do pacote de aplicativos/páginas da Web.

  4. No subdiretório webpages, replique a estrutura de diretório da tela que deseja estender (relativo à sua implementação) e copie em todos os arquivos de script gerados pelo ambiente de trabalho.

    Por exemplo, se você estender a tela Manage Flight Route (que usa o caminho de arquivo application package name/flightRoute ), copiará todos os arquivos de script de extensão para o diretório INSTALL_DIR/extensions/applicationpackage name/webpages/application package name/flightRoute.

  5. Crie um arquivo JSP com o mesmo nome que o arquivo JSP base para ativar estes arquivos recém-criados na mesma pasta.
    Código de amostra do JSP original:
    <%@ taglib uri="/WEB-INF/scui.tld" prefix="scuitag" %>
    <jsp:include page="/stk/include.jsp">
        <jsp:param name="title" value="manage flight route" />
    </jsp:include>
    <script>
        Ext.ns("sc.stk");
        sc.stk.fn = function() {
            var fr = new sc.stk.flightRoute();
            sc.plat.ScreenTitle.setText(fr.Header, null, "sc-panel-belowmenu-text");
            sc.plat.ScreenTitle.setText(fr.Header, null, "sc-panel-belowmenu-desc");
            fr.render("mainBodyPanel");
        }
    <scuitag:includeJS
    name="['/stk/flightRoute/flightRouteList_config.js','/stk/flightRoute/flightRouteList.js',
    '/stk/flightRoute/flightRouteList_bundle.js']"
    callBack="sc.stk.fn"/>
    </script>
    <jsp:include page="/stk/footer.jsp">
    
    O código de amostra para o novo JSP (extensibilidade diferenciada):
    <%@ taglib uri="/WEB-INF/scui.tld" prefix="scuitag" %>
    <jsp:include page="/stk/include.jsp">
        <jsp:param name="title" value="manage flight route" />
    </jsp:include>
    <script>
        Ext.ns("sc.stk");
        sc.stk.fn = function() {
            var fr = new sc.stk.flightRoute();
            sc.plat.ScreenTitle.setText(fr.Header, null, "sc-panel-belowmenu-text");
            sc.plat.ScreenTitle.setDescription(fr.Header, null, "sc-panel-belowmenu-desc");
            fr.render("mainBodyPanel");
        }
    <scuitag:includeJS
    name="['/stk/flightRoute/flightRouteList_config.js','/stk/flightRoute/flightRouteList.js',
    '/stk/flightRoute/flightRouteList_bundle.js','/stk/flightRoute/test_overlays.js'
    ,'/stk/flightRoute/test.js']"
    callBack="sc.stk.fn"/>
    //The new JSP also includes the newly generated files: test_overlays.js and test.js
    </script>
    <jsp:include page="/stk/footer.jsp">
    
    Código de amostra do novo JSP (extensibilidade substitua):
    <%@ taglib uri="/WEB-INF/scui.tld" prefix="scuitag" %>
    <jsp:include page="/stk/include.jsp">
        <jsp:param name="title" value="Custom Screen" />
    </jsp:include>
    <script>
        Ext.ns("sc.stk");
        sc.stk.fn = function() {
            var fr = new sc.stk.flightRoute();
    /*
    sc.extn.CustomScreen is the className for the new screen.  It is available
    as a property for a screen in the designer and defaulted to
    sc.module.ClassName.  The user can change it.
    */
            sc.plat.ScreenTitle.setText(fr.Header, null, "sc-panel-belowmenu-text");
    /*
    Here, the setText(arg1, arg2, arg3) method has been used to set arg1 as
    title for a page as arg3="sc-panel-belowmenu-text".  Here, a bundle entry in
    the file: newScreen_bundle.js corresponding to Header would be picked up.
    */
            sc.plat.ScreenTitle.setDescription(" ", null, "sc-panel-belowmenu-desc");
            fr.render("mainBodyPanel");
        };
    <scuitag:includeJS
    name="['/extn/stk/flightRoute/newScreen_config.js', 
    '/extn/stk/flightRoute/newScreen.js', '/stk/flightRoute/newScreen_bundle.js']"
    callBack="sc.stk.fn"/>
    //This JSP includes the files generated through the designer:
    newScreen_config.js, newScreen.js and the localization file:
    newScreen_bundle.js
    </script>
    <jsp:include page="/stk/footer.jsp">
    
  6. Reconstrua o arquivo WAR.

    Os conteúdos do diretório INSTALL_DIR/extensions/application package name/webpages são copiados para o seguinte diretório:

    INSTALL_DIR/external_deployments/nome do pacote de aplicativos/extn.

    Essa estrutura de diretório existirá apenas se um arquivo WAR for criado e, em seguida, explodido no mesmo diretório INSTALL_DIR/external_deployments

    Qualquer arquivo JSP neste diretório que tenha o mesmo nome e esteja na mesma estrutura de diretório relativa que o JSP base substituiria o novo arquivo JSP.

  7. Reative o aplicativo para exibir as mudanças estendidas.