Source code issue with alternative usage view columns  

By Patrick Kwinten | 2/4/25 5:11 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In a previous post I demonstrated how you can improve the usability of image resources by switching alias and file name. It works fine until you start synchronizing with your On Disk Project. While a normal image resource contains of the image file and some metadata but when you change the filename with the alias and vice versa Designer no longer detaches the graphical file and only writes the metadata file to the ODP.

Do Crazy Innovative Things in the Notes Client  

By Patrick Kwinten | 1/29/25 5:04 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In February OpenNTF organizes a webinar titled ‘Do crazy innovative things in the Notes client‘. I am sure (from first hand experience) that Bernd Gewehr has pushed his developers to stretch the limits about what is possible to do in the Notes client. Recently I have been doing some development for the Notes client and you an easily bump to the limitations. I will write about some things that I applied to the application that I was working on.

Handling UserAccessException  

By Patrick Kwinten | 1/28/25 2:02 AM | Development - Notes / Domino | Added by Roberto Boccadoro

The almost standard way to work at the company is to work in a committee. So almost everyone is member of one or more committees for different types of work-areas. Commitees have restricted access and organize agendas and meetings where decisions are made. Agendas, meetings and decisions are shared via mail and these mails are again shared. Curious people try to access the committee documents via URL’s although they have no access to the committee and then the UserAccessException occurs.

Java != Java on Domino  

By Oliver Busse | 1/9/25 2:26 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Today I again encountered some strange things on different Domino machines. It’s Java again. The other specs are: my local dev box is 12.0.2FP2, running in a container using the HCL image the other machines are natively installed 12.0.2FP2, also Linux there are no language packs installed at all The parts that are used: some Java in an NSF, defined as managed bean (but this doesn’t matter) Java is using ExtLibUtil and java.util.Calendar some XSP in an NSF

SSL Certifier is not trusted  

By Fredrik Norling | 1/8/25 12:30 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Root cert not trusted when getting SSL encrypted data using XPages or Domino agents I have seen a problem with getting data using XPages or agents from Amazon hosted services because they now are using a Amazon Trusted Root. But it can be others poping up also in the future.

Useful Notes SmartIcons: Reformat text is my favorite  

By Daniel Nashed | 12/30/24 7:09 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Notes formula are one of the lost arts. I am a big fan and have started to work with Notes at a time where we had no Lotus Script nor Java. Today formula language is still very powerful. I am using it in many ways including C-API and Lotus script. There are many @Commands for UI automation available. But there are also Lotus Script UI classes. The really cool part of formula language is that you can use the commands in SmartIcons. The following command selects the body text and sets the text to Default Sans Serif with 10pt. --- @Command([EditGotoField];"Body"); @Command([EditSelectAll]); @Command([TextSetFontFace];@GetMachineInfo ([EnvVariable];"NAMEDSTYLE1_FACE")); @Command([TextSetFontSize]; "10"); @Command([EditDeselectAll]); --- But there are more SmartIcons I use every day... .

New Release: XPages Jakarta EE 3.3.0  

By Jesse Gallagher | 12/23/24 1:57 AM | Development - Notes / Domino | Added by Roberto Boccadoro

As part of finishing my holiday gift shopping, I published version 3.3.0 of the XPages Jakarta EE project today. This release contains a number of bug fixes to do with asynchronous and scheduled tasks based on some edge-case and intermittent trouble I ran into while developing some apps with it. Additionally, it has some consistency fixes for the Jakarta NoSQL support - in particular, it improves mapping of object properties to columns, matching the item names case-insensitively and matching special fields like FIELD_CDATE to matching columns with formulas like @Created.

Improving the usability of the view column icon – Kwintessential Notes  

By Patrick Kwinten | 12/17/24 2:54 AM | Development - Notes / Domino | Added by Roberto Boccadoro

