Busy, busy – But wait: There is help!

For the last year and a half I have been very busy with different projects, and this blog had to be put on the back burner. And no, despite a number of blog posts about Microsoft Flight Simulator, I have actually not had much time to play it, less than 10 hours since it was released last August. But this leads me to today’s topic: tools that can help you save time.

As a Notes/Domino developer, administrator or power user, you often need to go deeper into the Domino database. This could be tasks like finding and resolving replication contacts, look closer at the fields (including hidden fields) in a document, or quickly locate all documents of a particular type, or matching a particular criteria that you don’t already have a view for. As an administrator you maybe would like to keep several Domino consoles visible side by side, so you can watch what is happening on all your servers at the same time. As a developer, what if you could copy the design of a view or an action bar to numerous other views to make all views look consistent, without having to edit and update every single view manually? Things like that makes your life easier and makes you more efficient, but you don’t have that in the native product.

One set of tools that stands in a class by itself is EZ Suite from Ytria. The EZ Suite tools are extremely powerful, and there is no way I will be able to cover all of them in one blog post. I will focus on some of the functions that have been useful to me, and even with that limitation I have to split this up in multiple blog posts.

The first tool from Ytria I ever tried was scanEZ. We had some issues with a database at my old work (I don’t remember the details anymore), so we purchased a time limited version of scanEZ. I think it was valid for a week, enough for us to salvage the documents in the database. My boss thought the tool could be useful in the future, so he immediately purchased a full license of it for himself. Eventually he purchased a license of EZ Suite for me, and I made frequent use of the tools, both while doing development and server administration, as well as when I had to troubleshoot database issues or replication conflicts.

You can purchase the full suite , or one of several bundles of tools geared to different types of users (developers, administrators or developer with some administration needs). Each tool can also be purchased individually.

The latest version is EZ Suite 20. This version contains a number of new functions and enhancements. Since I haven’t used the tool in the last couple of years, after my license expired, I have not been keeping up with all the new features, but as always Ytria is supporting the latest version of Notes and Domino.
Disclaimer: Ytria generously provided me with a license for the latest version, but I was previously a paying customer, and I have recommended their products for many years.

Let’s start with the first tool from Ytria I was ever exposed to, scanEZ. This tool makes it possible to explore a Domino database in depth, not only the documents but design elements, settings and even deletion stubs (the remains of deleted documents used to delete the document in replicas). Fields can be added, deleted and their content can be changed. You can even change the data type of a field, as well as many other attributes.

In scanEZ you can also look at and modify profile documents and replication conflicts, which often comes in very handy. But there is also a dedicated Conflict Solver tool within scanEZ. It will analyze the database, which can take a little bit of time, but then you can compare the conflict document with the parent and see which fields differs. This may even help you figuring out how the conflict was created, and how you can prevent that in the future.

This only scratched the surface of what scanEZ is capable of. I have not even mentioned the different ways to view and analyze data. You can for example dynamically categorize the documents through drag-and-drop, and even present the data in charts, thanks to the extensive capabilities of scanEZ.

The next tool I want to mention is consoleEZ. The easiest way to describe it is the Domino server console on steroids. You can view multiple consoles simultaneously, and also see a list of the tasks running on them. Your console commands are saved, and you can view them later if you like. It has many features you wish were in Domino Administrator out of the box, and even more features you did not even know you wanted.

You don’t have to be a hard-core administrator to appreciate consoleEZ. It was first released about six years ago, so it is one of the latest additions to EZ Suite. It quickly became one of my favorite tools.

I do quite a bit of modernization of Notes and Domino applications. Often this involves web enabling them, including creating a modern UI using HTML, CSS, and often a framework like Bootstrap. But there are still many Notes databases that works well, and instead of rewriting a lot of the existing logic for the web, a refresh of the Notes client UI is sufficient. This often involves adding a nicer background to the action bars, as well as changes to the views. Just a few small changes can make a huge difference, and make an old application look fresh again.

But even after you come up with a nice, more modern looking design, you have to duplicate it across all the action bars and views in your application. This is where actionBarEZ and viewEZ comes in. Those two tools makes it a breeze to apply a design to many action bars or views or copy the design from one view/action bar and apply it to any view or action bar you want.

Using actionBarEZ you select a number of view, pages or form, and change the properties across all the elements just like you would have done in Domino Designer, but there you can only make the changes on one view, form or page at a time. But the function I found the most useful function is that you can design a nice action bar in one view, then select that design and with the click of one button apply it to any views, forms or pages you like. This has saved me countless hours of work. The functionality of viewEZ is pretty much identical.

