HCL Domino Volt officiële release

Ik heb al een aantal keren geschreven over Volt, het low-code platform van HCL. En nu is het ook officiëel gereleased door HCL.

Traditionele app-ontwikkelingen zijn tijdrovend, duur om te bouwen en zijn sterk afhankelijk van IT-ontwikkelaars en -bronnen. Domino Volt geeft zakelijke gebruikers en IT-medewerkers meer macht en biedt hen de mogelijkheid om razendsnel enterprise-apps te bouwen om snel uitdagingen te overwinnen en te reageren op de marktvraag.

Als Domino Volt-gebruikers kan je – zonder programmeerkennis – binnen enkele minuten web-apps maken, compleet met formulieren, overzichten, workflow en beveiliging. En dit zelfs vanuit een Excel spreadsheet.
Meer technische ontwikkelaars kunnen apps tot 70% sneller bouwen en ze efficiënt uitbreiden met integraties, aangepaste CSS, JavaScript en REST API’s.
Je apps zijn zonder problemen te gebruiken op een computer als op je smartphone.

Domino Volt wordt aangedreven door Domino. Een Domino Volt applicatie is onderliggend niet meer dan een standaard Domino applicatie. Je kan de toepassing dus zonder probleem integreren in bestaande Notes/Domino applicaties of de data van je bestaande applicaties gebruiken in Domino Volt.

Omdat Volt volledig op Domino gebaseerd is, heb je een Domino licentie nodig. Voor Volt heb je geen apart licentiemodel, je betaalt een meerkost bovenop je Domino licentie. Deze wordt momenteel ingesteld op een meerkost van 10% (tot 200 pers.) tot 6% (> 200 pers.) bovenop de prijs per Domino gebruiker. Je betaalt dus per gebruiker in je adresboek, niet per gebruiker die effectief Volt zal gebruiken. Het voordeel is dan wel dat je je Volt gebruik niet apart moet nakijken.
Momenteel is er nog geen licentiemodel voor anoniem gebruik, maar daar komt binnenkort zeker verandering in.

Je kan Volt zelf proberen op de HCL Sandbox.
https://voltsandbox.hcltechsw.com/
Op deze pagina kan je je registreren om vrij te spelen met de software. Je vind er ook de nodige tutorials en video’s om snel aan de slag te gaan. Laat u overtuigen van de mogelijkheden.

Engage 2020

Engage 2020 zit er alweer op. En – zoals we het gewoon zijn – heeft Theo Heselmans er weer een prachtig evenement van gemaakt. Zelfs het coronavirus hield de enthousiastelingen niet tegen. Met meer dan 420 deelnemers, 58 HCL Masters en 5 Grandmasters en meer dan 80 sessies, was het iets drukker dan gewoonlijk op een doordeweekse dag in de Burgers’ Zoo.

Theo opent Engage 2020

Wat ook opviel was dat de mensen van HCL niet alleen aanwezig waren, maar ook vlot aanspreekbaar. De manier waarop zij open staan voor een gesprek en meedenken naar oplossingen is een gigantische stijlbreuk met de IBM aanpak van enkele jaren geleden.

Dinsdag was de officiële start van Engage, maar op maandag waren er al enkele interessante workshops. Ik heb de workshop over HCL Domino Volt gevolgd; een nieuwe tool voor low-code ontwikkeling van applicaties. Volt is momenteel nog in Beta, maar met deze instructiefilm kan je al een idee krijgen van de mogelijkheden.

HCL Domino Volt Tutorial

Wat interessant is: Volt wordt geïnstalleerd als een add-on voor Domino, dus er is geen complexe installatie noodzakelijk.

