<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>MYPRO-Consulting</title>
	<atom:link href="http://blog.mypro.de/feed/" rel="self" type="application/rss+xml"/>
	<link>http://blog.mypro.de</link>
	<description>Innovativ und Kooperativ</description>
	<lastBuildDate>Fri, 17 Aug 2018 09:24:01 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.15</generator>
	<itunes:explicit>no</itunes:explicit><itunes:subtitle>Innovativ und Kooperativ</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Podcasting"/></itunes:category><item>
		<title>Upgrade HANA Express and optimize memory usage</title>
		<link>http://blog.mypro.de/2018/08/17/upgrade-hana-express-optimize-memory/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Fri, 17 Aug 2018 09:08:38 +0000</pubDate>
				<category><![CDATA[HANA Express]]></category>
		<category><![CDATA[SAP HANA XSA]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SAP HANA]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=920</guid>

					<description><![CDATA[As every few months an updated release of SAP HANA Express Edition is available (see Release Notes) a regular task is upgrading the own HANA Express to gain bug fixes and new features and simply stay up to date. (Note: For initial setup up of HANA Express Edition on your local computer please follow the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>As every few months an updated release of SAP HANA Express Edition is available (see <a href="https://www.sap.com/developer/topics/sap-hana-express.release-notes.html#release-notes" target="_blank" rel="noopener">Release Notes</a>) a regular task is upgrading the own HANA Express to gain <strong>bug fixes and new features</strong> and simply stay up to date. (Note: For initial setup up of HANA Express Edition on your local computer please follow the steps in the previous post <a href="http://blog.mypro.de/2018/02/23/easy-way-to-start-with-sap-hana-express-edition/">&#8222;The easy way to start with SAP HANA 2.0 Express Edition&#8220;</a>).</p>
<p>With the upgrade there is an easy way to <strong>improve memory usage</strong> of various XSA components to make development more stable and get ride of WebIDE crashes like the ones described in my <a href="https://answers.sap.com/questions/390772/webide-for-sap-hana-20-sps02-crashes-frequently-on.html" target="_blank" rel="noopener">question &#8222;WebIDE for SAP HANA 2.0 (SPS02) crashes frequently on Git Push&#8220;</a> posted at the SAP Community. As you can see the solution goes back on a recommendation of <a href="https://twitter.com/LuciaBlick" target="_blank" rel="noopener">Lucia Subatin</a>, which is working in SAP Developer Relations Team and is very active on HANA Express and HANA XSA topics.</p>
<h2>Memory Usage before Optimization</h2>
<p>Memory is a rare asset in the context of SAP HANA as you need plenty of it. Especially when you want to have HANA on your laptop and all the goodness from HANA XSA. So SAP tried to optimize memory consumption where ever possible to lower the entry barrier to run HANA Express Edition. They did a good job, at some point too good! As result at least with default settings in SPS 02 you had regular crashes in WebIDE and productive development was almost impossible.</p>
<p>Let&#8217;s have a look on memory consumption before the optimization with the Application Monitor of the XS Advanced Administration (following screenshot was taken, after using WebIDE and deploying and starting some Node and HTML5 XSA applications):</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore.png"><img loading="lazy" class="alignnone size-full wp-image-924" src="http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore.png" alt="" width="1124" height="238" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore.png 1124w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore-300x64.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore-768x163.png 768w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore-1024x217.png 1024w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore-960x203.png 960w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryBefore-290x61.png 290w" sizes="(max-width: 1124px) 100vw, 1124px" /></a></p>
<p>You can see that especially <strong>di-core was sized too poor</strong> with 256MB as it actually already uses almost the double (504MB).</p>
<h2>Memory Usage after Upgrade &amp; Optimization</h2>
<p>After the upgrade with optimizations (let&#8217;s call it Upgrade &#8222;Plus&#8220;) the situation looks better and WebIDE crashes were gone (probably also because the updated version of WebIDE got many bugfixes). I was still somehow thrifty but from my experience 768MB for di-core, 144MB for devx-ui5 and 512MB for di-runner are doing well.</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter.png"><img loading="lazy" class="alignnone size-full wp-image-929" src="http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter.png" alt="" width="1146" height="256" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter.png 1146w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter-300x67.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter-768x172.png 768w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter-1024x229.png 1024w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter-960x214.png 960w, http://blog.mypro.de/wp-content/uploads/2018/08/MemoryAfter-290x65.png 290w" sizes="(max-width: 1146px) 100vw, 1146px" /></a></p>
<h2>Upgrade &#8222;Plus&#8220; of HANA Express (here from SPS02 to SPS03 rev30)</h2>
<p>The upgrade is a time consuming tasks. On my environment (IntelNUC with i7 core, 32 GB RAM, fast SSD) it&#8217;s not a matter of minutes but of <strong>two hours</strong>. The normal upgrade process is shortly described in the tutorial &#8222;Updating SAP HANA, express edition (Virtual Machine)&#8220; (<a href="https://www.sap.com/developer/tutorials/hxe-ua-updating-vm.html" target="_blank" rel="noopener">Link</a>). I follow these procedure with few addons the change the memory setting for the components. So let&#8217;s go step by step.</p>
<p>First you need to download the installation files for the <strong>binary installation</strong>  (despite you have the HANA Express running as VM!) with the HANA Express Download Manager. Transfer both archive files <strong>hxe.tgz</strong> and <strong>hxexsa.tgz</strong> on the VM&#8217;s file system (I use as target  /usr/sap/HXE/home/Downloads):</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer.png"><img loading="lazy" class="alignnone size-full wp-image-933" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer.png" alt="" width="1275" height="566" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer.png 1275w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer-300x133.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer-768x341.png 768w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer-1024x455.png 1024w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer-960x426.png 960w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade03Transfer-290x129.png 290w" sizes="(max-width: 1275px) 100vw, 1275px" /></a></p>
<p>Login as hxeadm user (e.g. with Putty) and extract both files. We got a new folder HANA_EXPRESS_20, which contains the software components, and a setup script for initially setting up HANA Express, which we will not use here as we assume you have HANA Express already installed:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade04Extract.png"><img loading="lazy" class="alignnone size-full wp-image-934" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade04Extract.png" alt="" width="751" height="625" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade04Extract.png 751w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade04Extract-300x250.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade04Extract-290x241.png 290w" sizes="(max-width: 751px) 100vw, 751px" /></a></p>
<h3>The Plus &#8211; modify memory settings for some services of the WebIDE component</h3>
<p>Now we come to the &#8222;Plus&#8220; by changing some memory settings for the WebIDE component services. Therefore we open the <strong>MTA deployment  extension descriptor</strong> (mtaext file extension) of the WebIDE component. For SPS03 (revision 30)  this file is located in folder XSAC_SAP_WEB_IDE_20 and is called <strong>sap-xsac-devx-4.3.23-hxe.mtaext</strong>. The version number will be different for newer revision:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory1.png"><img loading="lazy" class="alignnone size-full wp-image-935" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory1.png" alt="" width="719" height="160" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory1.png 719w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory1-300x67.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory1-290x65.png 290w" sizes="(max-width: 719px) 100vw, 719px" /></a></p>
<p>With the extension descriptor you can define runtime properties/values for the services at deployment time. Such values are for example proxy information, user provided service credentials, URL&#8217;s and also memory settings. So lets open this file with the vi editor by typing:</p>
<p><br />
vi HANA_EXPRESS_20/DATA_UNITS/XSAC_SAP_WEB_IDE_20/sap-xsac-devx-4.3.23-hxe.mtaext<br />
</p>
<p>&nbsp;</p>
<p><strong>press I</strong> to go into edit modus and change the <strong>memory</strong> settings for services <strong>di-core to 768M</strong>, for service <strong>di-runner to 512MB</strong> and for service <strong>devx-ui5 to 144MB</strong>. I also change setting DI_BUILDER_MEMORY for resource <strong>di-builder-configuration to 312MB:</strong></p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory2.png"><img loading="lazy" class="alignnone size-full wp-image-938" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory2.png" alt="" width="535" height="955" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory2.png 535w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory2-168x300.png 168w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade05ChangeMemory2-162x290.png 162w" sizes="(max-width: 535px) 100vw, 535px" /></a></p>
<p>To save the changes <strong>press ESC</strong> to leave the edit modus and then <strong>:wq</strong> to write the changes and quit vi editor. Now we good to run the upgrade with the changed memory settings.</p>
<h2>Run HANA Express Edition upgrade</h2>
<p>Let's move in the HANA_EXPRESS_20 folder. Before we start the upgrade we  first run a garbage collection to free up memory. Run as sudo the script <em>hxe_gc.sh</em>:</p>
<p><br />
sudo ./hxe_gc.sh<br />
</p>
<p>&nbsp;</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade06GC.png"><img loading="lazy" class="alignnone size-full wp-image-940" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade06GC.png" alt="" width="678" height="360" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade06GC.png 678w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade06GC-300x159.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade06GC-290x154.png 290w" sizes="(max-width: 678px) 100vw, 678px" /></a></p>
<p>To start the upgrade run the script <em>hxe_upgrade.sh</em>:</p>
<p><br />
sudo ./hxe_upgrade.sh<br />
</p>
<p>&nbsp;</p>
<p>Enter all the necessary information and the passwords for hxeadm, SYSTEM and XSA_ADMIN. Be very carefully when entering the passwords, if you making this wrong, you could mess up you complete HANA installation.</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade07Start.png"><img loading="lazy" class="alignnone size-full wp-image-942" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade07Start.png" alt="" width="937" height="491" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade07Start.png 937w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade07Start-300x157.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade07Start-768x402.png 768w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade07Start-290x152.png 290w" sizes="(max-width: 937px) 100vw, 937px" /></a></p>
<p>Now cross fingers and after around 2 hours later you should finally see the success message "HDB is successfully upgraded."</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade08End.png"><img loading="lazy" class="alignnone size-full wp-image-943" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade08End.png" alt="" width="772" height="456" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade08End.png 772w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade08End-300x177.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade08End-768x454.png 768w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade08End-290x171.png 290w" sizes="(max-width: 772px) 100vw, 772px" /></a></p>
<p>Congratulations!! You have now a SAP HANA Express system with improved memory settings for productive XSA development.</p>
<p>Besides many bugfixes you presented also with new features. For example with SPS03 there is now the new <strong>SAP HANA XS Advanced Cockpit</strong> available which is basically the same as the Cockpit which is used in SAP Cloud for SAP Cloud Foundry:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit.png"><img loading="lazy" class="alignnone size-full wp-image-944" src="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit.png" alt="" width="1128" height="464" srcset="http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit.png 1128w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit-300x123.png 300w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit-768x316.png 768w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit-1024x421.png 1024w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit-960x395.png 960w, http://blog.mypro.de/wp-content/uploads/2018/08/Upgrade09Cockpit-290x119.png 290w" sizes="(max-width: 1128px) 100vw, 1128px" /></a></p>
<p>With this new optimised environment you are now ready to develop full-stack HANA XSA applications. Have fun.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The easy way to start with SAP HANA 2.0 Express Edition</title>
		<link>http://blog.mypro.de/2018/02/23/easy-way-to-start-with-sap-hana-express-edition/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Fri, 23 Feb 2018 13:18:42 +0000</pubDate>
				<category><![CDATA[Full-Stack JavaScript]]></category>
		<category><![CDATA[HANA Express]]></category>
		<category><![CDATA[SAP HANA XSA]]></category>
		<category><![CDATA[SAP HANA]]></category>
		<category><![CDATA[XSA]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=858</guid>

					<description><![CDATA[There are several options to start with HANA Express Edition (or shortly HXE). My favorite is to use the vm based version  of HXE, because it is very convenient and fast to setup. You can have it besides your normal development environment, which is another advantage. I had to switch from my MacBook to a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>There are several options to start with HANA Express Edition (or shortly HXE). My favorite is to use the vm based version  of HXE, because it is very convenient and fast to setup. You can have it besides your normal development environment, which is another advantage. I had to switch from my MacBook to a Windows machine because the maximum 16 GB RAM of the mac were not enough to run the HANA VMware image in parallel. Enough available memory is the main precondition for this development approach, if you not have at least 16 GB free memory, I would propose you run HANA Express in one of the possible cloud options (AWS, Google or Azure).</p>
<p>As JavaScript Developer I&#8217;m interested in fullstack development so we dealing here with the XSA version (server + applications) of HANA Express Edition with the so called Extended Application Services Advanced Model (or shortly XSA). This comes with SAP Web IDE for SAP HANA, with HANA Cockpit, with SAPUI5 Frontend Server and with the Fiori Launchpad.</p>
<h2>What do you need to start!</h2>
<ul>
<li>Good hardware <strong>with enough RAM</strong>! I use a IntelNUC with <strong>32 GB RAM</strong> and a fast SSD (with min. 80 GB free disk space).</li>
<li>A Hyperviser like VMware Workstation or the &#8222;free&#8220; VMware Player.</li>
<li>Go to <a href="https://www.sap.com/developer/topics/sap-hana-express.html" target="_blank" rel="noopener">HANA Express Landing Page</a> and register for a free download.</li>
</ul>
<p>After the registration you can use the Java based Download Manager to retrieve the necessary files to setup your HANA XSA system.<br />
The steps to download the files are straightforward so I skip any details. Basically you only need the file &#8222;hxexsa.ova&#8220; (with around 12 GB size).  More details can be found in the Tutorial <a href="https://www.sap.com/developer/tutorials/hxe-ua-installing-vm-image.html" target="_blank" rel="noopener">&#8222;Installing SAP HANA 2.0, express edition (Virtual Machine Method)&#8220;</a> or in this <a href="https://www.sap.com/assetdetail/2016/09/d2900513-8a7c-0010-82c7-eda71af511fa.html" target="_blank" rel="noopener">video</a>.</p>
<h2>Step 1: Setup and configure VMware Image</h2>
<p>So start VMware Workstation or Player, select File -&gt; Open in then menu:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/01OpenOVA.png"><img loading="lazy" class="size-full wp-image-862 alignnone" src="http://blog.mypro.de/wp-content/uploads/2018/02/01OpenOVA.png" alt="" width="357" height="336" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/01OpenOVA.png 357w, http://blog.mypro.de/wp-content/uploads/2018/02/01OpenOVA-300x282.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/01OpenOVA-290x273.png 290w" sizes="(max-width: 357px) 100vw, 357px" /></a></p>
<p>and import the ova file <em><strong>hxexsa.ova</strong></em>:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/02OpenOVA_wilApps.png"><img loading="lazy" class="size-full wp-image-864 alignnone" src="http://blog.mypro.de/wp-content/uploads/2018/02/02OpenOVA_wilApps.png" alt="" width="683" height="226" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/02OpenOVA_wilApps.png 683w, http://blog.mypro.de/wp-content/uploads/2018/02/02OpenOVA_wilApps-300x99.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/02OpenOVA_wilApps-290x96.png 290w" sizes="(max-width: 683px) 100vw, 683px" /></a></p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/03ImportOVA.png"><img loading="lazy" class="size-full wp-image-865 alignnone" src="http://blog.mypro.de/wp-content/uploads/2018/02/03ImportOVA.png" alt="" width="349" height="232" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/03ImportOVA.png 349w, http://blog.mypro.de/wp-content/uploads/2018/02/03ImportOVA-300x199.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/03ImportOVA-290x193.png 290w" sizes="(max-width: 349px) 100vw, 349px" /></a></p>
<p>Press Import</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/04ImportOVAprogress.png"><img loading="lazy" class="alignnone size-full wp-image-867" src="http://blog.mypro.de/wp-content/uploads/2018/02/04ImportOVAprogress.png" alt="" width="414" height="122" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/04ImportOVAprogress.png 414w, http://blog.mypro.de/wp-content/uploads/2018/02/04ImportOVAprogress-300x88.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/04ImportOVAprogress-290x85.png 290w" sizes="(max-width: 414px) 100vw, 414px" /></a></p>
<p>And 5 minutes later (on the IntetlNUC) the import is finished successfully. You &#8222;lost&#8220; now 30 GB disc space and have a new VMware image available:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/05ImportResult.png"><img loading="lazy" class="alignnone wp-image-868 size-medium" src="http://blog.mypro.de/wp-content/uploads/2018/02/05ImportResult-300x271.png" alt="" width="300" height="271" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/05ImportResult-300x271.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/05ImportResult-290x262.png 290w, http://blog.mypro.de/wp-content/uploads/2018/02/05ImportResult.png 554w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>But stop! Before you start the image the first time you should adjust the virtual machine settings.</p>
<p>The initial settings of the VM are a bit to optimistic from my point of view. Especially the default setting for Memory with 12 GB did not work out for me. This was in an earlier revision, but as I see many issues in the context of memory and installation on SAP Community, I do not want to give this another try.</p>
<p>So my best practices her are:</p>
<ul>
<li>Memory 24 GB (instead of 12 GB)!</li>
<li>Processors 4 (instead of 2)</li>
<li>Network Adapter: NAT (instead of Bridged, so you can use your HANA in different networks)</li>
</ul>
<p>This is now a reasonable setup to work and develop with HANA Express Edition:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/06Settings.png"><img loading="lazy" class="alignnone size-full wp-image-870" src="http://blog.mypro.de/wp-content/uploads/2018/02/06Settings.png" alt="" width="511" height="463" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/06Settings.png 511w, http://blog.mypro.de/wp-content/uploads/2018/02/06Settings-300x272.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/06Settings-290x263.png 290w" sizes="(max-width: 511px) 100vw, 511px" /></a></p>
<p>&nbsp;</p>
<h2>Step 2: Startup VMware Image and run HXE setup</h2>
<p>So let&#8217;s start up the VMware Image, which is based on SuSE Linux Enterprise Server (SLES) 12 SP2. Since revision 23 the HXE team provided two convenient functions while the setup phase of HXE. You can change the keyboard layout and the time zone. Especially the first setting is very important in the context of the necessary password change at the beginning of HXE setup.</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/07Keyboard.png"><img loading="lazy" class="alignnone size-full wp-image-874" src="http://blog.mypro.de/wp-content/uploads/2018/02/07Keyboard.png" alt="" width="797" height="638" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/07Keyboard.png 797w, http://blog.mypro.de/wp-content/uploads/2018/02/07Keyboard-300x240.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/07Keyboard-768x615.png 768w, http://blog.mypro.de/wp-content/uploads/2018/02/07Keyboard-290x232.png 290w" sizes="(max-width: 797px) 100vw, 797px" /></a></p>
<p>You now need to login with the SID Admin: <strong><em>hxeadm</em></strong>. The initial password is <em><strong>HXEHana1</strong>. The first step is now changing the password of this hxeadm user:</em></p>
<ul>
<li>You have to reenter the current password. So type again <em><strong>HXEHana1</strong></em></li>
<li>then carefully enter the new password (2 times).</li>
</ul>
<p>Additionally you have to change the password of HANA database master password. For running finally the setup script of HXE you have to provide some more informations:</p>
<ul>
<li>information about a corporate proxy</li>
<li>if you want to wait for XSA configuration to finish: Select here <em><strong>Y</strong></em> to wait</li>
</ul>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/10Setup1.png"><img loading="lazy" class="alignnone size-full wp-image-876" src="http://blog.mypro.de/wp-content/uploads/2018/02/10Setup1.png" alt="" width="798" height="633" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/10Setup1.png 798w, http://blog.mypro.de/wp-content/uploads/2018/02/10Setup1-300x238.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/10Setup1-768x609.png 768w, http://blog.mypro.de/wp-content/uploads/2018/02/10Setup1-290x230.png 290w" sizes="(max-width: 798px) 100vw, 798px" /></a></p>
<p>Confirm entered configuration and start the HXE setup by typing again Y.  After less then 15 minutes the HANA setup is finished and HANA HXE is ready:</p>
<p>&nbsp;</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/11SetupFinished-1.jpg"><img loading="lazy" class="alignnone size-full wp-image-879" src="http://blog.mypro.de/wp-content/uploads/2018/02/11SetupFinished-1.jpg" alt="" width="802" height="418" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/11SetupFinished-1.jpg 802w, http://blog.mypro.de/wp-content/uploads/2018/02/11SetupFinished-1-300x156.jpg 300w, http://blog.mypro.de/wp-content/uploads/2018/02/11SetupFinished-1-768x400.jpg 768w, http://blog.mypro.de/wp-content/uploads/2018/02/11SetupFinished-1-290x151.jpg 290w" sizes="(max-width: 802px) 100vw, 802px" /></a></p>
<p>HANA Express Edition is now ready . So first let&#8217;s see what is in the box (here SAP HANA 2.0 SPS02 Revision 23) and type <em><strong>xs mtas, </strong></em>which list all installed multi-target applications with their versions:</p>
<p><a class="lightbox" href="http://blog.mypro.de/wp-content/uploads/2018/02/12mtas.png"><img loading="lazy" class="alignnone size-full wp-image-881" src="http://blog.mypro.de/wp-content/uploads/2018/02/12mtas.png" alt="" width="620" height="277" srcset="http://blog.mypro.de/wp-content/uploads/2018/02/12mtas.png 620w, http://blog.mypro.de/wp-content/uploads/2018/02/12mtas-300x134.png 300w, http://blog.mypro.de/wp-content/uploads/2018/02/12mtas-290x130.png 290w" sizes="(max-width: 620px) 100vw, 620px" /></a></p>
<p>So we have the XSA Administration (com.sap.xsa.admin), the Portal Service, SAPUI5 Frontend server with SAPUI5 v1.44.26, the SAP WebIDE for SAP HANA, the auditlog, the job scheduler, HANA Runtime tools (com.sap.xsa.hrtt) and the HANA Cockpit.</p>
<p>You are ready, start your HANA XSA discovery journey!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UI5con@SAP 2017 – Recap &amp; Session „UI5 on SAP HANA XSA“</title>
		<link>http://blog.mypro.de/2017/08/14/ui5con-2017-recap-ui5-on-sap-hana-xsa/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Mon, 14 Aug 2017 11:55:29 +0000</pubDate>
				<category><![CDATA[Full-Stack]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SAP HANA XSA]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[UI5con]]></category>
		<category><![CDATA[XSA]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=772</guid>

					<description><![CDATA[The 4th UI5con was organised mostly by the UI5 developer themselves and was to say it shortly: not only the biggest, but the best UI5con ever, ever!! The event took place 30th June 2017 in St. Leon-Rot at SAP itself (UI5con@SAP) and this time it felt like a real big conference (with more than 50 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2017/08/UI5con2015-Logo.png"><img loading="lazy" class="alignleft size-medium wp-image-778" src="http://blog.mypro.de/wp-content/uploads/2017/08/UI5con2015-Logo-300x194.png" alt="" width="300" height="194" srcset="http://blog.mypro.de/wp-content/uploads/2017/08/UI5con2015-Logo-300x194.png 300w, http://blog.mypro.de/wp-content/uploads/2017/08/UI5con2015-Logo.png 432w" sizes="(max-width: 300px) 100vw, 300px" /></a><br />
The 4th UI5con was organised mostly by the UI5 developer themselves and was to say it shortly: not only the biggest, but <strong>the best UI5con ever, ever!!</strong></p>
<p>The event took place 30th June 2017 in St. Leon-Rot at SAP itself (UI5con@SAP) and this time it felt like a real big conference (with more than 50 sessions and 400 participants), reflecting the <strong>importance and also maturity of the UI5 topic</strong> itself. Location at SAP and running the event on a working day allows the presence of all of the core UI5 people. Which was a great opportunity for everybody to meet personally with the people, you mainly know only from GitHub commits. Fantastic! It makes a big difference to meet in real life and face to face. The majority of the presentation was also held by SAP UI5 team, which did open up many insides, what we can expect in the bright SAPUI5/OpenUI5 future. But still there was plenty of space for sessions from non-SAP community members.</p>
<p><span id="more-772"></span></p>
<p>Right in the OPENING session we were presented with the new OpenUI5 Logo, a <strong>modernised Phoenix</strong>, which made me, proudly dressed with the &#8222;old&#8220; Phoenix t-shirt, instantly looking outdated as almost all the SAP UI5 folks did run around with the new shirts and new logo. Btw a updated ui5 shirt would have been also a perfect speaker gift. 🙂</p>
<figure id="attachment_774" aria-describedby="caption-attachment-774" style="width: 150px" class="wp-caption aligncenter"><a href="http://blog.mypro.de/wp-content/uploads/2017/08/OpenUI5_new_logoonly.png"><img loading="lazy" class="size-thumbnail wp-image-774" src="http://blog.mypro.de/wp-content/uploads/2017/08/OpenUI5_new_logoonly-150x150.png" alt="OpenUI5 Logo 2017" width="150" height="150" srcset="http://blog.mypro.de/wp-content/uploads/2017/08/OpenUI5_new_logoonly-150x150.png 150w, http://blog.mypro.de/wp-content/uploads/2017/08/OpenUI5_new_logoonly-300x300.png 300w, http://blog.mypro.de/wp-content/uploads/2017/08/OpenUI5_new_logoonly.png 410w" sizes="(max-width: 150px) 100vw, 150px" /></a><figcaption id="caption-attachment-774" class="wp-caption-text">OpenUI5 Logo 2017</figcaption></figure>
<p>After the OPENING and traditional <a href="https://www.slideshare.net/StefanBeck13/news-about-ui5-that-you-absolutely-have-to-know-ui5con-2017" target="_blank" rel="noopener noreferrer">&#8222;NEWS AROUND UI5 THAT YOU ABSOLUTELY HAVE TO KNOW&#8220;</a> (<a href="https://youtu.be/lsLgPwQmOGw?list=PLHUs_FUbq4dUb-YahNSkUJgIKOQR4EfIO" target="_blank" rel="noopener noreferrer">Recording</a>) sessions, the most important session <a href="https://de.slideshare.net/PeterMuessig1/ui5-evolution-77465160" target="_blank" rel="noopener noreferrer">&#8222;UI5 EVOLUTION&#8220;</a> (<a href="https://youtu.be/vZfxBXu6_Lc?list=PLHUs_FUbq4dUb-YahNSkUJgIKOQR4EfIO" target="_blank" rel="noopener noreferrer">Recording</a>) from UI5 Lead Architect Peter Müssig, took place.</p>
<h2>Evolution instead of Revolution, the right way?</h2>
<p><a href="http://blog.mypro.de/wp-content/uploads/2017/08/UI5Evolution.jpg"><img loading="lazy" class="alignleft wp-image-804 size-full" src="http://blog.mypro.de/wp-content/uploads/2017/08/UI5Evolution.jpg" alt="" width="879" height="539" srcset="http://blog.mypro.de/wp-content/uploads/2017/08/UI5Evolution.jpg 879w, http://blog.mypro.de/wp-content/uploads/2017/08/UI5Evolution-300x184.jpg 300w, http://blog.mypro.de/wp-content/uploads/2017/08/UI5Evolution-768x471.jpg 768w" sizes="(max-width: 879px) 100vw, 879px" /></a><br />
Peter Müssig (despite his colleges also dressed in an outdated UI5 shirt!) did explain, how decision-based on an internal innovation project named &#8222;Cheetah&#8220; (happened Q3/2016) and to which extend UI5 will be going to a next state of development. One buzzword was &#8222;modularize&#8220;.</p>
<p>The <strong>size of UI5 is one mayor issue, perhaps the ultimate issue at all for UI5</strong>. This point seems so obvious if you watch Chrome dev tools or simply start to explore the current version 1.48.5 of the OpenUI5 runtime with a size of 191 MB (yes, it is Megabytes) and more than 11.000 files (ok, half of them are debug files). Normal caching mechanisms of the web are not enough for UI5, it has it&#8217;s own AppCacheBuster in the core, another evident that UI5 is somehow &#8222;handicapped&#8220;. On the other hand, it is not only &#8222;hot air&#8220; which makes up the size of UI5, it is a brillant set of hundreds of great ui controls and a core library, which has all and more within to build enterprise grade applications. But the UI5 core, which is mandatory for each application, is grown too big, which results especially on mobile devices to bad performance as all the code is loaded and interpreted needed or not! Splitting the core up in modular parts and combining it with a <strong>new build process generating tailer-made UI5 runtime</strong> (self-contained applications) for each application should bring ease. This process reminds me heavily of the jQuery Download Builder. I completely agree with this approach.</p>
<p>Peter Müssig already showed first code snippets (in VS Code 🙂  ) and a demo in which the <strong>loaded code was reduced by more than 60 percent</strong>. Very promising:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2017/08/UI5classic-vs-UI5modular.jpg"><img loading="lazy" class="size-large wp-image-828 aligncenter" src="http://blog.mypro.de/wp-content/uploads/2017/08/UI5classic-vs-UI5modular-1024x623.jpg" alt="" width="690" height="420" srcset="http://blog.mypro.de/wp-content/uploads/2017/08/UI5classic-vs-UI5modular.jpg 1024w, http://blog.mypro.de/wp-content/uploads/2017/08/UI5classic-vs-UI5modular-300x183.jpg 300w, http://blog.mypro.de/wp-content/uploads/2017/08/UI5classic-vs-UI5modular-768x467.jpg 768w" sizes="(max-width: 690px) 100vw, 690px" /></a></p>
<h3>It&#8217;s Time for Revolution</h3>
<p>But, but &#8230;&#8230;.. another main requirement of UI5 Evolution was compatibility. I understand this requirement from a medium-term SAP point of view. I guess this prevents the overdue and so necessary UI5 Revolution. After almost 9 years, almost 25 stable minor release and hundreds of patch releases, we need now a condign successor version of SAPUI5/OpenUI5, which is a <strong>real V2</strong> and not a v1.80.15! A version which fully can leverage current trends (Typescript, ES6,&#8230;) and is freed from burden of the past. <strong>The UI5 team has the potential, the people and spirit to do something great again.</strong> If they only allowed to! Cut of old tails! Free UI5 from Fiori Launchpad slavery, where all of the thousands of UI5 apps need to run with the same UI5 version, preventing real quantum jump at least for single progressive apps. Perhaps we need both: UI5 Evolution for the old soup but also <strong>UI5 Revolution for the future</strong>. Otherwise &#8222;lost&#8220; ground (iOS, Android) will never be conquered.</p>
<h2>SAPUI5 on SAP HANA XSA</h2>
<p><a href="http://blog.mypro.de/wp-content/uploads/2017/08/XSAonStage.jpg"><img loading="lazy" class="alignleft wp-image-808 size-large" src="http://blog.mypro.de/wp-content/uploads/2017/08/XSAonStage-1024x682.jpg" alt="" width="690" height="460" srcset="http://blog.mypro.de/wp-content/uploads/2017/08/XSAonStage.jpg 1024w, http://blog.mypro.de/wp-content/uploads/2017/08/XSAonStage-300x200.jpg 300w, http://blog.mypro.de/wp-content/uploads/2017/08/XSAonStage-768x512.jpg 768w" sizes="(max-width: 690px) 100vw, 690px" /></a><br />
I had the honour to speak directly after Peter Müssig about &#8222;UI5 on SAP HANA XSA &#8211; SAP Full-stack JavaScript Development&#8220; also in the huge audimax (Room A). This session is not so important for UI5 itself, but perhaps will influence the future of some UI5 developers.</p>
<p>My session introduced the new Runtime- and Development-Platform &#8222;SAP HANA XSA&#8220;, which allows JavaScript Development both for frontend and backend. In my opinion HANA XSA provides a great new opportunity for us UI5 developer to extend our JavaScript knowledge also to backend development. XSA (&#8222;The Beast&#8220;) is founded by SAP on proven, outside SAP widely used components/concepts like: Git, npm, node.js. SAP provides his functionality also as npm packages, currently not via the public npm registry. This finally bundled with the in-memory database HANA and all his opportunities. All in all a great couple with a great future.</p>
<p>Slides of this session can be found on Slideshare:<br />
<iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/dM3E9hbLFTJNb3" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="SAPUI5 in SAP HANA XSA - SAP Full-Stack JavaScript Development, UI5con 2017" href="//www.slideshare.net/hpseitz/sapui5-in-sap-hana-xsa-sap-fullstack-javascript-development" target="_blank" rel="noopener noreferrer">SAPUI5 in SAP HANA XSA &#8211; SAP Full-Stack JavaScript Development, UI5con 2017</a> </strong> from <strong><a href="https://www.slideshare.net/hpseitz" target="_blank" rel="noopener noreferrer">HP Seitz</a></strong></div>
<h2>Many Topics, many Sessions</h2>
<p>Besides these sessions there was much more valuable to see and to explore. <a href="http://openui5.org/ui5con/material" target="_blank" rel="noopener noreferrer">Slides, Recording and Links are available on the OpenUI5 website</a>. Enough stuff for the next months.</p>
<p>Many thanks to all the participants for this perfect UI5con. Keep going!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UI5con – Session „Full-Stack JavaScript with OpenUI5“</title>
		<link>http://blog.mypro.de/2016/04/23/ui5con-session-full-stack-javascript-with-openui5/</link>
					<comments>http://blog.mypro.de/2016/04/23/ui5con-session-full-stack-javascript-with-openui5/#comments</comments>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Sat, 23 Apr 2016 07:47:02 +0000</pubDate>
				<category><![CDATA[Full-Stack]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[NEMO]]></category>
		<category><![CDATA[UI5con]]></category>
		<category><![CDATA[WebStorm]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=721</guid>

					<description><![CDATA[UI5con &#8211; the first ever conference focusing on SAPUI5/OpenUI5 took place on 11th March 2016 in Frankfurt. UI5con is driven by the community and not solely by SAP folks. I was pleased that my proposal for a session was accepted and hence got one of the eligible 80 seats. The demand was so high, that the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2016/04/OpenUI5_logo_only_small.png" rel="attachment wp-att-742"><img loading="lazy" class="alignleft size-full wp-image-742" src="http://blog.mypro.de/wp-content/uploads/2016/04/OpenUI5_logo_only_small.png" alt="OpenUI5_logo_only_small" width="200" height="168" /></a></p>
<p><strong><a href="https://wiki.scn.sap.com/wiki/display/events/UI5con+2016+-+Frankfurt" target="_blank" rel="noopener noreferrer">UI5con</a></strong> &#8211; the first ever conference focusing on SAPUI5/OpenUI5 took place on 11th March 2016 in Frankfurt. UI5con is driven by the community and not solely by SAP folks.</p>
<p>I was pleased that my proposal for a session was accepted and hence got one of the eligible 80 seats. The demand was so high, that the UI5con was sold out within less than an hour and more than 150 people put themselves on the waiting list.<br />
<span id="more-721"></span><br />
There were several top-class sessions, have a look at the <a href="http://ui5con2016.cbasis.com/" target="_blank" rel="noopener noreferrer">agenda of the UI5con</a>. All in all a fantastic community event and it was great to meet people personally, which you so far only did known virtually or perhaps as author of important UI5 git commits.</p>
<p>Title of my talk was &#8222;Full-Stack JavaScript mit OpenUI5&#8220;. Below you find the slides of this talk.</p>
<h2>NEMO &#8211; Full-Stack JavaScript with OpenUI5</h2>
<p>Inspired by the well-kown MEAN stack (MongoDB &#8211; Express &#8211; Angular  &#8211; Node.js) this session introduced the NEMO stack using OpenUI5 instead of Angular to prototype a full-stack JavaScript application.</p>
<p>&nbsp;</p>
<p>To view the slides lease click into the below iFrame and press Space to scroll through it. Important remark: this will not work for Smartphones and Tablets as impress.js the library I used to make this presentation is not supporting this kind of devices:</p>
<p><iframe loading="lazy" src="/ui5-boilerplate/UI5con/UI5con-Fullstack.html" width="100%" height="400">Your browser does not support iframes.&nbsp;</p>
<p>&nbsp;</p>
<p></iframe></p>
<p>The most interesting part of the session are not the slides, but the live coding I did to develop this most basic application from ground including database access with Mongoose, backend with express.js/Node.js and frontend with OpenUI5. With the help of tools like WebStorm, npm, gulp and bower:</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/coWoQp50dLg?list=PLHUs_FUbq4dWyF0mYVK-vc8icVrlbCsJv" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Most of the session have been recorded, you can watch all the great session via the dedicated YouTube Playlist:</p>
<ul>
<li>
<h2 class="pl-header-title" tabindex="0"><a href="https://www.youtube.com/playlist?list=PLHUs_FUbq4dWyF0mYVK-vc8icVrlbCsJv" target="_blank" rel="noopener noreferrer">UI5con 2016 Frankfurt Session Recordings on YouTube</a></h2>
</li>
</ul>
<p>A nice <a href="http://scn.sap.com/community/developer-center/front-end/blog/2016/03/13/my-ui5con-recap" target="_blank" rel="noopener noreferrer">recap of the UI5con</a> was done by Kimmo Jokinen.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.mypro.de/2016/04/23/ui5con-session-full-stack-javascript-with-openui5/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>OpenUI5 One Pager</title>
		<link>http://blog.mypro.de/2015/08/27/openui5-one-pager/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Thu, 27 Aug 2015 11:34:10 +0000</pubDate>
				<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[SAPUI5]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[WebStorm]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=695</guid>

					<description><![CDATA[There was a interesting post &#8222;MVC – Model View Controller, Minimum Viable Code&#8220; from master DJ Adams, which did the groundwork for this article. I will call it UI5 One Pager instead of minimum viable code technique. So the idea behind is to have a UI5 MVC template with which you can quickly try or test something with UI5 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2014/01/ui5_144.jpg"><img loading="lazy" class="alignleft size-full wp-image-360" src="/wp-content/uploads/2014/01/ui5_144.jpg" alt="ui5_144" width="144" height="144" /></a><br />
There was a interesting post <a href="http://pipetree.com/qmacro/blog/2015/07/mvc-model-view-controller-minimum-viable-code/" target="_blank" rel="noopener">&#8222;MVC – Model View Controller, Minimum Viable Code&#8220;</a> from master DJ Adams, which did the groundwork for this article. I will call it <strong>UI5 One Pager </strong>instead of <em>minimum viable code technique</em>.</p>
<p>So the idea behind is to have a <strong>UI5 MVC template</strong> with which you can quickly try or test something with UI5 MVC concept. <strong>Everything</strong> (Bootstrap, View, Model and Controller) <strong>in one single page/file</strong>, but still a full-grown ui5 mvc app.</p>
<p>To add something useful to the existing code, let&#8217;s provide the UI5 One Pager as <strong>File Template for JetBrains WebStorm</strong> (my favorite Web IDE) and also <strong>use the new UI5 module concept (AMD &#8211; Asyncronous Module Definition)</strong>, which is propagated since v1.28/v1.30 of OpenUI5/SAPUI5.<br />
<span id="more-695"></span></p>
<p>So here is the template for WebStorm:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;html&gt;
&lt;head&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;/&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;

    &lt;title&gt;UI5 One Pager&lt;/title&gt;

    &lt;script id=&quot;sap-ui-bootstrap&quot;
            src=&quot;https://openui5.hana.ondemand.com/1.28.15/resources/sap-ui-core.js&quot;
            data-sap-ui-libs=&quot;sap.m&quot;
            data-sap-ui-theme=&quot;sap_bluecrystal&quot;
            data-sap-ui-preload=&quot;async&quot;
            data-sap-ui-compatVersion=&quot;edge&quot;
            data-sap-ui-frameOptions='allow'&gt;    // NON-SECURE setting for test environment
    &lt;/script&gt;

    &lt;script id=&quot;${NAME}&quot; type=&quot;ui5/xmlview&quot;&gt;
        &lt;mvc:View
            controllerName=&quot;${UI5_Namespace}.controller.${NAME}&quot;
            displayBlock=&quot;true&quot;
            xmlns=&quot;sap.m&quot;
            xmlns:l=&quot;sap.ui.layout&quot;
            xmlns:core=&quot;sap.ui.core&quot;
            xmlns:mvc=&quot;sap.ui.core.mvc&quot;&gt;
            &lt;Page title=&quot;${NAME}&quot;&gt;
                &lt;content&gt;
                    &lt;Button press=&quot;pressBtn&quot; text=&quot;Press me&quot;/&gt;
                &lt;/content&gt;
            &lt;/Page&gt;
        &lt;/mvc:View&gt;
    &lt;/script&gt;
    &lt;script&gt;
        sap.ui.getCore().attachInit(function () {
            &quot;use strict&quot;;

            sap.ui.define([
                &quot;sap/ui/core/mvc/Controller&quot;
            ], function (Controller) {
                return Controller.extend(&quot;${UI5_Namespace}.controller.${NAME}&quot;, {
                    pressBtn: function (oEvent) {
                        sap.m.MessageToast.show(&quot;Hello UI5 DevLife!&quot;);
                    }
                });
            });

            sap.ui.require([
                &quot;jquery.sap.global&quot;
            ], function (jQuery) {
                sap.ui.xmlview({
                    viewContent: jQuery(&quot;#${NAME}&quot;).html()
                }).placeAt('root');
            });

        });
    &lt;/script&gt;
&lt;/head&gt;
&lt;body class=&quot;sapUiBody&quot; id=&quot;root&quot;/&gt;
&lt;/html&gt;
</pre>
<p>Using this template with WebStorm (NAME is &#8222;Test1&#8220;) and running the UI5 One Pager in Chrome should result in something like this:</p>
<p><a href="/wp-content/uploads/2015/08/UI5OnePager.png"><img loading="lazy" class="alignnone size-full wp-image-697" src="/wp-content/uploads/2015/08/UI5OnePager.png" alt="UI5OnePager" width="658" height="429" srcset="http://blog.mypro.de/wp-content/uploads/2015/08/UI5OnePager.png 658w, http://blog.mypro.de/wp-content/uploads/2015/08/UI5OnePager-300x196.png 300w" sizes="(max-width: 658px) 100vw, 658px" /></a></p>
<p>For more details on how to use File Templates in WebStorm have a look at the previous post <a href="/2015/07/28/ui5-file-templates-for-webstorm/">UI5 File Templates for WebStorm</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UI5 File Templates for WebStorm</title>
		<link>http://blog.mypro.de/2015/07/28/ui5-file-templates-for-webstorm/</link>
					<comments>http://blog.mypro.de/2015/07/28/ui5-file-templates-for-webstorm/#comments</comments>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Tue, 28 Jul 2015 13:43:53 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[SAPUI5]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[WebStorm]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=647</guid>

					<description><![CDATA[WebStorm is one of the best IDE for web development (at least JetBRAINS is able to charge for it). With some dedicated UI5 file templates it is quite handy to start with UI5 development. I will also introduce AMD module definition concept which has found his way in OpenUI5/SAPUI5. AMD concept in UI5 With version 1.28 of OpenUI5 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2014/01/ui5_144.jpg"><img loading="lazy" class="alignleft size-full wp-image-360" src="http://blog.mypro.de/wp-content/uploads/2014/01/ui5_144.jpg" alt="ui5_144" width="144" height="144" /></a><br />
WebStorm is one of the best IDE for web development (at least JetBRAINS is able to charge for it).</p>
<p>With some dedicated <strong>UI5 file templates</strong> it is quite handy to start with UI5 development. I will also introduce <strong>AMD module definition</strong> concept which has found his way in OpenUI5/SAPUI5.</p>
<h2>AMD concept in UI5</h2>
<p>With version 1.28 of OpenUI5 a new module concept is propagated. In the core classes of UI5 it is already used much longer. The code templates which will be introduced below will already be based in this concept.</p>
<p>AMD stands for <strong>Asynchronous Module Definition</strong> and is designed to allow asynchronous loading of JavaScript modules (not very surprisingly). It is also the API which is supported by <strong>RequireJS</strong>. So SAP is following a well-established and accepted standard in the web, good!</p>
<p>In UI5 this is realised with <a href="https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.html#.define" target="_blank" rel="noopener">sap.ui.define</a> to define new modules and with <a href="https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.html#.require" target="_blank" rel="noopener">sap.ui.require</a> to resolve module dependencies. To understand usage, let&#8217;s have a look at some file template examples:</p>
<h2>WebStorm UI5 File Template</h2>
<p>File templates can be created in WebStorm via Preferences-&gt;Editor-&gt;File and Code Templates (in WebStorm 10 with a open project):</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate1.png"><img loading="lazy" class="alignnone size-full wp-image-652" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate1.png" alt="UI5FileTemplate1" width="905" height="539" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate1.png 905w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate1-300x179.png 300w" sizes="(max-width: 905px) 100vw, 905px" /></a><br />
<span id="more-647"></span><br />
Via <strong>+ (Plus sign)</strong> you can create a new Template. Specifiy a name and a extension and use placeholders with ${} syntax. As placeholder we will use ${UI5_Namespace} for the UI5 component namespace and ${NAME} for file name.</p>
<p>Let&#8217;s start with controller file:</p>
<h3>UI5 Controller Template</h3>
<p>use extension: <em>controller.js</em></p>
<pre class="brush: jscript; title: ; notranslate">
sap.ui.define([
    &quot;sap/ui/core/mvc/Controller&quot;
], function (Controller) {
    &quot;use strict&quot;;

    return Controller.extend(&quot;${UI5_Namespace}.controller.${NAME}&quot;, {
        onInit: function () {
            this.component = this.getOwnerComponent();
            this.bus = this.component.getEventBus();
        }
    });
});
</pre>
<p>So what structure do we see, when using new AMD concept:</p>
<ul>
<li>The <strong>first parameter</strong> of sap.ui.define is an <strong>array of strings</strong>. <strong>Each string represents a dependency.</strong> In the example we need <em>sap.ui.core.mvc.Controller</em> class to define our own controller by extending this class. We have to <strong>replace all dots with forward slashes</strong>. So instead of <strong>sap.ui.core.mvc.Controller</strong> you need to use <strong>&#8222;sap/ui/core/mvc/Controller&#8220;</strong>.</li>
<li>Second parameter is the factory function, which get each dependency as parameter (here <em>Controller</em>) . This parameter can then be used within the factory function.</li>
</ul>
<h3>UI5 XML View Template</h3>
<p>use extension: <em>view.xml</em></p>
<pre class="brush: xml; title: ; notranslate">
&lt;mvc:View
        controllerName=&quot;${UI5_Namespace}.controller.${NAME}&quot;
        xmlns=&quot;sap.m&quot;
        xmlns:l=&quot;sap.ui.layout&quot;
        xmlns:core=&quot;sap.ui.core&quot;
        xmlns:mvc=&quot;sap.ui.core.mvc&quot;&gt;
    &lt;Page title=&quot;${NAME}&quot;
          navButtonPress=&quot;onNavBack&quot;
          showNavButton=&quot;true&quot;&gt;
        &lt;content&gt;
        &lt;/content&gt;
        &lt;footer&gt;
            &lt;Bar&gt;
            &lt;/Bar&gt;
        &lt;/footer&gt;
    &lt;/Page&gt;
&lt;/mvc:View&gt;
</pre>
<h3>UI5 Component Template</h3>
<p>use extension: <em>js</em></p>
<pre class="brush: jscript; title: ; notranslate">
sap.ui.define([
    &quot;sap/ui/core/UIComponent&quot;,
    &quot;sap/ui/model/resource/ResourceModel&quot;
], function (UIComponent, ResourceModel) {
    &quot;use strict&quot;;

    return UIComponent.extend(&quot;${UI5_Namespace}.Component&quot;, {

        metadata: {
            &quot;rootView&quot;: &quot;${UI5_Namespace}.view.App&quot;,
            &quot;dependencies&quot;: {
                &quot;minUI5Version&quot;: &quot;1.28.0&quot;,
                &quot;libs&quot;: [&quot;sap.ui.core&quot;, &quot;sap.m&quot;, &quot;sap.ui.layout&quot;]
            },

            &quot;config&quot;: {
                &quot;i18nBundle&quot;: &quot;${UI5_Namespace}.i18n.i18n&quot;,
                &quot;serviceUrl&quot;: &quot;here/goes/your/serviceUrl/&quot;
            },

            &quot;routing&quot;: {
                &quot;config&quot;: {
                    &quot;routerClass&quot;: &quot;sap.m.routing.Router&quot;,
                    &quot;viewType&quot;: &quot;XML&quot;,
                    &quot;viewPath&quot;: &quot;${UI5_Namespace}.view&quot;,
                    &quot;controlId&quot;: &quot;idAppControl&quot;,
                    &quot;controlAggregation&quot;: &quot;detailPages&quot;,
                    &quot;bypassed&quot;: {
                        &quot;target&quot;: [&quot;master&quot;, &quot;notFound&quot;]
                    }
                },
                &quot;routes&quot;: [
                    {
                        &quot;pattern&quot;: &quot;&quot;,
                        &quot;name&quot;: &quot;master&quot;,
                        &quot;target&quot;: [&quot;detail&quot;, &quot;master&quot;]
                    },
                    {
                        &quot;pattern&quot;: &quot;detail/{detailId}&quot;,
                        &quot;name&quot;: &quot;detail&quot;,
                        &quot;target&quot;: [&quot;master&quot;, &quot;detail&quot;]
                    }
                ],
                &quot;targets&quot;: {
                    &quot;master&quot;: {
                        &quot;viewName&quot;: &quot;Master&quot;,
                        &quot;viewLevel&quot;: 1,
                        &quot;viewId&quot;: &quot;master&quot;,
                        &quot;controlAggregation&quot;: &quot;masterPages&quot;
                    },
                    &quot;detail&quot;: {
                        &quot;viewName&quot;: &quot;Detail&quot;,
                        &quot;viewId&quot;: &quot;detail&quot;,
                        &quot;viewLevel&quot;: 2
                    },
                    &quot;notFound&quot;: {
                        &quot;viewName&quot;: &quot;NotFound&quot;,
                        &quot;viewId&quot;: &quot;notFound&quot;,
                        &quot;viewLevel&quot;: 3
                    }
                }
            }
        },

        init: function () {

            var mConfig = this.getMetadata().getConfig();

            // set the internationalization model
            this.setModel(new ResourceModel({
                bundleName: mConfig.i18nBundle
            }), &quot;i18n&quot;);

            // call the base component's init function and create the App view
            UIComponent.prototype.init.apply(this, arguments);

            // create the views based on the url/hash
            this.getRouter().initialize();
        },

        destroy: function () {
            // call the base component's destroy function
            UIComponent.prototype.destroy.apply(this, arguments);
        }

    });

});
</pre>
<p>The is a component file template for a master-detail application.</p>
<p>In the Component the App View is referenced as rootView. For master-detail application the SplitApp is used, let&#8217;s create another File Template &#8222;UI5 SplitApp&#8220; (extension: view.xml) for this:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;mvc:View
 controllerName=&quot;${UI5_Namespace}.controller.${NAME}&quot;
 xmlns=&quot;sap.m&quot;
 xmlns:mvc=&quot;sap.ui.core.mvc&quot;&gt;
 &lt;SplitApp id=&quot;idAppControl&quot; displayBlock=&quot;true&quot; /&gt;
&lt;/mvc:View&gt;
</pre>
<p>And finally we create a index.html file for local testing:</p>
<h3>UI5 index.html Template</h3>
<p>use extension: <em>html</em></p>
<pre class="brush: xml; title: ; notranslate">
&lt;html&gt;
&lt;head&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;/&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;

    &lt;title&gt;UI5 App&lt;/title&gt;

    &lt;script id=&quot;sap-ui-bootstrap&quot;
            src=&quot;https://openui5.hana.ondemand.com/resources/sap-ui-core.js&quot;
            data-sap-ui-libs=&quot;sap.m&quot;
            data-sap-ui-theme=&quot;sap_bluecrystal&quot;
            data-sap-ui-preload=&quot;async&quot;
            data-sap-ui-compatVersion=&quot;edge&quot;
            data-sap-ui-resourceroots='{&quot;${UI5_Namespace}&quot;: &quot;./&quot;}'
            data-sap-ui-frameOptions='allow'&gt;    // NON-SECURE setting for testing environment
    &lt;/script&gt;

    &lt;script&gt;
        sap.ui.getCore().attachInit(function () {
            sap.ui.require([
                &quot;sap/ui/core/ComponentContainer&quot;,
                &quot;${UI5_Namespace}/Component&quot;
            ], function (ComponentContainer, Component) {
                new sap.ui.core.ComponentContainer({
                    name: &quot;${UI5_Namespace}&quot;
                }).placeAt('root');
            });
        });
    &lt;/script&gt;
&lt;/head&gt;
&lt;body class=&quot;sapUiBody&quot; id=&quot;root&quot;&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>This is an example how to use sap.ui.require and load necessary dependencies. The structure is somehow identically to the sap.ui.require usage. In the first parameter (array of strings) the necessary dependencies are listed, which are passed as parameters to the callback function.</p>
<h2>And Action &#8211; Create App with Templates</h2>
<p>Now we want to use the new file templates within WebStorm (of course you can use these templates also without WebStorm)</p>
<p>Create an empty project and two folders (the given templates assume this kind of directory structure):</p>
<ul>
<li>controller &#8211; for controller files</li>
<li>view &#8211; for view files</li>
</ul>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate2.png"><img loading="lazy" class="alignnone size-full wp-image-657" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate2.png" alt="UI5FileTemplate2" width="473" height="245" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate2.png 473w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate2-300x155.png 300w" sizes="(max-width: 473px) 100vw, 473px" /></a></p>
<p>We want to create a master view and a detail view.</p>
<p>Therefore select the <strong>view folder</strong> and right-click and select New and select the <strong>UI5 XML View</strong> template:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate3.png"><img loading="lazy" class="alignnone size-full wp-image-659" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate3.png" alt="UI5FileTemplate3" width="666" height="456" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate3.png 666w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate3-300x205.png 300w" sizes="(max-width: 666px) 100vw, 666px" /></a></p>
<p>Enter as File name &#8222;Master&#8220; and as UI5 namespace &#8222;ui5v128&#8220; (you can also use your own namespace):</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4.png"><img loading="lazy" class="alignnone size-full wp-image-660" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4.png" alt="UI5FileTemplate4" width="528" height="174" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4.png 528w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4-300x99.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></a></p>
<p>For the controller select controller folder and and right-click and select New and select the UI5 Controller template. Enter again as File name &#8222;Master&#8220; and as UI5 namespace &#8222;ui5v128&#8220;:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4b.png"><img loading="lazy" class="alignnone size-full wp-image-661" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4b.png" alt="UI5FileTemplate4b" width="670" height="456" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4b.png 670w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate4b-300x204.png 300w" sizes="(max-width: 670px) 100vw, 670px" /></a></p>
<p>repeat this for the Detail view/controller (File Name &#8222;Detail&#8220;,UI5 namespace &#8222;ui5v128&#8220;).</p>
<p>Additionally we will need the SplitApp View. Please name it &#8222;App&#8220; and select the &#8222;UI5 SplitApp&#8220; Template (again UI5 namespace &#8222;ui5v128&#8220;).</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate5.png"><img loading="lazy" class="alignnone size-full wp-image-662" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate5.png" alt="UI5FileTemplate5" width="530" height="177" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate5.png 530w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate5-300x100.png 300w" sizes="(max-width: 530px) 100vw, 530px" /></a></p>
<p>If you follow this convention the given UI5 Component template will fit, this is is our last step.</p>
<p>Create a UI5 Component (file name: <em>Component</em>) and index.html file (file name <em>index</em>) in the project root folder, both with the same UI5 namespace &#8222;ui5v128&#8220;. The result should look like this:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate6.png"><img loading="lazy" class="alignnone size-full wp-image-663" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate6.png" alt="UI5FileTemplate6" width="842" height="626" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate6.png 842w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate6-300x223.png 300w" sizes="(max-width: 842px) 100vw, 842px" /></a></p>
<p>Within WebStorm you can directly run the App via the index.html file. Right-click the index.html and select <strong>Run &#8218;index.html&#8216;</strong>:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate7.png"><img loading="lazy" class="alignnone wp-image-664 size-full" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate7.png" alt="UI5FileTemplate7" width="608" height="437" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate7.png 608w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate7-300x216.png 300w" sizes="(max-width: 608px) 100vw, 608px" /></a><a href="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate8.png"><img loading="lazy" class="alignnone size-medium wp-image-665" src="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate8-300x266.png" alt="UI5FileTemplate8" width="300" height="266" srcset="http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate8-300x266.png 300w, http://blog.mypro.de/wp-content/uploads/2015/07/UI5FileTemplate8.png 681w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>The working app is more or less empty, but uses the new module structure. So you prepared for the future (v1.30) and now it is up to you to fill it with more content.</p>
<p>Have fun with UI5 and AMD concept.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://blog.mypro.de/2015/07/28/ui5-file-templates-for-webstorm/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Generate Component-preload for Fiori UI5BP with Gulp</title>
		<link>http://blog.mypro.de/2015/04/27/component-preload-for-ui5bp-fiori-with-gulp/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Mon, 27 Apr 2015 12:00:29 +0000</pubDate>
				<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SAP Fiori]]></category>
		<category><![CDATA[SAPUI5]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[UI5-Boilerplate]]></category>
		<category><![CDATA[UI5 Boilerplate]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=608</guid>

					<description><![CDATA[Performance always matter&#8217;s! There is a great option to speed up the initial startup of a Fiori App by using a interesting UI5 feature. If you provide a Component-preload.js file all of the javascript and xml files of the app can be loaded with just one single request. This could dramatically improves the performance of the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/ui5-fiori.png"><img loading="lazy" class="alignleft size-thumbnail wp-image-607" src="http://blog.mypro.de/wp-content/uploads/2015/04/ui5-fiori-150x150.png" alt="Fiori UI5 Boilerplate" width="150" height="150" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/ui5-fiori-150x150.png 150w, http://blog.mypro.de/wp-content/uploads/2015/04/ui5-fiori.png 288w" sizes="(max-width: 150px) 100vw, 150px" /></a>Performance always matter&#8217;s! There is a great option to <strong>speed up the initial startup of a Fiori App</strong> by using a interesting UI5 feature. If you provide a <strong>Component-preload.js</strong> file all of the javascript and xml files of the app can be loaded with just one single request. This could <strong>dramatically improves the performance</strong> of the app, especially on mobile devices in a &#8222;bad&#8220; latency environment.</p>
<p>The Component-preload.js file can easily be generated with the help of <strong>Gulp</strong> and the very handy <a href="https://www.npmjs.com/package/gulp-ui5-preload" target="_blank" rel="noopener">gulpui5-preload package</a> from Christian Theilemann (Thx geekflyer!).<br />
<span id="more-608"></span></p>
<h2>Component-preload.js for UI5 Boilerplate Fiori</h2>
<p>The gulp-ui5-preload package is integrated in the current version of the <strong><a href="https://github.com/6of5/UI5-Boilerplate-Fiori" target="_blank" rel="noopener">Fiori Edition of UI5 Boilerplate</a></strong>. If you have gulp and the gulp-ui5-preload package installed  (see prerequisites section at the bottom for details) you simply need the run the following command in the terminal to generate the Component-preload.js file:</p>
<pre class="brush: plain; title: ; notranslate">
gulp ui5preload
</pre>
<p>the gulp task is executed:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload001.png"><img loading="lazy" class="alignnone size-full wp-image-628" src="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload001.png" alt="gulp ui5preload" width="814" height="120" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload001.png 814w, http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload001-300x44.png 300w" sizes="(max-width: 814px) 100vw, 814px" /></a></p>
<p>and there it is and you can see the component and all views, controllers utilities are now part of this single file Component-preload.js:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload01.png"><img loading="lazy" class="alignnone size-full wp-image-619" src="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload01.png" alt="Component-preload.js" width="884" height="476" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload01.png 884w, http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload01-300x162.png 300w" sizes="(max-width: 884px) 100vw, 884px" /></a></p>
<p>Be aware that you always have to rebuild the Component-preload if you made changes to one of the included files! So it makes sense to build it, if you deploy on QA or PRODUCTION and remove it when you developing locally.</p>
<h2>Performance can improve by factors, but it depends</h2>
<p>The performance impact of this change depends on the <strong>tradeoff between loading one huge file at startup</strong> and <strong>loading multiple small files on demand</strong>. What is the better approach depends on:</p>
<ul>
<li>How is the Fiori App developed? At what point in time at runtime are further parts (views/resources) needed in the app?</li>
<li>What is the environment the app is running in (device, latency, bandwidth)?</li>
</ul>
<p>The following screenshot compares the initial loading of UI5 Boilerplate Fiori App with or without the Component-preload.js. On left we see that Component.js is loaded and also the individual view/controller files (5 http requests more). On the right we see the request behaviour with the preloading.</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload03.png"><img loading="lazy" class="alignnone size-full wp-image-631" src="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload03.png" alt="Compare" width="1144" height="616" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload03.png 1144w, http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload03-300x162.png 300w, http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload03-1024x551.png 1024w" sizes="(max-width: 1144px) 100vw, 1144px" /></a></p>
<p>A further advantage is that also further views which are request by the user in the app already loaded and no further requests are necessary.</p>
<h2>Prerequisition and Setup</h2>
<ul>
<li>We assume you have <strong>node.js</strong> and <strong>npm</strong> already installed (otherwise do it)</li>
<li>Install gulp globally. Therefore run the following (on Mac OSX probably with sudo)</li>
</ul>
<pre class="brush: plain; title: ; notranslate">
npm install gulp -g
</pre>
<p>Now go in the root folder of the UI5 Boilerplate Fiori Edition and type the following to locally install the necessary node packages:</p>
<pre class="brush: plain; title: ; notranslate">
npm install
</pre>
<p>You should see that all the necessary packages are successfully installed:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload-S01.png"><img loading="lazy" class="alignnone size-full wp-image-632" src="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload-S01.png" alt="nom install" width="989" height="732" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload-S01.png 989w, http://blog.mypro.de/wp-content/uploads/2015/04/UI5BPF-ComPreload-S01-300x222.png 300w" sizes="(max-width: 989px) 100vw, 989px" /></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>sitFRA 2015 – Birthday of UI5BP Fiori Edition</title>
		<link>http://blog.mypro.de/2015/04/17/sitfra-2015-birthday-ui5bp-fiori-edition/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Fri, 17 Apr 2015 10:59:11 +0000</pubDate>
				<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[SAP Fiori]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[UI5-Boilerplate]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[SAP Inside Track]]></category>
		<category><![CDATA[SAPUI5]]></category>
		<category><![CDATA[UI5Boilerplate]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=581</guid>

					<description><![CDATA[On 21st of March 2015 the first SAP Inside Track Frankfurt (#sitFRA) took place. The event, nicely located and well organised by Hendrik Neumann, Christian Braukmüller and Tobias Trapp, was real fun. Half of the session deal with good &#8222;old&#8220; SAP ABAP technology based stuff, the other half with New-SAP topics like OpenUI5, SAPUI5, SAP Fiori and HANA [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/sitFRA.jpg"><img loading="lazy" class="alignleft wp-image-589" src="http://blog.mypro.de/wp-content/uploads/2015/04/sitFRA-300x300.jpg" alt="sitFRA" width="200" height="200" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/sitFRA-300x300.jpg 300w, http://blog.mypro.de/wp-content/uploads/2015/04/sitFRA-150x150.jpg 150w, http://blog.mypro.de/wp-content/uploads/2015/04/sitFRA.jpg 320w" sizes="(max-width: 200px) 100vw, 200px" /></a>On 21st of March 2015 the first <a href="http://wiki.scn.sap.com/wiki/display/events/SAP+Inside+Track+2015+Frankfurt+a.M.+%28Germany%29+%23sitFRA" target="_blank" rel="noopener"><strong>SAP Inside Track Frankfurt</strong></a> (#sitFRA) took place. The event, nicely located and well organised by Hendrik Neumann, Christian Braukmüller and Tobias Trapp, was real fun.</p>
<p>Half of the session deal with good &#8222;old&#8220; SAP ABAP technology based stuff, the other half with <strong>New-SAP</strong> topics like OpenUI5, SAPUI5, SAP Fiori and HANA Cloud Platform. A good mixture (have a look at the <a href="http://sitfra.cbasis.com/agenda/" target="_blank" rel="noopener">full agenda of sitFRA 2015</a>) .</p>
<p>As I&#8217;m pregnant since a long time to modify the <a href="https://github.com/6of5/UI5SplitApp-Boilerplate" target="_blank" rel="noopener">UI5 Boilerplate</a> (UI5BP) so that it is SAP Fiori compliant and can be integrated into the famous SAP Fiori Launchpad, I took the chance to talk about this topic and modify the original UI5 Boilerplate in a live coding session and create a Fiori Edition. <strong>UI5 Boilerplate Fiori Edition</strong> was born.<br />
<span id="more-581"></span></p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/Session-UI5-Boilerplate-Fiori-Edition.png"><img loading="lazy" class="alignnone size-full wp-image-583" src="http://blog.mypro.de/wp-content/uploads/2015/04/Session-UI5-Boilerplate-Fiori-Edition.png" alt="Session-UI5-Boilerplate-Fiori-Edition" width="1028" height="472" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/Session-UI5-Boilerplate-Fiori-Edition.png 1028w, http://blog.mypro.de/wp-content/uploads/2015/04/Session-UI5-Boilerplate-Fiori-Edition-300x138.png 300w, http://blog.mypro.de/wp-content/uploads/2015/04/Session-UI5-Boilerplate-Fiori-Edition-1024x470.png 1024w" sizes="(max-width: 1028px) 100vw, 1028px" /></a></p>
<h2>UI5 Boilerplate &#8211; Fiori Edition</h2>
<p>The original UI5BP targets a Single Page Application (SPA) scenario or the usage of UI5BP as web app in hybrid app scenario in combination with a native container like Apache Cordova, Adobe Phonegap or SAP Kapsel. The UI5BP aims to be as simple as possible, so no component, no shell, no routing. It is especially designed for UI5 newbies to have a running template with navigation, which is working on smartphone and tablets and is fast up and running (not more).</p>
<h3>To be a Fiori or not to be</h3>
<p>If the UI5BP wants to be &#8222;Fiori&#8220; (sound a bit like a small cute bird) and part of the SAP Fiori Launchpad (FLP) it is dynamically loaded by the FLP. For such a scenario a few requirements have to be fulfilled so that no conflicts with other &#8222;Fiori&#8217;s&#8220; are raised.</p>
<p>First of all to enable the dynamic loading the app needs to be a <strong>self-containing UI5 Component</strong> (sap.ui.core.UIComponent). So html files like index.html are only relevant while testing the Fiori App standalone. At runtime within FLP these files do not count, FLP will request the Component.js file as start.</p>
<p>As our Fiori App does not know what other Fiori Apps are in the game, any global stuff is strictly forbidden. Each App should work within his own area, which is defined by the Component and not do stuff, which could interfere with other Apps. To communicate with other Apps the FLP provide extra services, e.g. Cross-Navigation. So the main requirements for a Fiori are:</p>
<ul>
<li>App needs to be a self-containing UI5 Component</li>
<li>Use EventBus of the Component, not the global EventBus</li>
<li>Do not use sap.ui.getCore() to register Models</li>
<li>Do not define gloabel Id&#8217;s, Id&#8217;s should be generate by UI5</li>
<li>Use only UI5 to manipulate the location hash</li>
<li>&#8230;. and more</li>
</ul>
<p>For more details please have a look on the <a href="http://www.slideshare.net/hpseitz/ui5-boilerplate-fiori-edition-sitfra-2015" target="_blank" rel="noopener">slides on Slideshare</a> or directly at the source code of <a href="https://github.com/6of5/UI5-Boilerplate-Fiori" target="_blank" rel="noopener">UI5BP Fiori Edtion on GitHub</a>.</p>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/GnmLjAvO8lvYSB" width="510" height="420" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<p>Sadly currently many of the so called Fiori App Templates within the SAP Web IDE (v1.9.3) in HANA Cloud Platform are still not fully Fiori compliant, they still use the global EventBus. Hopefully this will soon corrected by SAP.</p>
<h2>Integration of UI5BP Fiori in SAP Fiori Launchpad</h2>
<p>As a result of this modifications the UI5 Boilerplate can now be integrated in the SAP Fiori Launchpad:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BP-31-UI5BP-Fiori-in-FLP.png"><img loading="lazy" class="alignnone size-full wp-image-596" src="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BP-31-UI5BP-Fiori-in-FLP.png" alt="UI5BP-31-UI5BP-Fiori-in-FLP" width="939" height="552" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/UI5BP-31-UI5BP-Fiori-in-FLP.png 939w, http://blog.mypro.de/wp-content/uploads/2015/04/UI5BP-31-UI5BP-Fiori-in-FLP-300x176.png 300w" sizes="(max-width: 939px) 100vw, 939px" /></a></p>
<p>You find step-by-step instructions in a dedicated article <a href="http://scn.sap.com/community/fiori/blog/2015/04/14/deploy-ui5-boilerplate-on-fiori-launchpad-of-hana-cloud-platform" target="_blank" rel="noopener">&#8222;Deploy UI5 Boilerplate on Fiori Launchpad of HANA Cloud Platform&#8220;</a> on SAP Community Network.</p>
<p>Have fun and Bembel with Care!</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2015/04/Bembel-with-Care.jpg"><img loading="lazy" class="alignnone size-full wp-image-600" src="http://blog.mypro.de/wp-content/uploads/2015/04/Bembel-with-Care.jpg" alt="Bembel-with-Care" width="358" height="459" srcset="http://blog.mypro.de/wp-content/uploads/2015/04/Bembel-with-Care.jpg 358w, http://blog.mypro.de/wp-content/uploads/2015/04/Bembel-with-Care-234x300.jpg 234w" sizes="(max-width: 358px) 100vw, 358px" /></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Launchpad Navigation with UI5 Boilerplate (v0.8)</title>
		<link>http://blog.mypro.de/2014/11/26/launchpad-with-ui5-boilerplate/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Wed, 26 Nov 2014 20:24:49 +0000</pubDate>
				<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[SAPUI5]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[UI5-Boilerplate]]></category>
		<category><![CDATA[UI5Boilerplate]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=548</guid>

					<description><![CDATA[A Launchpad is now part of the UI5 Boilerplate, similar to  the famous Fiori Launchpad. In contrast to the Fiori Launchpad it is part of the App itself and enables Launchpad Navigation within the App. As before the navigation items, here Tiles, are generated automatically from the menu definition file (menu.json). So there is nothing [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2014/01/ui5.jpg"><img loading="lazy" class="alignleft size-thumbnail wp-image-310" src="http://blog.mypro.de/wp-content/uploads/2014/01/ui5-150x150.jpg" alt="ui5 boilerplate" width="150" height="150" srcset="http://blog.mypro.de/wp-content/uploads/2014/01/ui5-150x150.jpg 150w, http://blog.mypro.de/wp-content/uploads/2014/01/ui5.jpg 288w" sizes="(max-width: 150px) 100vw, 150px" /></a>A <strong>Launchpad</strong> is now part of the <a title="UI5BP on Githib" href="https://github.com/6of5/UI5SplitApp-Boilerplate" target="_blank" rel="noopener">UI5 Boilerplate</a>, similar to  the famous <strong>Fiori Launchpad</strong>. In contrast to the Fiori Launchpad it is part of the App itself and enables <strong>Launchpad Navigation</strong> within the App.</p>
<p>As before the navigation items, here Tiles, are generated automatically from the menu definition file (menu.json). So there is nothing special necessary to switch and use the Launchpad, simply update to current version on UI5BP.</p>
<p><span id="more-548"></span><br />
The Launchpad Navigation is now the default navigation mode of the UI5 Boilerplate, although the <strong>LeftMenu Navigation</strong> (via Master Page) is still available and can be activated via configuration or by a URL Parameter at any time.</p>
<h2>Launchpad Navigation</h2>
<p>So how does it look like? Here some screenshots of the Launchpad on a smartphone. On the detail pages there is now a Home Icon in the upper right corner which allows navigation back to the Launchpad:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad1.png"><img loading="lazy" class="alignnone wp-image-558 size-full" src="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad1.png" alt="UI5BP_Launchpad" width="326" height="576" srcset="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad1.png 326w, http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad1-169x300.png 169w" sizes="(max-width: 326px) 100vw, 326px" /></a><a href="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad2.png"><img loading="lazy" class="alignnone size-full wp-image-559" src="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad2.png" alt="UI5BP_Launchpad2" width="328" height="573" srcset="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad2.png 328w, http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad2-171x300.png 171w" sizes="(max-width: 328px) 100vw, 328px" /></a></p>
<p>To add further pages and therefore Tiles to the Launchpad within the UI5 Boilderplate nothing has changed. You simply maintain a new entry in the menu.json file and add the corresponding ui5 view and controller file. That is all! More details can be found in the dedicated post <a title="Add Page to UI5 Boilerplate" href="http://blog.mypro.de/2014/02/14/add-page-to-ui5-boilerplate/">&#8222;Add Page to UI5 Boilerplate&#8220;</a></p>
<h2>Configuration of Navigation Mode</h2>
<p>The configuration of the navigation mode is done via the file <em>app/config.js</em>:<br />
<a href="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad6-config.png"><img loading="lazy" class="alignnone size-full wp-image-565" src="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad6-config.png" alt="UI5BP_Launchpad6-config" width="673" height="251" srcset="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad6-config.png 673w, http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad6-config-300x111.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></a><br />
Besides this, it is possible with the URL Parameter <em>mode=LeftMenuNavi</em> to overrule the configuration and start the App in <strong>LeftMenu Navigation</strong> mode:</p>
<pre class="brush: bash; title: ; notranslate">
http://....../index.html?mode=LeftMenuNavi
</pre>
<p>Screenshots on smartphone with <strong>Left Menu Navigation</strong>. Instead of the Home Icon there is the Back Navigation Icon enabled:<br />
<a href="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad3.png"><img loading="lazy" class="alignnone size-full wp-image-560" src="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad3.png" alt="UI5BP_Launchpad3" width="325" height="574" /></a><a href="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad4.png"><img loading="lazy" class="alignnone size-full wp-image-561" src="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad4.png" alt="UI5BP_Launchpad4" width="325" height="575" srcset="http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad4.png 325w, http://blog.mypro.de/wp-content/uploads/2014/11/UI5BP_Launchpad4-169x300.png 169w" sizes="(max-width: 325px) 100vw, 325px" /></a></p>
<h3>Additional Information</h3>
<ul>
<li><a href="https://github.com/6of5/UI5SplitApp-Boilerplate" target="_blank" rel="noopener">UI5 Boilerplate Source on Github</a></li>
<li><a href="https://www.6of5.com/6of5/go/show/1001/UI5/displaypage.htm?PAGE=UI5Boilerplate" target="_blank" rel="noopener">UI5 Boilerplate Wiki Page</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New Features of OpenUI5 v1.22</title>
		<link>http://blog.mypro.de/2014/07/18/new-features-of-openui5-v1-22/</link>
		
		<dc:creator><![CDATA[HP]]></dc:creator>
		<pubDate>Fri, 18 Jul 2014 06:13:49 +0000</pubDate>
				<category><![CDATA[OpenUI5]]></category>
		<category><![CDATA[UI5]]></category>
		<category><![CDATA[UI5-Boilerplate]]></category>
		<category><![CDATA[UI5Boilerplate]]></category>
		<guid isPermaLink="false">http://blog.mypro.de/?p=515</guid>

					<description><![CDATA[The next major release of OpenUI5 is out (see official post on OpenUI5 Blog). Let&#8217;s see which new features were added in the past 3 months and how useful they are. To do so, I added a dedicated page &#8222;New Features v1.22&#8220; with some of the new controls to the UI5 Boilerplate and update the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://blog.mypro.de/wp-content/uploads/2013/12/icotxt_white_220x72_blue_open.png"><img loading="lazy" class="size-full wp-image-282 alignleft" src="http://blog.mypro.de/wp-content/uploads/2013/12/icotxt_white_220x72_blue_open.png" alt="OpenUI5" width="254" height="72" /></a></p>
<p>The next major release of OpenUI5 is out (see <a title="New Release: OpenUI5 1.22" href="http://openui5.tumblr.com/post/91942465212/new-release-openui5-1-22">official post on OpenUI5 Blog</a>). Let&#8217;s see which new features were added in the past 3 months and how useful they are. To do so, I added a dedicated page &#8222;<strong>New Features v1.22</strong>&#8220; <strong>with some of the new controls</strong> to the <a title="UI5 Boilerplate on GitHub" href="https://github.com/6of5/UI5SplitApp-Boilerplate">UI5 Boilerplate</a> and update the <a title="UI5 Boilerplate Demo" href="http://www.mypro.de/ui5-boilerplate/index.html">&#8222;UI5 Boilerplate Demo Website&#8220;</a>, so you can see them &#8222;live&#8220; and &#8222;in action&#8220;.  As always we focus on mobile usage.<br />
<span id="more-515"></span></p>
<h3>New Date Input Controls &#8222;DatePicker&#8220; and &#8222;Calendar&#8220;</h3>
<p>So far only the DateTime Control was available. A Calender Control was only part of sap.me library, which was not open sourced and only available within in SAPUI5. With OpenUI5 version 1.22 the new Calendar control (<strong>sap.m.Calendar</strong>) is filling this gap. Another new input control DatePicker (<strong>sap.m.DatePicker</strong>) is making use of the calendar to select a date. You can compare this three controls and the different way to select a date on the demo page, each with his advantages:</p>
<p><a href="http://blog.mypro.de/wp-content/uploads/2014/07/v122DateInputControls.png"><img loading="lazy" class="alignleft size-large wp-image-522" src="http://blog.mypro.de/wp-content/uploads/2014/07/v122DateInputControls-1024x768.png" alt="v122DateInputControls" width="1024" height="768" srcset="http://blog.mypro.de/wp-content/uploads/2014/07/v122DateInputControls-1024x768.png 1024w, http://blog.mypro.de/wp-content/uploads/2014/07/v122DateInputControls-300x225.png 300w, http://blog.mypro.de/wp-content/uploads/2014/07/v122DateInputControls.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p>These two new controls do work pretty well on my iPad, good job UI5 team!</p>
<h3>New ComboBox, MultiComboBox and MultiInput</h3>
<p>The new ComboBox seems to be an alternative to existing Select control or Input control with suggestion functionality. MultiComboBox and MultiInput both work with Tokens. They look pretty nice:<br />
<a href="http://blog.mypro.de/wp-content/uploads/2014/07/v122OtherInputControls.png"><img loading="lazy" class="alignleft size-large wp-image-524" src="http://blog.mypro.de/wp-content/uploads/2014/07/v122OtherInputControls-1024x768.png" alt="v122OtherInputControls" width="1024" height="768" srcset="http://blog.mypro.de/wp-content/uploads/2014/07/v122OtherInputControls-1024x768.png 1024w, http://blog.mypro.de/wp-content/uploads/2014/07/v122OtherInputControls-300x225.png 300w, http://blog.mypro.de/wp-content/uploads/2014/07/v122OtherInputControls.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><br />
Unfortunately I&#8217;m <strong>not able to remove Tokens</strong> on my device (here iPad), only the keyboard is shown up, but nothing is removed. On desktop you can remove Tokens with a mouse click. On the MultiComboBox you can workaround with the valuehelp, but <strong>MultiInput seems not be usable on a device at all</strong> with this behaviour. I&#8217;m wondering if I do something wrong here as the control is part of sap.m library which is dedicated to mobile devices. Hmmm??? Further investigation seems necessary.</p>
<h3>Compact Mode.. and more</h3>
<p>There are pretty much more parts in this major release, but last topic I want to have look at is the new <strong>Compact Mode</strong> display mode. Use the also new ToogleButton to switch on the Compact Mode, which enables displaying more content on the same area, but also brings up some display issue, as I do not switch the menu page to compact mode:<br />
<a href="http://blog.mypro.de/wp-content/uploads/2014/07/v122CompactMode.png"><img loading="lazy" class="alignleft size-large wp-image-526" src="http://blog.mypro.de/wp-content/uploads/2014/07/v122CompactMode-1024x768.png" alt="v122CompactMode" width="1024" height="768" srcset="http://blog.mypro.de/wp-content/uploads/2014/07/v122CompactMode-1024x768.png 1024w, http://blog.mypro.de/wp-content/uploads/2014/07/v122CompactMode-300x225.png 300w, http://blog.mypro.de/wp-content/uploads/2014/07/v122CompactMode.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p>All in all a good job done by UI5 Team and I&#8217;m looking forward to v1.24!</p>
<h3>Links and further Information</h3>
<ul>
<li><a href="https://github.com/6of5/UI5SplitApp-Boilerplate" target="_blank" rel="noopener">UI5 Boilerplate on GitHub (Source)</a></li>
<li><a href="http://www.mypro.de/ui5-boilerplate/index.html" target="_blank" rel="noopener">UI5 Boilerplate Demo Site</a></li>
<li><a href="https://www.6of5.com/6of5/go/show/1001/UI5/displaypage.htm?PAGE=UI5Boilerplate" target="_blank" rel="noopener">UI5 Boilerplate Wiki Page</a></li>
<li><a href="http://openui5.tumblr.com/post/91942465212/new-release-openui5-1-22" target="_blank" rel="noopener">Official Release Post on OpenUI5 Blog</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>