IIcons are a great way to let certain document information standout in a view with minimal space. I assume you know you can add icons to a Notes view , right? Although the icons are out of date , limited and don’t support accessibility much, there is a way to add show them in a view with some added value. How? I will show you…

PSA: XPages CSS Changes in 14.0 FP3  

By Jesse Gallagher | 12/17/24 2:52 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Fix Pack 3 for Domino 14.0 came out last week and, in addition to the usual spate of fixes you'd expect from an FP, it brought a potentially-significant and -breaking change to the way XPages handles style attributes for components. This is presumably in the interest of supporting the pathological strictures of Content-Security-Policy, but it applies whether or not you have taken any other steps to implement CSP. The specific change is that the XPages renderers will now take the style attribute, externalize it to a class, and then make a <style> block for it.

ForAll Loops and Type Mismatches  

By Paul Withers | 12/13/24 9:05 AM | Development - Notes / Domino | Added by Roberto Boccadoro

There are always challenges when moving from something familiar to something similar but different. When you've been working with that "something familiar" for a very long time, some things become second nature. But when you move to "something similar but different", sooner or later you hit an error and become convinced it's not working like it used to.

Lotus Script - Check if a file or folder exists  

By Daniel Nashed | 12/13/24 9:01 AM | Development - Notes / Domino | Added by Roberto Boccadoro

There isn't a direct function in Lotus Script to check if files exist. Most of us have written a function like this multiple times as a helper. I am working on an application which will be available as open source soon and I needed one again... Here is a version of a check function, which should cover all cases and might be useful for you too. It doesn't handle hidden files -- I know. But I didn't want to add that logic.

Getting column colouring out of the view design   

By Patrick Kwinten | 12/12/24 12:13 PM | Development - Notes / Domino | Added by Roberto Boccadoro

In Notes you can define the row color in a view programmatically. In the example you still hard-code the colors (and conditions) in the column, and so the design of the view. So if you want to change the colors and conditions you need to change the design. In an environment with restricted access to Production or CICD processes in place this takes a long time and it includes the intervention of a developer. I am not sure when but somewhere in time the “User definable” option for the column value was introduced.....

Quick Tip: using an object as custom property  

By Oliver Busse | 12/12/24 7:14 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Just for my own record because I always forget: If you ever need to pass any object data to a custom control, use this as the property data type: com.ibm.jscript.std.ObjectObject or com.ibm.jscript.std.ArrayObject depending on if you just need one or more objects.

Another dev attempt comes to an end – row coloring  

By Patrick Kwinten | 12/6/24 7:30 AM | Development - Notes / Domino | Added by Roberto Boccadoro

For an application I want to be the row colourings in the Notes client manageable, from a (profile) document or something similar. I chose a profile document instead of a named document since the named document lacks methods to access via @formula and if you want to open a document from a outline entry you only have the @formula option…

Show/Hide column in a NotesView  

By Patrick Kwinten | 11/30/24 3:25 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Most applications have different types of users. Some are normal users, some are power-users and some are administrators for the application. Mostly we provide different sets of views for these user categories and to optimize performance and indexing these users sometimes share the same views. But the information in that view is not always useful all types of users.

Reaping the Benefits of Standard  

By Paul Withers | 11/21/24 7:36 AM | Development - Notes / Domino | Added by Roberto Boccadoro

More than three years ago we began work on VoltScript. A little over a year ago we released our first Early Access code drop. There were certain core principles to which we developed. Two of these were a modern developer experience and adoption of standard development practices. Over recent weeks I received ample evidence of the benefits as improved and extended Archipelago, the build management engine of VoltScript.

Sort it out (your JSON collections)  

By Patrick Kwinten | 11/8/24 3:49 AM | Development - Notes / Domino | Added by Roberto Boccadoro