Tijdens Engage werd HCL Nomad voor Android telefoons gelanceerd. Nomad bestond al een tijdje voor iOS, maar nu is dus ook de versie voor Android publiek beschikbaar. Voor de geïnteresseerden hier de link naar de Google Play pagina.
HCL is sterk bezig met nieuwe features te ontwikkelen voor Nomad. Zo komen er meer en meer mogelijkheden bij die puur gericht zijn op mobiel gebruik. Het gebruik van de camera of GPS lokalisatie in een Notes applicatie was al langer aanwezig, nu richt men zich vooral op de mobiele interface (een traditionele Notes applicatie is meestal niet geschikt voor een klein scherm).

Naast Nomad voor iOS en Android, is men ook hard aan het werken aan een browser versie. Voor een officiële release datum is het nog iets te vroeg, maar de eerste demo’s waren er al wel. Binnenkort kan je je Notes applicaties gewoon in de browser openen.

Uiteraard waren er veel interessante sessies (meer dan 80). Ze allemaal overlopen, zou ons natuurlijk veel te ver leiden, maar neem gerust een kijkje op de Engage website. De meeste presentaties zullen daar binnenkort ook te downloaden zijn, waaronder ook deze van Kris De Bisschop en mezelf over nieuwe Notes/Domino verwezenlijkingen.

Op Engage 2020 werd het toch heel duidelijk dat we de donkere tunnel bijna uit zijn. Het enthousiasme van alle deelnemers werkt inspirerend en de ‘eeuwige stilstand’ onder IBM ligt nu duidelijk achter ons. Om dit aan te tonen, nog een laatste slide van de openingssessie.

Nieuwe features in de releases van Domino (versie 10 en 11 zijn van HCL, versie 9 was nog van IBM)

We have to evolve to avoid being disrupted.

Richard Jefts – Vice President & General Manager Digital Solutions at HCL

Om af te sluiten wil ik Theo nogmaals bedanken voor het organiseren van dit prachtige event. Ik verheug me nu al op Engage 2021.

Een vroeg kerstcadeau: Domino V11

Nu is het (bijna) echt zover. De eerste release van Notes en Domino volledig in beheer van HCL wordt gelanceerd op 20 december. Vanaf dan is Notes & Domino V11 beschikbaar voor het grote publiek. Dat was één van de aankondigingen tijdens het Live From Tokyo event vorige week.

Een ander topic tijdens de webcast was de lancering van HCL Volt. Onder de projectnaam Leap werkte HCL aan een low-code platform om business-users de kans te geven om snel een applicatie in elkaar te boksen. Een tool te vergelijken met waar het met Lotus Notes allemaal mee begonnen is; maar dan wel moderner, natuurlijk.

Leap werd herdoopt tot HCL Volt en is ook binnenkort beschikbaar. Met Volt kan je zonder technische development skills op een snelle en eenvoudige manier een webtoepassing maken gebaseerd op jouw business noden. Vertrekkende vanuit bv. een excel tabel kan je een workflow gebonden toepassing maken die gekoppeld is aan een Domino toepassing, Sharepoint of Saleforce omgeving of eender welke applicatie die een REST API heeft.
Volt genereert voor jouw de web-applicatie, maar deze is volledig Domino gebaseerd. Als de tool toch nog niet voldoet aan jouw wensen, kan een ervaren Domino Developer deze nog verder uitbreiden. Voor meer informatie en een demo van Volt, kan je dit HCL filmpje bekijken.

HCL Volt introduction and demo

Met HCL Domino V11 is de syncronisatie met LDAP veel eenvoudiger. Er is geen third party software meer nodig. De Domino server heeft zijn eigen sync mechanisme om de Domino Directory up-to-date te houden. Domino stuurt een login aanvraag door naar de LDAP directory, waardoor je bv. met je Windows credentials kan aanmelden op Domino, Domino gerelateerde websites en zelfs Traveler. Ook voor de integratie met SAML en Two Factor Authentication is Domino erop vooruit gegaan.

