Certified Application Developer Notes 9

Today I passed the second exam for my certification for IBM Application Developer Notes and Domino 9. My last certification dated from the Notes 7 era so I was forced to take the two core exams as explained in the image below:



This second exam was much more focused on development with XPages, using the Extension Library and the Mobile controls. I guess according what you would expect in modern Domino development. There were the ooccasional LotusScript and @Formula questions, but the majority of the questions were XPages related. Personally I find the setup a bit odd. I Hardly use @Formula or LotusScript in new projects. I wonder why IBM is not defining exams within each technical area seperately e.g. XPages, @Formula & Functions, LotusScript, Java and Extension Library if you wish.

Overall I liked the second exam better, no odd questions about Notes client installation, parameters in the client, more practical development questions. But also expect questions on JSF, XSP configuration etcetera.

A tip I could give is to take a look at the API documentation:

XPages configuration file format

I have not considered to upgrade my certification to the ‘Advanced’ level since I have not worked with administration so intensively lately. I expect though that the XPages mobile advanced topics would be a “piece of cake”. What are your experiences? After all it is also a financial question because the exams are not free. Maybe there will be the option to take an exam on IBM ConnectED 2015?


Handsons from EntwicklerCamp 2014

Subject Download Presentation
Javascript – Die ersten Schritte http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/aa9f566f61ab0287c1257be200295c9d/$FILE/H1-Javascript_HandsOn_1_0_0.pdf
Lotuscript – die ersten Schritte http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/4865dda7cb38ffc0c1257be200295ca0/$FILE/H2-LotusScript.pdf
Formeln – die erste Schritte http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/f33e4cd0f2817177c1257be200295c99/$FILE/H3-Hands%20Out%20Formel.pdf
C-API – die ersten Schritte http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/ab13b5dfac044f51c1257be200295c9a/$FILE/H5-C-API-Erste%20Schritte.pdf
XPages Grundlagen http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/715e4cb5349a351cc1257be200295c9b/$FILE/H6-XPages_0_0_2.pdf
Webservices unter Notes/Domino http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/41dc29a6c9b3d108c1257be200295c9f/$FILE/H8-Webservices%20unter%20NotesDomino.pdf

Presentations from EntwicklerCamp 2014 – Track 4

Track Session Subject Download Presentation
Track4 Session1 The Road to Damascas – LS and @Formula to SSJS http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/ddd7b3baaf49dbadc1257be200295cc1/$FILE/T4S1-Xpages-road%20to%20damascas.pdf
Track4 Session2 Wo speichert Notes was? Und was kann der Entwickler damit anfangen? http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/2071360f70207a00c1257be200295cbf/$FILE/T4S2-Wo%20speichert%20Notes%20was.pdf
Track4 Session3 WebServices unter Notes/Domino http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/0eca636da0020f78c1257be200295cb7/$FILE/T4S3-WebServices.pdf
Track4 Session4 C / C++ Api benutzung in Domino und Notes http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/c7c7068c38e3ce99c1257be200295cb4/$FILE/T4S4-Domino%20C-API.pdf
Track4 Session5 Coffee from a Friend – Using Third Party Java Libraries http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/c9fadb7e1ca4a6d2c1257be200295cb5/$FILE/T4S5-Xpages-coffe%20from%20a%20friend.pdf
Track4 Session6 Notes und die Zeit http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/3b9b4049f4b5a50fc1257ca200413f27/$FILE/T4S6-Notes%20und%20die%20Zeit.pdf
Track4 Session7 Schick mit Grid – DataGrids in XPages http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/0a3a4e6d95ce04c3c1257ca200411c72/$FILE/T4S7-SchickMitGrid.pdf
Track4 Session8 Wo speichert Notes was? Und was kann der Entwickler damit anfangen? http://www.entwicklercamp.de/konferenz/ent2014.nsf/bc36cf8d512621e0c1256f870073e627/59dd26d2f93162f6c1257ca2004120c3/$FILE/T4S8-Wo%20speichert%20Notes%20was.pdf

Lotuscript to Java Beans

It seems that video tutorials / webinars have become the standard in education. Probably because video seems to be considered as one of the most trustworthy source of information. The less positive effect of video tutorials is that they (still) take time.

During a trip lately I was able to watch the excellent Lotuscript to Java Beans webinar, presented by Tim Tripcony.

Below you find screenshots of moments I thought were most interesting:









Go watch that show if you have not already!

Job Wanted

Looking for a creative brain? Choose me!


Presentations from EntwicklerCamp 2012 available

I have experienced that IBM has some problems linking to their material that lies out in the open, but I hope this post does not cause the same kind of trouble. I also know the solution in case needed: contact the content publisher to remove the files…

