HCL Notes/Domino V11 aangekondigd

Op 4 december is het zover. Dan worden HCL Notes en Domino V11 officieel gelanceerd. De lancering wordt live uitgezonden. Registreren kan via
https://www.gotostage.com/channel/livefromtokyo

Op deze site vind je overigens nog een aantal andere interessante video’s. Neem gerust even een kijkje.

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.

2019…

Laat ik beginnen met iedereen een gelukkig nieuwjaar te wensen. En natuurlijk veel plezier met de Notes & Domino producten.

Eind vorig jaar heb ik een mail van IBM gekregen dat ik me in 2019 voor een jaartje IBM Champion mag noemen. Een extra motivatie om jullie op de hoogte te houden van wat er reilt en zeilt binnen onze community.

2019 wordt een jaar vol verwachtingen. Er staat dan ook wel wat te gebeuren.

IBM Domino Mobile Applications zal dit jaar ook uit ‘early acces mode’ gaan, zodat iedereen zijn Notes toepassingen mobiel kan gebruiken.

Ook wordt Domino opengetrokken naar de node.js wereld. Een grote groep developers zal dus van onze robuuste technologie gebruik kunnen maken.

Als de roadmap gevolgd wordt, gaan we dit jaar al een nieuwe versie van notes & domino voorgeschoteld krijgen. In V10 was de modernisering vooral op server niveau te merken. In V11 mogen heel wat vernieuwing aan client zijde verwachten.

2019 wordt ook het jaar dat Notes/Domino en Connections de IBM portfolio verlaten. Zoals u eerder kon lezen op mijn blog zal HCL deze producten overnemen. HCL heeft al veel tijd en geld gestoken om V10 te realiseren en er staan ons nog veel meer mooie dingen te wachten dit jaar. Wie weet wat ik binnenkort nog allemaal kan aankondigen…

HCL neemt Collaboration Software van IBM over.

In 2017 kondigden IBM en HCL een partnership aan, waarbij HCL zou instaan voor het ontwikkelen van nieuwe versies van onder andere Notes & Domino. Ook zou HCL nieuwe producten ontwikkelen die hieraan gerelateerd zijn. IBM zou blijven instaan voor de marketing en het licentiebeheer van deze producten.

In 2018 konden we hiervan de eerste resultaten zien. Met V10 kwam er eindelijk een nieuwe versie (v9.1 is al van 2013), IBM Domino Mobile Apps brengt de Notes Client naar de iPad en de integratie met Node.js is in Beta release.

De relatie tussen IBM en HCL was echter niet altijd even duidelijk. Zo werd meermaals gezinspeeld op een eigen HCL Notes versie naast die van IBM. En wat met licenties voor producten van HCL die op Notes/Domino gebaseerd zijn?
In het partnership was ook slechts een deel van de collaboration software opgenomen. Zo bleef Connections volledig bij IBM.

Aan deze onduidelijkheid komt nu een einde. HCL koopt een aantal software producten over van IBM. Naast Notes & Domino (email en low-code rapid application development) en Connections (workstream collaboration) zijn ook BigFix (secure device management), Unica (marketing automation software), Commerce (onmichannel e-commerce) en Poral (on premise digital experience) in de deal betrokken. HCL betaalt hier ruim 1.5 miljard euro voor.

De overname zal midden 2019 worden afgerond.

Persoonlijk vind ik dit goed nieuws. Alles wordt nu een stuk duidelijker. Notes & Domino klanten en Business Partners gaan terug één aanspreekpunt hebben. HCL is ook niet meer afhankelijk van IBM om te bepalen wat er met het product gebeurt. Het is nu aan HCL om de dit jaar ingeslagen weg verder te zetten.

IBM van zijn kant lijkt het Collaboration verhaal nu volledig te verlaten. Met de recente aankoop van RedHat zetten ze nu volop in op het Cloud verhaal.

IBM Domino Mobile Apps

Een nieuwe toepassing maken in Notes kan heel snel gaan. Er zijn weinig systemen waarin je op enkele uren tijd een applicatie werkende hebt die on- als offline kan werken, met de nodige security ingebakken.
Een nadeel is dat je voor een traditionele Notes applicatie afhankelijk bent van de Notes Client, die enkel beschikbaar is voor Windows PCs en Apple Macs.
Met de opkomst van tablets en andere mobiele toestellen, is de noodzaak groot dat die (oude) Notes toepassingen ook mobiel gebruikt kunnen worden.

Met een Windows tablet of hybride toestel is dit reeds mogelijk, aangezien die gewoon op Windows draait en de Notes Client dus zonder probleem geïnstalleerd kan worden. Alleen zijn Windows tablets niet zo populair als bijvoorbeeld een iPad.

Maar ook iPad gebruikers moeten niet op hun honger blijven zitten. IBM heeft aangekondigd dat de Notes Client beschikbaar wordt voor iPad onder de naam IBM Domino Mobile Apps. En dit zonder extra licentiekosten: de huidige licenties voor Notes/Domino volstaan voor het gebruik van deze applicatie.
Lokale replicatie van de toepassingen op de iPad zullen mogelijk zijn. Je kan dus ook offline werken als er geen netwerk beschikbaar is.
Extra development is niet nodig, want de code in je applicaties (@Formula, LotusScript) blijft werken. Al kan een opfrissing van de UI natuurlijk nooit kwaad.

Als voorproefje enkele screenshots van hoe een Notes applicatie er op een tablet kan uitzien. Met dank aan Theo Heselmans die deze demo in elkaar gestoken heeft. Je kan de werkende toepassing hier downloaden.

https://openntf.org/Projects%5Cpmt.nsf/0/0AE3C0947111582385258319005A0ACA/%24file/WineTasting1.jpg

https://openntf.org/Projects%5Cpmt.nsf/0/0AE3C0947111582385258319005A0ACA/%24file/WineTasting3.jpg

https://openntf.org/Projects%5Cpmt.nsf/0/0AE3C0947111582385258319005A0ACA/%24file/WineTasting4.jpg

IBM plant op het einde van deze maand de app beschikbaar te stellen voor klanten en business partners. Meer informatie vind je op de site van IBM: Destination Domino.