Bij multinationals gebeurt het wel eens dat verschillende delen van het bedrijf een andere oplossing gebruiken om de mail en agenda te beheren. Met OnTime is het mogelijk om meetings te plannen en free-busy tijd te bekijken, ongeacht de genodigden Domino, Exchange of Gmail gebruiken om hun kalender te beheren.

Op systeem en admin niveau zijn er nog enkele andere nieuwigheden in V11, zoals een verdere integratie met docker en de mogelijkheid om DAOS op te zetten over verschillende servers 11. Een overzicht van de vernieuwingen voor administrators vindt u in onderstaand filmpje.

Heel wat vernieuwing dus en dit allemaal vanaf 20 december…

Er zijn niet alleen aankondigingen gedaan rond Domino, maar ook Sametime V11 en Connections 6.5 komen er aan.
De volledige webcast kan u overigens hier herbekijken.

HCL Domino V11 – Wat kan je verwachten?

IBM Notes is niet meer. HCL Notes komt eraan. Nu de deal volledig rond is, kunnen de mensen van HCL zich volledig uitleven voor het ontwikkelen van een volgende versie. HCL Notes & Domino V11 is gepland voor het einde van dit jaar. En ook voor de komende jaren is er een duidelijke roadmap uitgetekend. Wat een verschil met vroeger…

Een overzicht van enkele aankondigingen. Voor de volledige presentatie over V11 kan u hier terecht: What’s new in Domino V11 Webcast.

HCL Leap

HCL Leap is de opvolger van Forms Builder. LEAP staat voor Lightweight Enterprise Applications. Het zal Business Users de mogelijkheid geven om snel een applicatie te maken, speciaal voor hun noden. En dit zonder programmeerwerk. Mogelijk is Leap nog niet klaar bij het uitkomen van V11; maar men is ermee bezig. Een voorbeeldje vind je in volgend demo-filmpje (Engels)

Mobiele Notes applicaties

Het is de bedoeling om de huidige Notes Applicaties naar het mobiele tijdperk te brengen.
Momenteel is het al mogelijk om met IDMA of HCL Nomad een Notes applicatie op een iPad te gebruiken. Maar HCL gaat een aantal stappen verder. In V11 zal het immers mogelijk zijn om de Notes Client te gebruiken op een iPhone, Android tablet en ChromeOS. Een versie voor Android Phone staat ook op de planning, maar zal helaas niet voor V11 zijn.
En heb geen netwerk, geen probleem, want je kan – zoals we dat in een Notes Client gewoon zijn – volledig offline werken.

Met enige zin voor nostalgie, is het misschien leuk om een pre-2000 toepassing op de allernieuwste toestellen te gebruiken, maar echt praktisch zal dat niet altijd zijn. HCL moderniseert daarom verschillende standaard Notes templates om ze op mobile toestellen een vertrouwde, frisse look te geven. Dit zal in verschillende fases zijn en is dus een proces over meerdere releases.

Templates zullen meer en meer aangepast worden voor alle types van toestellen

Maar Notes draait niet enkel om standaard templates, maar vooral rond de zovele op maat gemaakte toepassingen die gebruikt worden.
Ook daaraan wordt gedacht, want het zal mogelijk zijn om deze modernisering door te trekken naar je eigen applicaties. Zo zal het in V11 mogelijk zijn om via LotusScript GPS gegevens op te vragen via het mobiele toestel.

Notes in de browser

Het is de bedoeling om de Notes Client ook volledig naar de browser te brengen. Dit bestond reeds in het verleden, maar toen was er nog wel een java plugin nodig. Door gebruik te maken van de nieuwste technologieën, zal dit in de toekomst zonder bijkomende installatie kunnen, puur op standaard browser technologie, zodat je op eender welke browser aan je applicaties kan.
En opnieuw met replicatie en offline mogelijkheden.

Notes V11 look & feel

