title: Deploying a ui5 app to launchpad when coming from a fiori app template
body: <p>We have the following development enviroment for Fiori:</p>
  
  <p>Gateway 7.4<br>
  Backend: Sap Netweaver 7.4 SP15<br>
  Local Web IDE with Orion Version 160811<br></p>
  
  <p>We don't have HCP, our gateway is local in our network, we also don't have Web dispatcher or Sap Router, which means that we can't deploy directly from Web IDE and instead we have to do it manually uploading the folder to Gateway.</p>
  
  <p>We made an app from scratch in Web IDE and export it as zip to deploy it in launchpad.
  Everything went well in that case, we add the app to a rol or use the standalone url to test it an worked fine.</p>
  
  <p>The problem is when we make a Fiori Worklist Template app from Web IDE and then try to deploy it the same way the other application.</p>
  
  <p>When we run the standalone url of the app we get the following javascript error:</p>
  
  <pre><code>Uncaught TypeError: Cannot read property 'createRenderer' of undefined.
  </code></pre>
  
  <p>Our flpSandbox.html is the following (without html tags):</p>
  
  <pre><code>    &lt;script&gt;
          window["sap-ushell-config"] = {
              defaultRenderer : "fiori2",
              renderers: {
                  fiori2: {
                      componentData: {
                          config: {
                              search: "hidden"
                          }
                      }
                  }
              },
              applications: {
                  "Notastest1-display": {
                      additionalInformation: "SAPUI5.Component=appnotatest",
                      applicationType: "URL",
                      url: "../",
                      description: "Despliegue de Notas Alumnos.",
                      title: "Calificaciones Mobile"
                  }
              }
          };
      &lt;/script&gt;
  
      &lt;script src="../test-resources/sap/ushell/bootstrap/sandbox.js" id="sap-ushell-bootstrap"&gt;&lt;/script&gt;
  
      &lt;!-- Bootstrap the UI5 core library --&gt;
      &lt;script id="sap-ui-bootstrap"
              src="../resources/sap-ui-core.js"
              data-sap-ui-libs="sap.ushell, sap.collaboration"
              data-sap-ui-theme="sap_bluecrystal"
              data-sap-ui-compatVersion="edge"
              data-sap-ui-resourceroots='{"appnotatest": "../"}'
              data-sap-ui-frameOptions='allow'&gt;   // NON-SECURE setting for testing environment
      &lt;/script&gt;
  
      &lt;script&gt;
          sap.ui.getCore().attachInit(function() {
              // initialize the ushell sandbox component
              sap.ushell.Container.createRenderer().placeAt("content");
          });
      &lt;/script&gt;
  </code></pre>
  
  <p>Our Manifest:</p>
  
  <pre><code>{
  "_version": "1.3.0",
  "sap.app": {
      "_version": "1.3.0",
      "id": "appnotatest",
      "type": "application",
      "i18n": "i18n/i18n.properties",
      "title": "{{appTitle}}",
      "description": "{{appDescription}}",
      "applicationVersion": {
          "version": "1.0.0"
      },
      "dataSources": {
          "mainService": {
              "uri": "/sap/opu/odata/sap/ZNOTAS3_SRV/",
              "type": "OData",
              "settings": {
                  "odataVersion": "2.0",
                  "localUri": "localService/metadata.xml"
              }
          }
      },
      "sourceTemplate": {
          "id": "sap.ui.ui5-template-plugin.1worklist",
          "version": "1.36.2"
      }
  },
  "sap.ui": {
      "_version": "1.3.0",
      "technology": "UI5",
      "icons": {
          "icon": "sap-icon://task",
          "favIcon": "",
          "phone": "",
          "phone@2": "",
          "tablet": "",
          "tablet@2": ""
      },
      "deviceTypes": {
          "desktop": true,
          "tablet": true,
          "phone": true
      },
      "supportedThemes": [
          "sap_hcb",
          "sap_bluecrystal"
      ]
  },
  "sap.ui5": {
      "_version": "1.3.0",
      "rootView": {
          "viewName": "appnotatest.view.App",
          "type": "XML",
          "id": "app"
      },
      "dependencies": {
          "minUI5Version": "1.36.0",
          "libs": {
              "sap.ui.core": {
                  "minVersion": "1.36.0"
              },
              "sap.m": {
                  "minVersion": "1.36.0"
              },
              "sap.ushell": {
                  "minVersion": "1.36.0"
              },
              "sap.collaboration": {
                  "minVersion": "1.36",
                  "lazy": true
              }
          }
      },
      "resources": {
          "css": [
              {
                  "uri": "css/style.css"
              }
          ]
      },
      "contentDensities": {
          "compact": true,
          "cozy": true
      },
      "models": {
          "i18n": {
              "type": "sap.ui.model.resource.ResourceModel",
              "settings": {
                  "bundleName": "appnotatest.i18n.i18n"
              }
          },
          "": {
              "dataSource": "mainService",
              "settings": {
                  "metadataUrlParams": {
                      "sap-documentation": "heading"
                  }
              }
          }
      },
      "routing": {
          "config": {
              "routerClass": "sap.m.routing.Router",
              "viewType": "XML",
              "viewPath": "appnotatest.view",
              "controlId": "app",
              "controlAggregation": "pages",
              "bypassed": {
                  "target": [
                      "notFound"
                  ]
              },
              "async": true
          },
          "routes": [
              {
                  "pattern": "",
                  "name": "worklist",
                  "target": [
                      "worklist"
                  ]
              },
              {
                  "pattern": "EntityAsignaturasSet/{objectId}",
                  "name": "object",
                  "target": [
                      "object"
                  ]
              }
          ],
          "targets": {
              "worklist": {
                  "viewName": "Worklist",
                  "viewId": "worklist",
                  "viewLevel": 1
              },
              "object": {
                  "viewName": "Object",
                  "viewId": "object",
                  "viewLevel": 2
              },
              "objectNotFound": {
                  "viewName": "ObjectNotFound",
                  "viewId": "objectNotFound"
              },
              "notFound": {
                  "viewName": "NotFound",
                  "viewId": "notFound"
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>And last but not least this is our component.js:</p>
  
  <pre><code>sap.ui.define([
      "sap/ui/core/UIComponent",
      "sap/ui/Device",
      "appnotatest/model/models",
      "appnotatest/controller/ErrorHandler"
  ], function (UIComponent, Device, models, ErrorHandler) {
      "use strict";
  
      return UIComponent.extend("appnotatest.Component", {
  
          metadata : {
              manifest: "json"
          },
  
          /**
           * The component is initialized by UI5 automatically during the startup of the app and calls the init method once.
           * In this function, the FLP and device models are set and the router is initialized.
           * @public
           * @override
           */
          init : function () {
              // call the base component's init function
              UIComponent.prototype.init.apply(this, arguments);
  
              // initialize the error handler with the component
              this._oErrorHandler = new ErrorHandler(this);
  
              // set the device model
              this.setModel(models.createDeviceModel(), "device");
              // set the FLP model
              this.setModel(models.createFLPModel(), "FLP");
  
              // create the views based on the url/hash
              this.getRouter().initialize();
          },
  
          /**
           * The component is destroyed by UI5 automatically.
           * In this method, the ErrorHandler is destroyed.
           * @public
           * @override
           */
          destroy : function () {
              this._oErrorHandler.destroy();
              // call the base component's destroy function
              UIComponent.prototype.destroy.apply(this, arguments);
          },
  
          /**
           * This method can be called to determine whether the sapUiSizeCompact or sapUiSizeCozy
           * design mode class should be set, which influences the size appearance of some controls.
           * @public
           * @return {string} css class, either 'sapUiSizeCompact' or 'sapUiSizeCozy' - or an empty string if no css class should be set
           */
          getContentDensityClass : function() {
              /*if (this._sContentDensityClass === undefined) {
                  // check whether FLP has already set the content density class; do nothing in this case
                  if (jQuery(document.body).hasClass("sapUiSizeCozy") || jQuery(document.body).hasClass("sapUiSizeCompact")) {
                      this._sContentDensityClass = "";
                  } else if (!Device.support.touch) { // apply "compact" mode if touch is not supported
                      this._sContentDensityClass = "sapUiSizeCompact";
                  } else {
                      // "cozy" in case of touch support; default for most sap.m controls, but needed for desktop-first controls like sap.ui.table.Table
                      this._sContentDensityClass = "sapUiSizeCozy";
                  }
              }
              return this._sContentDensityClass;*/
              }
  
          });
  
      }
  );
  </code></pre>
  
  <p>We try to create another index.html to solve the create rendered, we solved the error but the app still does not work, it only shows the launchpad without the tile. Keep in mind that when we test the app from local Web IDE, first it opens a launchpad with the tile of the application.</p>
  
  <p>Thank you very much for your help.</p>