Testing new DataBase methods in Domino V12 Early Access without Domino Designer V12

Domino V12 Early Access CodeDrop 3 comes with a couple of new Java/LotusScript transaction methods that have been added to the (Notes)Database class.
At the moment, there is no Domino Designer V12 available. So how can we test the new methods?

If you are familiar with Java, then this is possible, because Java development not neccessarily needs Domino Designer.

All we need is the Notes.jar file from the V12 Domino Docker container.

To access the Domino V12 program directory you can use the commands as described in https://help.hcltechsw.com/domino/earlyaccess/inst_dock_useful_commands.html

or you can create a volume and access the program directory in the same way as you do with the data directory.

docker run -it -p 80:80 -p 443:443 -p 1352:1352 --hostname=serv03.fritz.box --name domino12 --cap-add=SYS_PTRACE --stop-timeout=90 -v notesdata:/local/notesdata -v d12:/opt/hcl/domino/notes/latest/linux domino-docker:V1200_10082020prod

Now that you have access to the Domino V12 program directory, copy the Notes.jar file located in /opt/hcl/domino/notes/latest/linux/ndext to your development environment.

I have created a small JaveServerAddin based on the work of Dmytro Pastovenskyi https://dpastov.blogspot.com/2020/10/javaserveraddin-in-domino-introduction.html.

You can download the sources from here

In the BuildPath change the location of Notes12.jar to the location of Notes.jar in your environment.

To build the project, change to the bin directory inside the project and issue the command

jar cfe D12Test.jar Domino12Test de 

Copy the resulting .Jar file to the ndext folder in the Domino V12 program directory. Make sure to set the correct execution rights ( 755 ). Now you can start the addin with

lo runjava de.eknori.Domino12Test

After the addin has started you will see the following on the Domino console

11/01/2020 05:45:15 Domino12Test: version 2
11/01/2020 05:45:15 Domino12Test: build date 2020-10-22 11:00 CET
11/01/2020 05:45:15 Domino12Test: java 1.8
11/01/2020 05:45:15 Domino12Test: seconds elapsed 30

During the next scheduled addin run, the code will create a new document in the d12test.nsf. You need to create this database on your server before running the addin. The database does not need to contain any design elements.

When the addin ran, you should see new documents in the database created with a form “commit”.

You should NOT see any documents that have a “rollback” form.

The same way, you can also test the new DQL enhancements in V12 Early Access Code Drop 3.

More (Yet) Undocumented Database Properties

Here is a list of yet undocumented values for the GetOtion / SetOption method of the NotesDatabase class.

GetOption(82) / SetOption(82,true) = Enable Compress document data
GetOption(81) / SetOption(81,true) = Use DAOS

Use DAOS also created a new field $DAOS in the NotesIcon design note if the field is not available and update the field value to 1 (enabled) or 0 (disabled) when the field is already present

Both are only available with ODS 51

GetOption(74) / SetOption(74,true) = still unknown, but adds O to $Flags

And here are a few database properties that can be get / set by modifying the $Flags field programmatically

$Flags = I = Inherit operating system theme from Notes preferences (ODS 51)
$Flags = q = Compress Database Design
$Flags = C = Allow connections to external databases using DCRs

Finally, if you want to find out, if the “Enable enhanced HTML Generation” property is enabled, check if field $AllowPost8HTML is available in the NotesIcon design note. The according theme is stored in $DBTheme.