V11 zal er anders uitzien. Niet alleen zal deze versie volledig HCL branded zijn, maar er is ook enorm gewerkt aan de layout van de client en de Mail database. Hiervoor is samen gewerkt met een aantal Business Partners en HCL Masters, waaronder mezelf.

DAOS op meerdere servers

DAOS is een geweldige manier om disk ruimte op de server te besparen. DAOS overloopt alle bijlagen in alle DAOS enabled Notes databanken op de server en gaat deze uit de applicatie halen om ze op het file-systeem van de server te bewaren. DAOS vergelijkt de bijlagen in de verschillende applicaties (of mailboxen) en elke bijlage slechts één keer opgeslagen. M.a.w. een bijlage die via mail naar 10 verschillende mensen is gestuurd, zal slechts éénmaal opgeslagen worden op de server. Dit is een ruimtebesparing van 90%.
DAOS werd geïntroduceerd met Domino V9, maar in V11 gaat men een stap verder. Tot nu toe werkte DAOS op elke server apart. Vanaf V11 is er de mogelijkheid om over verschillende servers tegelijk te kijken.


Domino: klaar voor de toekomst

Engage zit er weer op. Na de SS Rotterdam vorig jaar, was Autoworld in Brussel de plaats voor deze fantastische beurs. Altijd prachtige locaties, altijd een super evenement.

Zoals elk jaar zijn er ook heel wat nieuwigheden aangekondigd. Er is een preview gegeven van de nieuwe Notes Client, Notes on mobile is aangekondigd voor Android en voor smartphones (Android en iOS). De plannen voor Sametime en Connections zijn uit de doeken gedaan. Daarnaast zijn er ook veel sessies geweest rond innovatieve technieken, die ons geliefde platform toch naar een hoger niveau brengen.

Notes Client v11

Er is een eerste live demo gegeven van de Notes Client V11. Er werd getoond hoe de mail en kalender er zullen uitzien. Qua look en feel ziet het er een stuk moderner uit. Er is vooral gewerkt aan de gebruiksvriendelijkheid. Minder gebruikte opties zijn verborgen achter open te klappen secties of een submenu. Het nieuwe design ziet er daardoor veel rustgevender uit, zonder dat er aan functionaliteit wordt ingeboet.

Een aantal keren heb ik de opmerking gehoord dat er – buiten het design – niet veel is veranderd. De mail en kalendar zijn echter al heel uitgebreid, ook in V9 en V10. Bovendien zijn de templates gemakkelijk aan te passen en uit te breiden voor specifieke noden. De grootste bekommernis van klanten was het oubollige design; waar nu duidelijk toch iets aan gedaan is. Als we dit design kunnen doortrekken naar de eigen applicaties in de Notes Client, wordt er komaf gemaakt met de verouderde look.

V11 zal bij lancering ook direct beschikbaar zijn voor iOS en Windows én in meerdere talen.

Notes Goes Mobile

De IDMA (IBM Domino Mobile Application) voor iOS tablets bestaat nu al even en is ook in de appstore verkrijgbaar.
De Notes Client naar mobiele toestellen brengen is een prioriteit bij HCL.
Binnenkort zal er ook een Android versie uitkomen en men werkt ook aan een nieuwe browser versie voor de desktop/laptop.
Er is ook een eerste demo gegeven van de Notes Client voor smartphones.

Screenshot 2019-05-16 at 18.37.19
Notes Client applicaties op je iPhone? Binnenkort kan het.

Dit ziet er zeer goed uit, de look en feel komt dicht in de buurt van standaard mobile toepassingen en toch is het een standaard Notes applicatie. Op vlak van development zullen er een aantal mogelijkheden bijkomen om bestaande (en nieuwe) applicaties te optimaliseren voor het kleine scherm.

De toekomst volgens HCL

De Collaboration portfolio van HCL zal bestaan uit 5 grote blokken, waarbij Notes & Domino bovenaan staan. Daarnaast wordt er ook geïnvesteerd in Sametime (chat en online meetings), Leap (NoCode application ontwikkeling voor business users), DX (portaal) en Connections (social platform).