Nevertheless Entwicklercamp sounds like a excellent technical conference and for those of you who have no problems with reading a bit of German (not all presentations are in German, by the way) here are some interesting presentations:

Track 0 – Session 1 – Eröffnungssession – Rudi Knegt (link)

Track 0 – Session 2 – Opening Session – Phil Riand (link)

Track 0 – Session 3 – Speeddemoing – Diverse (link)

Track 0 – Session 5 – Closing Session: Ein (grausamer Selbstversuch) – 5 Monate ohne Lotus Notes – Werner Motzet

“Ein (Arbeits-)Leben ohne Lotus Notes” / “Ein (grausamer Selbstversuch) – 4 Monate ohne Lotus Notes” (link)

Track 1 – Session 1 – XPages – 1 – Grundlagen – Ulrich Krause (link)

Track 1 – Session 2 – XPages: Practical Ideas for Converting Existing Notes Applications – Matthew Fyleman (link)

Track 1 – Session 3 – XPages – 3 – eXtension Library – Viagra für die XPages – Ulrich Krause (link)

Track 1 – Session 4 – XPages – 4 – IBM oneUI + MyTheme = myUI – Manfred Meise (link)

Track 1 – Session 5 – XPages – 5 – Wie mache ich meine XPages Applikationen ‘social’? – Niklas Heidloff (link)

Track 1 – Session 6 – XPages – 6 – XPages Extensibility API – going deep – René Winkelmeyer (link)

Track 1 – Session 7 – Zähme den Tiger – Java-Entwicklung in Notes und Domino – Bernd Hort (link)

Track 1 – Session 8 – XPages – 8 – Nutzung des Dojo Toolkits zur Optimierung bestehender Notes-Web-Anwendungen – Matthias Bierl (link)

Track 2 – Session 1 – Extending Lotus Notes – Widgets, Livetext, Plugins – Detlev Poettgen (link)

Track 2 – Session 3 – Agile Softwareentwicklung mit LotusNotes – Werner Motzet (link)

Track 2 – Session 4 – Ich weiß was du diesen Sommer tun wirst – Gregory Engels (link)

Track 2 – Session 5 – Erfolgreiches Projektmanagement mit agilen Methoden – Christian Habermueller (link)

Track 2 – Session 6 – Make the impossible possible with XPages – Frank van der Linden (link)

Track 2 – Session 7 – Connect your Lotus Notes app to the Activity Stream with XPages – Frank van der Linden (link)

Track 2 – Session 8 – Keine Angst vor großen Tieren – Peter Klett (link)

Track 3 – Session 1 – Rediscover the Power of LotusScript in Notes/Domino 8.5 – Rocky Oliver (link)

Track 3 – Session 2 – Die besten Open Source Projekte von OpenNTF – Niklas Heidloff (link)

Track 3 – Session 3 – Richtig(er) Kommunizieren! – Wie bringe ich meine Botschaft rüber? – Jürgen Kunert (link)

Track 3 – Session 4 – XPages und Domino App Dev Erweiterungen – Phil Riand und Niklas Heidloff (link)

Track 3 – Session 5 – Turbocharge Development in Notes/Domino 8.5 – with @Formulas! – Rocky Oliver (link)

Track 3 – Session 6 – Mobiler Zugriff auf Notes Daten – Matthias Schneider (link)

Track 3 – Session 7 – Es gibt keine Ausreden mehr – eGit im DDE : Versionskontrolle leicht gemacht – Holger Chudek (link)

Track 3 – Session 8 – Using the XPages Mobile Controls… and looking at alternatives – Rich Sharpe (link)

Track 4 – Session 1 – Security in Notes – Manfred Meise (link)

Track 4 – Session 2 – Workflow – Richtig analysieren, dokumentieren und schlüssig hinterfragen – Christian Habermueller (link)

Track 4 – Session 3 – Lotus Protector programmieren – Matthias Schneider (link)

Track 4 – Session 4 – WebServices unter Notes/Domino – Tim Pistor (link)

Track 4 – Session 5 – Hilfe, ich habe geerbt! – Bernhard Köhler (link)

Track 4 – Session 6 – NoSQL-Datenbanken – ein Überblick – Karsten Lehmann (link)

Track 4 – Session 7 – Notes und die Zeit – Bernhard Köhler (link)

Track 4 – Session 8 – Schnittstellendesign mit dem Tivoli Directory Integrator – Am Beispiel SAP – Andreas Artner (link)

In case you are a bit lazy or dont care about bandwidth: <here> you can find the presentations archived together by track…

There are also some hands-on sessions available:

Hands-On 1 – Javascript – die ersten Schritten – Manuel Nientit (link)

Hands-On 3 – XPages – the first Steps 1 – Howard Greenberg (link)