The day after the US elections. Time to sort it out. Not the election results but the collections in the Run4Fun application. I hope you like lists with JSONObjects in your XPages application as much as I do but what you see is normally the order you stick the objects in the list. If you want them to have sorted in a certain way, perhaps by a certain key (firstname, lastname, email, age, time etc) either you have your source (a NotesView?) adapted to it OR you have to apply something that does that to your objects in the list. That something is called a comparator.

Partial refresh gone bad   

By Patrick Kwinten | 11/4/24 3:43 AM | Development - Notes / Domino | Added by Roberto Boccadoro

For a (very) large and complicated intake form I have checkboxes that based upon the value (checked/unchecked) should calculate the visibility of multiple sections of the form. I guess most of us remember Tim Tripcony’s comment on a question about partial refresh on SO. That seemed to work fine from scratch but the intake form has grown and grown during the years due to regulations and the responses from the chained xsp.partialrefreshget calls gone bad. As a result sometimes the other sections pop up very late or not at all ��

Check the minimum client version for your Notes application  

By Daniel Nashed | 10/25/24 3:12 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Notes provides new functionality in Lotus Script and there also Java classes added to the client. Lotus Script Named documents have been introduced in Notes/Domino 12.0.1. I have just written an application which needs a Java class which is introduced in Notes 12.0.2 as it turned out. So I came up with a simple check I am going to add to all my applications which use more current functionality. You can drop this code into the PostOpen script of any database and switch to the right constant

XPages App to Web App: Part Seven - CSS  

By Paul Withers | 10/8/24 5:09 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In the last part we created the login form. In this part we’re going to start adding some theming. Theme Colours The power of XPages is in the out-of-the-box themes available. These provide styling for the various XPages components and some developers may even have not add their own CSS. But hopefully developers have.

LotusScript Classes and Delete  

By Paul Withers | 9/24/24 1:04 AM | Development - Notes / Domino | Added by Roberto Boccadoro

A couple of years ago I wrote a number of blog posts about LotusScript / VoltScript classes. The topic is relevant to both languages, we’ve not made any changes to how classes are managed in VoltScript, even though we discussed adding some things added to Visual Basic since LotusScript was created, things like additional modifiers. Even though classes are still the same, we’ve used some quite sophisticated aspects of class, as will be apparent to anyone who has looked at VoltScript Testing, its LotusScript port bali-unit, VoltScript JSON Converter, or VoltScript Collections. Three particular aspects I used in those projects are of particular relevance for this blog post.

Recent Open-Source Project Updates  

By Jesse Gallagher | 9/7/24 10:01 AM | Development - Notes / Domino | Added by Roberto Boccadoro

I've released a spate of open-source project updates recently, and I figured it'd be good to round up what's new. Most of them are utilitarian in nature - mostly fixes for things that crop up with Domino 14 and Java > 8 - but the first one is larger.

Radomly removed JAR resources: the reason   

By Oliver Busse | 9/6/24 6:50 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Remember my last post about Domino Designer just randomly removing JAR resources from the NSF? I first thought it was something with the ODP and Git but I was wrong. It turned out that you don't even have to work with an ODP or even Git to run into this problem. The real cause of this is still unclear, I add this to the various hiccups of Domino Designer that we all got used to. There's a solution....

Issue with old Domino JAVA agent  

By Patrick Kwinten | 8/29/24 11:37 AM | Development - Notes / Domino | Added by Oliver Busse

I got the request to extend the summary report in the email message that a scheduled Domino agent is sending out. In the report some lists of missing data in the database needs to be added so users can work more efficient. So what do we do?

XPages to Web App Redux: 2  

By Paul Withers | 8/21/24 6:45 AM | Development - Notes / Domino | Added by Roberto Boccadoro

XPages to Web App Redux: Part Two - Dev Tools Many Domino developers may not have used anything other than Domino Designer. We’re stepping into a different world of development here. So we’ll be using different tools. Plural.

XPages to Web App Revisited: Part One - Introduction  