HCL zet vol in op integratie van de verschillende collaboration platformen die ze overnemen van IBM. De producten zullen niet alleen beter met elkaar integreren, maar ook met producten van de concurrentie. Het doel is om uw werkomgeving om te vormen naar één groot, geïntegreerd verhaal.

Denk groots

Nu Domino ook rechtstreeks vanuit Node.js te benaderen is, gaat er een hele nieuwe wereld van mogelijkheden open. Wat dacht u van volgende demo, die eerder dit jaar is gegeven op IBM Think:

Een Notes database aansturen met Alexa? Waarom niet…

Met Node.Red is dit zelfs helemaal niet zo moeilijk om op te zetten. Zo is het ook mogelijk om Notes/Domino applicaties te laten integreren met #Slack of welke andere omgeving dan ook. Begin maar al te dromen.

Rest calls and JSON Parsing in LotusScript

This is my first technical article on this blog. To reach a broader audience in the Notes/Domino community (and to avoid weird translations), I decided to write technical articles in English. Other experiences and opinions on the Notes/Domino world will stay in Dutch.

That being said, I wanted to discuss the new functions in LotusScript to do HTTP Requests and parsing the json response to use it in a Notes application.

You can use the new NotesHTTPRequest class to do the api request. This class allows you to do get, put and post requests. You can set headers using the setHeaderField method.
By default, the returned response can be either a byte array or a string (depending on the service called). To avoid this, set the (undocumented) preferString property to true. This will enforce the response to be a string.

Dim webRequest As NotesHTTPRequest
Set webRequest = session.createhttprequest()

'Get the response Dim response As String
webrequest.preferstrings = True response = webrequest.Get(<URL>)
'Throw error if response status is not OK If InStr(webRequest.Responsecode, "200 OK") = 0 Then 'Return Status is not OK Error 1000, "Request returned response code " + webRequest.responseCode End If

Note that the URL that you pass to the request has to be encoded. Most browsers encode the url after you typed it in the addressbar. But the NotesHTTPRequest does not. Therefor, make sure you encode the url before using it for the request. Here’s a small example:

Dim url as string
url = "https://mysite.com/get?name=John Doe"

'Using this url in the get request won't work
response = webrequest.get(baseurl + parameters)

'By encoding the url, it will
response = webrequest.get(urlEncode(url))

%REM
I use this function to encode url parts
It will encode special characters, but won't touch & or =, 
so you can pass the full url in one go
Kuddos to 
http://dominonotes.blogspot.com/2008/11/lotusscript-equivalents-for-urlencode.html
%END REM
Function urlEncode(s As String) As String
    If Len(s) = 0 Then Exit Function

    Dim tmp As String
    Dim c As String
    Dim i As Integer

    For i = 1 To Len(s)
        c = Mid(s, i, 1)
        If (Asc(c) >= 65 And Asc(c) <= 90) _
            Or (Asc(c) >= 97 And Asc(c) <= 122) _
            Or (Asc(c) >= 48 And Asc(c) <= 58) _
            Or Asc(c) = 38 _
            Or (Asc(c) >= 45 And Asc(c) <= 47) _
            Or Asc(c) = 58 Or Asc(c) = 61 _
            Or Asc(c) = 63 Or Asc(c) = 126 Then
            tmp = tmp + c
        Else
            tmp = tmp + "%" + Hex(Asc(c))
        End If
    Next i
    urlEncode = tmp
End Function

You can now parse the response using the NotesJSONNavigator class. However, this still has some caveats. The new class doesn’t behave well on some special characters in the json you pass (like CR, LF, °, ü, …) and you’ll get an error trying to parse this. According to HCL, there might still be an issue with the character encoding while processing the json data.