Stay tuned for the next part to be published in the next few days.

2 Comments

Domino 11.0.1 is available!

HCL has released Domino 11.0.1, which includes updates to not only the server but also the Notes and Designer client.

So what is new? The version number makes it sound like this is just a version with bug fixes, but nothing could be further from the truth. There are a number of improvements and new capabilities, including new functions as well as enhancements in Domino Designer. Let’s take a quick look at some of the most interesting new functionality.

Part of your entitlement is a Docker-compatible image of Domino 11.0.1. It is available for download through the HCL Licensing Portal (FlexNet). HCL Domino 11.0.1 is pre-installed on this image, which allows you to deploy Domino server containers very quick and easy.

You can now register multiple Active Directory users using the Directory Sync feature, the Domino web server supports Server Name Indication (SNI) and there is support for Subject Alternative Name (SAN) in X.509 certificates. There are also enhancements to DAOS tier 2 storage, where you can move attachments to AWS for longer term storage.

SwiftFile, a tool that automatically sorts incoming mail into different folders based on the content is now finally integrated into the client, not a separate add-on as previously. The administrator can disable SwiftFile through a setting in notes.ini.

A new Java Runtime Environment is also included, as well as an updated version of MarvelClient Essentials from panagenda.

There are some changes to the underlying software used to import and view attachments.

On the security side, the Notes client can now use 128-bit AES for local database encryption, and new Notes IDs must have 1024-bit keys (or stronger).

For my fellow developers out there I want to mention the new method CreateDocumentCollection in the NotesDatabase class. Finally a native method, no more need for a hack to get an empty document collection. There are also improvements to DQL (Domino Query Language), for exaple numeric and date-only terms in queries. A new version of AppDev Pack is also released, version 1.0.4, where domino-db now supports rich text items and running agents in Domino databases.

Your can real more on the HCL Domino Blog.

0 Comments

Keep up with COVID-19 though Domino!

Are you are suddenly sitting at home with nothing to do, due to the corona virus COVID-19? You can’t go to the gym. You can’t go to your favorite computer store to browse all the latest hardware and plan for your next water-cooled build. You can’t go out to eat.

But what you can do is to try out some of the new functionality in HCL Notes and Domino. Today I started a little project where I try to incorporate a number of the latest and coolest functions in a simple but useful application. I hope to be able to create several blog posts about this project over the next few days.

I came up with the idea for this app when someone sent me a link to a web page where information about COVID-19 is aggregated from all US states. I thought it was a neat page, but then I noticed that they have a public API where the numbers are served up. Now things started to become much more interesting! This is what the JSON data looks like:

[
  {
    "state": "AK",
    "positive": 6,
    "negative": 400,
    "pending": null,
    "death": null,
    "total": 406,
    "lastUpdateEt": "3/18 16:30",
    "checkTimeEt": "3/19 15:12"
  },{
    "state": "AL",
    "positive": 68,
    "negative": 28,
    "pending": null,
    "death": 0,
    "total": 96,
    "lastUpdateEt": "3/19 10:45",
    "checkTimeEt": "3/19 15:15"
  },{
    "state": "AR",
    "positive": 46,
    "negative": 310,
    "pending": 113,
    "death": null,
    "total": 469,
    "lastUpdateEt": "3/19 11:23",
    "checkTimeEt": "3/19 15:16"
  },{
    "state": "AS",
    "positive": 0,
    "negative": null,
    "pending": null,
    "death": 0,
    "total": 0,
    "lastUpdateEt": "3/14 00:00",
    "checkTimeEt": "3/19 16:18"
  },{
    "state": "AZ",
    "positive": 44,
    "negative": 175,
    "pending": 130,
    "death": 0,
    "total": 349,
    "lastUpdateEt": "3/19 00:00",
    "checkTimeEt": "3/19 15:18"
  },{
    "state": "CA",
    "positive": 924,
    "negative": 8787,
    "pending": null,
    "death": 18,
    "total": 9711,
    "lastUpdateEt": "3/19 14:25",
    "checkTimeEt": "3/19 15:20"
  }
...

So what could I do with this data? Why not bring it into a Domino database to start with, and then retrieve the data on a schedule, say every hour?

We should then be able to chart the data for each state over time. In order to not store the same data over and over again, I want to check if the data has been modified since the last time the agent ran. I will just use the lastUpdateEt date and time stamp in combination with the state abbreviation to perform a lookup. If I get any result(s) back, the data was already stored.

So how do you read the JSON from the API? In the past I would have used my own HTTP Request class, but this is not needed anymore. This is thanks to the NotesHTTPRequest class, first introduced in Domino 10 and then improved in Domino 11. In Domino 11 the wizards at HCL in Chelmsford added classes to parse JSON. The NotesJSONNavigator is the base of the parser, then you use NotesJSONArray, NotesJSONObject and NotesJSONElement to traverse through a JSON payload. When you get the hang of it, this is much easier than it maybe sounds at first.

So let’s take a look at my code. This is a scheduled agent, running once an hour:

%REM
  Agent Retrieve Data
  Created Mar 19, 2020 by Karl-Henry Martinsson/DBS
%END REM

Option Public
Option Declare

Sub Initialize
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim view As NotesView
  Dim http As NotesHTTPRequest
  Dim json As NotesJSONNavigator
  Dim element As NotesJSONElement
  Dim stateArray As NotesJSONArray
  Dim state As NotesJSONObject
  Dim response As Variant
  Dim url As String

  Set db = session.CurrentDatabase
  Set view = db.GetView("LookupExisting")
  Call view.Refresh()

  Set http = session.CreateHTTPRequest()
  url = "https://covidtracking.com/api/states"
  response = http.get(url)
  Set json = session.CreateJSONNavigator(response)
  Set element = json.GetFirstElement()
  Do Until element Is Nothing
    Set state = element.Value
    Call processState(state, db, view)
    Set element = json.GetNextElement()
  Loop
End Sub

Function processState(state As NotesJSONObject, db As NotesDatabase, view As NotesView)
  Dim doc As NotesDocument
  Dim col As NotesViewEntryCollection
  Dim values List As String 
  Dim element As NotesJSONElement
  Dim key As String
  Dim value As String
  Dim stateName As String
  Dim lastUpdate As String 

  Set doc = New NotesDocument(db)
  doc.Form = "StateData"
  Set element = state.GetFirstElement()
  Do Until element Is Nothing 
    key = element.Name
    value = element.Value
    If key="state" Then
      stateName = value
    End If
    If Right$(key,2)="Et" Then
      lastUpdate = Format$(CDat(value),"mm/dd/yyyy hh:nn AM/PM")
      Call doc.ReplaceItemValue("lastUpdated", lastUpdate)
    Else 
      Call doc.ReplaceItemValue(key, value)	
    End If
    Set element = state.GetNextElement()
  Loop
  Set col = view.GetAllEntriesByKey(stateName+"^"+lastUpdate)
  If col.count=0 Then
    Call doc.Save(True,False)
  End If
End Function

This is all the code you need. Yes, I am serious. You can now consume any data on the web, served up by any system with a REST API, straight into Domino, with just a few lines for code.

The NotesHTTPRequest is very straight forward, so there is not much to say about it. But the classes used to parse JSON may need some explanation.
You start with the NotesJSONNavigator. You then use the value property of the NotesJSONElement class to get a value, an array or an object. The array or object is put into a NotesJSONArray or NotesJSONObject object, and you can then traverse down into the JSON structure. This is very powerful and useful, we have all been asking IBM for this functionality for many years. Now HCL delivers!

I created a hidden view for the lookup to avoid the same data stored multiple times. It only contains one (sorted) column, which is used by the lookup:

That is pretty much it.

I also created a view to display the data:

Soon we will do something more fun with the data. I will just let the scheduled agent run for a while and build up my database first. Keep your eyes open for the next post about this project!

4 Comments

HCL Master Class of 2020

Yesterday I received a mail from HCL, informing me that I had been selected as one of the HCL Masters for 2020.

As IBM Champion I automatically transferred to the HCL Master program earlier this year, but it means more to me this time, as HCL actually did the selection. I am very honored and proud to be in the company of all these brilliant women and men, many of which I count as close friends. Thank you HCL!

0 Comments

CollabSphere 2019 – Submission deadline is closing soon!

CollabSphere_2019

The deadline to submit an abstract for sessions at CollabSphere 2019 is tomorrow, Sunday August 18. If you want to speak at the conference, you don’t have much time to act.

So why would you like to speak at CollabSphere? Perhaps your reason is the same as mine was when I started speaking at conferences: I wanted to give back to the community from which I had learned so much over the years. I wanted to share my knowledge with other developers, and perhaps inspire them by showing what could be done with Notes and Domino.

What if you are afraid of public speaking? That is absolutely normal. With practice you get more used to it, and one place where you can practice it in a safe and encouraging environment is at Toastmasters, an international organization focused on public speaking and leadership. There are local Toastmasters clubs all over the world, and you can join at any time.

Even if you are not speaking, you can still register to attend the conference. This year it is held in Boston, close to the HCL office in Chelmsford, and we can expect a lot of exciting news about Notes and Domino 11 (which is due in the end of the year), and perhaps even about Domino 12. This is a can’t-miss conference!

0 Comments

The deal is done: HCL takes over Notes, Domino, Connections and more

Today the announcement we have been waiting for arrived. HCL and IBM closed the acquisition that was announced back in December. HCL now owns (among other products) the collaboration products Notes, Domino, Sametime, Verse and Connections.

As part of the deal’s close, HCL takes full ownership of the research and development, sales, marketing, delivery, and support for AppScan, BigFix, Commerce, Connections, Digital Experience (Portal and Content Manager), Notes Domino, and Unica.

HCL is also formally introducing HCL Software, a new division that will operate this enterprise software product business and meet customer demand. A Business Unit of “Products and Platforms” (Mode 3), HCL Software has successfully delivered more than 340 partner releases and more than 90 HCL releases, including such popular products as Informix 14.10, Domino 10, Workload Automation 9.5. The division aspires to reshape the enterprise software business, focused on innovation and cutting-edge delivery for customer success.

Read the full announcement at http://bit.ly/HCLSoftware

Over the last few months we have seen a number of IBM:ers who has been working with the collaboration products move over to HCL. In the last few days we have seen even more people at IBM announce their moves to HCL, including Mat Newman who will become Director of HCL Digital Solutions, Asia Pacific and Stephan Wissel, the new Solution Director at HCL PnP.

As a developer, it is very exciting and encouraging to see that Maureen Leland, who was in charge of Domino Designer for over a decade and have been with Lotus, Iris and now IBM since 1992, is now at HCL. Security expert Dave Kern is also moving to HCL, as is Wes Morgan, Adam Gartenberg and many others. The fact that HCL is bringing over all the brilliant minds from IBM is also encouraging. The investments in Notes and Domino that HCL already has made should show everyone that they see the products for what they are, amazing technologies and products that were decades ahead of the competitors. Just the other day (June 18, 2019), Mongo DB announced field level encryption. This is a feature Notes and Domino has had since day one, 30 years ago…

I believe the future for Notes, Domino, Sametime and Connections is very bright. The developers are ecstatic that they finally get to implement new features, make improvements and even bring the Notes client to mobile devices (iPad, iPhone and Android). We have already seen some great things come from HCL, like the new Domino Query Language created by John Curtis, as well as the node.js integration.

I cannot wait to see what HCL will deliver in the future. Notes and Domino 11 is planned already for the end of this year.

 

0 Comments

Call 32-bit COM Objects from 64-bit Domino

We all know that when you upgrade your Domino environment from 32-bit to 64-bit, any COM objects you use will not work anymore. You thn need to get and install a 64-bit version of the COM object.

But what if there is no 64-bit version? Do you have to stay on 32-bit Domino forever? Or rather, stay on Domino 9.x, since Domino 10 (and probably also the upcoming version 11) are 64-bit only.

Perhaps not. I found this article that describes how to use a 32-bit COM object in a 64-bit environment, like Domino 10. I have not had time to test it myself, but I will probably try it this weekend.

Read all the details at https://techtalk.gfi.com/32bit-object-64bit-environment/.

2 Comments

Run Notes applications on iPad!

IBM and HCL has released an amazing product, IBM Domino Apps for iPad. They have been showing early versions at IBM Think and other events for the last year, but now it is here, and you can download it in the Apple App Store!

I have seen earlier versions of the product, and I have to say that the developers at HCL did an excellent job. Your existing Notes applications can now run right out of the box with full fidelity and functionality, including formula language and Lotusscript, with no changes needed.

Even features like replication to a local database and working offline works. It is simply a full Notes application client for the iPad.

This is something that people have been asking IBM to develop for at least a decade. And finally we have it available.

There is a version for Android in the works as well, but no official release date has been set for it yet.

So what does this mean? It means that not only can you run your current applications on an iPad, you can develop new applications specifically for tablets. The applications can be styled to work better on tablets, for example larger fonts and buttons. HCL even added some tablet specific functions, like camera integration, to the core Notes functionality.

There are a couple of limitations in the first versions, most notable that there is no support for the mail template, and no support for Xpages in the Notes client.

If you are using Notes and have users with iPads, install IBM Domino Apps for iPad and be prepared to be amazed!

0 Comments

End of content

No more pages to load