By Paul Withers | 8/19/24 7:47 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Many years ago I wrote a series of blog posts on the topic of XPages to web app. At the time my target technology was Vaadin running in an OSGi plugin on Domino HTTP server (initially) and then CrossWorlds - Daniele Vistalli’s innovative approach to use Domino data via OpenNTF Domino API on a Websphere Liberty server running as a sidecar to Domino. My experience of developing with Vaadin lagged behind the technology, because it quickly evolved not only to Java 8 (and undoubtedly beyond) but used annotations which required Servlet 3.0. Today there are a variety of options for web application. Adjacent to Domino is Jesse Gallagher’s JakartaEE approach. Domino REST API can host applications as well. Frameworks like Angular and React have gained prominence. JSP is still seen in some places, but seems to have slipped from prominence. But after my session at Engage with Stephan Wissel, and particularly the rapid evolution of browser support over the last few years, my target is traditional web, hosted in Domino REST API’s server.

Domino REST API Proxy Problems  

By Paul Withers | 8/1/24 6:36 AM | Development - Notes / Domino | Added by Roberto Boccadoro

Earlier this week I was working with Domino REST API for a personal project and encountered what appeared to be a bug. It was a very strange issue, but one that had a simple cause that was ultimately easy to verify. In this case, Domino REST API’s `/lists/{name}’ endpoint was resulting in unexpected results. For certain views on the server I was using, e.g. a view with a name “vwFoo” was returning expected results. But for hidden views, e.g. “(luKeys)” I was getting a 405 “Method Not ALlowed” error when accessing via Postman.

Domino RESTAPI Bug and WorkAround  

By Keith Brooks | 7/31/24 6:47 AM | Development - Notes / Domino | Added by Roberto Boccadoro

This is not my usual line of thought as an Admin, but sometimes, AdminOps is better than DevOps because troubleshooting is not an exact science. While customers over the last year or so have been asking about the HCL Domino REST API, my reply is usually something like, I can install it, but you are on your own afterward, or I point them to a Developer friend. To be fair, HCL will help them/me with getting started or "where is/How do I" questions. But this is about the bug my client and I discovered and how to work around it.

Pretty-Printing JSON in the (Desktop) Notes Client and Domino  

By Jesse Gallagher | 7/29/24 3:21 AM | Development - Notes / Domino | Added by Roberto Boccadoro

In the OpenNTF Discord (join if you haven't!), Daniel Nashed brought up a task he was facing: in the Notes client, writing pretty-printed JSON. LotusScript has its NotesJSON* classes that can process JSON in their stark way, but the stringify output is meant for machine reading and doesn't include whitespace and line breaks, making it ill-suited for things like configuration files or other things a human might read or edit. Since the goal is to get it working in the full Notes client and not Nomad, Java is on the table, but Java - for dumb historical reasons - has no proper built-in JSON library. However, as of 12.something HCL shunted IBM Commons down to the global classpath in order to support the "share Java design elements between XPages and agents" feature. Among many other things, IBM Commons includes a JSON library that can suit. I wrote a post almost a decade ago talking about this library and its limited nature, but it's nonetheless less limited than the LotusScript classes, and it's up to the task. There are a couple ways to go about this, depending on your needs, but for now I'll just cover the basic case here of "I have a string of JSON and want to format it".

Pretty-Printing JSON in Notes Client and Domino  

By Daniel Nashed | 7/29/24 3:20 AM | Development - Notes / Domino | Added by Roberto Boccadoro

The Lotus Script class for reading and writing JSON is that easy. There are not many examples and some functionality is missing. JSON can be either condensed without any new lines and indentation. That's great when you use it for back-end processing or REST services. Why is pretty printing important But in some cases you need pretty formatted JSON. Specially when you want to maintain it manually and extend it. For example for Domino OTS JSON files :-) When you use JSON based configuration pretty printed JSON is very helpful. Condensed JSON is also difficult to check into Git. Everything looks modified when it is a single line.