However, there is a workaround to avoid this by forcing the data to UTF-8. When you save the response to a file and then read it using a notesstream with UTF-8 encoding, you will be able to parse the data (Thanks to Dave Cohen for the tip)

'write the requests response to a file
Dim fileNum As Integer
fileNum% = FreeFile()
Dim filepath As String
filepath = "c:\temp\" + Format(Now, "yyyy-mm-dd-hhnnss") + ".json"
Open filepath For Output As fileNum%
Print #filenum, response
Close filenum

'Read the file using a NotesStream
Dim inbuf As NotesStream
Dim json As variant
Set inbuf = session.Createstream()
If Not(inbuf.Open(filepath, "UTF-8")) Then
	Error 1001, "Unable to open JSON file (" + filepath + ")"
End If
json = inbuf.Read()
Call inbuf.Close()

'remove temporary file
Kill filepath

'Create the Json Navigator to parse the data
Dim jsnav As NotesJSONNavigator
If IsArray(json) Then
	Set jsnav = session.CreateJSONNavigator(json)
Else
	Error 1002, "JSON is nothing"
End If

Once you have the NotesJSONNavigator object, you can loop through the different elements. Here’s some sample code to do so.

Dim parsed As string
Dim el As notesjsonelement
Set el = jsnav.Getfirstelement()

While Not el Is Nothing
	parsed = parsed + parseelement(el, "")
	Set el = jsnav.Getnextelement()		
Wend

MsgBox parsed


Function parseElement(el As notesjsonelement, parent As string)
	Dim returnValue As String
	Dim sName As String
	sName = parent + el.name
	Select Case el.type
		Case 1: 'Object
			Dim ob As notesjsonobject
			Set ob = el.value
			returnValue = returnValue + parseObject(ob, parent + el.name)
		Case 2: 'Array
			Dim ar As NOTESJSONARRAY
			Set ar = el.value
			returnValue = returnValue + parseArray(ar, parent + el.name)
		Case 3: 'String
			returnValue = returnValue +  sName + " - '" & el.Value & "'" + Chr$(10)
		Case 4: 'Number
			returnValue = returnValue +  sName + " - " & el.value + Chr$(10)
		Case 5: 'Boolean
			Dim b As String
			If el.value Then 
				returnValue = returnValue +  sName + " - true" + Chr$(10)
			Else
				returnValue = returnValue +  sName + " - false" + Chr$(10)
			End If
		Case 64: 'empty
			returnValue = returnValue +  sName + " - <EMPTY>" + Chr$(10)
		Case Else: 'Unknown
			returnValue = returnValue +  sName + " Unknown type " & el.type + Chr$(10)
	End Select
	parseElement = returnValue
End Function

Function parseObject(ob As notesjsonobject, parent As String) As string
	Dim el As notesjsonelement
	Dim sName As String
	Dim returnValue As string
	Set el = ob.Getfirstelement()
	While Not el Is Nothing
		returnValue = returnValue + parseElement(el, parent + ".")
		Set el = ob.Getnextelement()
	Wend
	parseObject = returnValue
End Function

Function parseArray(ar As NOTESJSONARRAY, parent As String)
	Dim el As notesjsonelement
	Dim sName As String
	Dim returnValue As String
	
	
	Set el = ar.Getfirstelement()
	Dim counter As Integer
	While Not el Is Nothing
		returnValue = returnValue + parseElement(el, parent + "." & counter)
		Set el = ar.Getnextelement()
		counter = counter + 1
	Wend
	parseArray = returnValue
End Function

Another way to get a json element is to get it by name or by pointer. A
JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.

'By name
Set el = jsnav.Getelementbyname("latitude")

'By pointer
Set el = jsnav.getElementbypointer("/daily/data/0")

I created a demo application that allows youto retrieve a weather forecast for any place on earth. I used the Google Maps API to retrieve address information and the Dark Sky API to get a forecast. You’ll need a key for both api to be able to use the app. You can download the demo here.