Hands-On 4 – XPages – the second steps 2 – Howard Greenberg (link)

Hands-On 5 – Signierung und Verteilung von Plugins für den Notes Client – Detlev Poettgen (link)

Hands-On 6 – LotusScript – so einfach geht es los – Peter Klett (link)

Hands-On 7 – Mobiler Zugriff auf Notes Daten – Matthias Schneider (link)

Hands-On 8 – XPages Extensibility API – first steps – René Winkelmeyer (link)

Btw, all links were collected from this source.

CardScanR available on OpenNTF

I finalized an initial (and presumably final) release on OpenNTF, available here.

The application is a simple contact registration application and ofcourse XPages based. I think the application can be a great start to extend it as an inquiry application…

Personally I learned a bit more on combining LS agents with XPages, navigation rules and ofcourse the OneUI user interface definition (still a puzzle sometimes).

How to create a spotlight page for your Notes database

To maintain the development of a number of standardized applications I use a Notes database where developers/application owners can register ‘new ideas’ for applications, convert them into tasks and include them in planned releases.

One application for example allows the storage of all kinds of documents, define a review cycle, set access restriction et cetera. To offer a more attractive ‘startpage’ that will make it easier for users to scan new contributions or their own latests contributions the idea of a ‘spotlight‘ emerged:

Basically we created a form that will be opened within a classical frameset when launching the application.

Form requirements

SaveOptions field, set to “0” and hidden ofcourse.

Now for each ‘entry’ I have 7 hidden fields:

Tx_TitleSpotDoc1, text, editable

Na_AuthorSpotDoc1, names, editable

Td_ModifiedSpotDoc1, date/time, editable

Tx_ReadableDateSpotDoc1, text, editable

Tx_FileTypeSpotDoc1, text, editable

Tx_FileTypeIconSpotDoc1,text, editable

Tx_UNIDSpotDoc1, text, editable

(for the next entries the fields are called Tx_TitleSpotDoc2, Tx_TitleSpotDoc3 etcetera)

For the entries under the ‘My Latest Documents’ header the fields are named:

Tx_TitleMySpotDoc1, text, editable

Na_AuthorMySpotDoc1, names, editable

Td_ModifiedMySpotDoc1, date/time, editable

Tx_ReadableDateMySpotDoc1, text, editable

Tx_FileTypeMySpotDoc1, text, editable

Tx_FileTypeIconMySpotDoc1,text, editable

Tx_UNIDSpotMyDoc1, text, editable

In the part where I diplay the entries the markup looks like this:

Note that all fields are computed for display.  Here are their values:

Computed image: @Text(Tx_FileTypeIconSpotDoc1)

Title: Tx_TitleSpotDoc1

Author: @Name([CN]; Na_AuthorSpotDoc1)

Modified: Td_ModifiedSpotDoc2

Added: Tx_ReadableDateSpotDoc1

The computed image and the title field have an Action Hotspot, with the onclick value:

Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Call OpenDocumentByUNID(ws.CurrentDocument.Document.Tx_UNIDSpotDoc1(0))
End Sub

They also use a Script Library (LotusScript):

Use “StartPageFunctions”

The form has also this library referenced under (Options).

Under the Postopen event we call the initiation function:

Sub Postopen(Source As Notesuidocument)
Call StartPageInit(Source)
End Sub

I will include the script as a file: startpagefunction.dxl

That’s about it! Now you have a much more interesting startpage for your Notes app!

Here are the icons used:


XPages and WQO agents – Cardscan app

I would love to rebuild my Cardscan integration application with XPages and make it an OpenNTF project, the only BUT is  that the transfer of the data that comes from Cardscan is done via a WQO agent in LotusScript.

I wonder if there are examples out there that proof it IS possible using WQO agents in XPages? It would save me a hell of a time and probable if it is not possible I would not do the transformation of the app att all (I am not a Java guy).

So hints/demo/code etcetera are welcome…

Create breadcrumbs (Notes)

The following code lets you store breadcrumbs on a document, based upon the parent-child relation.

Function GetDocumentCategory(doc As notesdocument) As String
Dim session As New notessession
Dim db As notesdatabase
Dim node As notesdocument
Dim Category As String
Set node = doc

Set db = session.currentdatabase

Do While node.isResponse
If node.isvalid Then
Set node = db.getdocumentbyunid(node.parentdocumentunid)
If Category = “” Then
Category = node.Title(0)
Category = node.Title(0) & “\” & Category
End If
End If

GetDocumentCategory = Category
End Function

Call the function somewhere, for example the querysave event on a form:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As notesdocument
Set doc = source.document
Call doc.replaceitemvalue(“Path”, GetDocumentCategory(doc))
End Sub