Wednesday, 20 June 2018

Using the Domino Configuration Tuner to Evaluate Server Settings


In my recent role as Domino Administrator I picked up a number of tasks including monitoring our Domino Servers. Yesterday I watched episode 5 of the great #Perfect10 webcast by Gabriella Davis. In this webcast Gabriella mentioned the use of the Domino Configuration Tuner which is shipped with the Administrator Client. Until now we did not use this Configuration Turner. The Domino Configuration Tuner (DCT) evaluates server settings according to a growing catalog of best practices. All servers in a single domain can be evaluated together. DCT generates reports that explain the issues DCT uncovers, suggests mitigations, and provides references to supporting publications.
DCT comes with easy-to-use, self-service configuration analysis so that installations are more robust and experience improved performance. A single Domino server includes thousands of configuration options. DCT provides best practice analysis as well as worst practice disclosure, and helps reduce total cost of ownership by assisting users in identifying configuration problems. DCT looks at settings in the Domino Server documents, the NOTES.INI file, and advanced database properties. Configuration settings are flagged when their values are known to cause problems based on prior customer experience. Out-of-range and unexpected values are reported so that undefined behavior can be prevented. Suggested adjustments help you achieve known server performance improvements.

I followed the steps below to enable / use the Domino Configuration Tuner on our Domino servers.
1. Open the Domino Administrator Client.
2. Open the Tab Server - Analysis
3. Select Domino Configuration Tuner

4. The openings screen of the Domino Configuration Turner will appear.
5. After the update and the deployment of the updated files the local application will be created.


The final result are generated reports that explain the issues DCT uncovers, suggests mitigations and provides references to supporting publications.

Remark
After selecting the option Domino Configuration Tuner the message below appeared continuously (even after the restart of the Notes Client).


During the first update 6 files were successfully deployed. In the Status Bar the error message 'Unable to deploy one updated file (probably locked and in use)' is shown.
The solution for this problem is to run the Notes Client in Administrator mode after selecting Domino Configuration Tuner in the Domino Administrator Client. The Notes Client can then deploy the dct.jar file into its destination folder: %notes%/jvm/lib/ext.

For more information: Domino Configuration Tuner (DCT)

Sunday, 17 June 2018

Excellent Course Integrate IBM Domino with Node.js


As already indicated, a large part of the Notes Domino XPages community already lives in the Domino 10 bubble. And that's a very good thing. One of the new features in Domino 10 is the introduction of Node.js in Domino. As indicated in my previous blog post, a webinar will be hosted by IBM on June 28, Node.js and Domino V10 Essentials - What You Need to Know.
Yesterday I came across this message from Mark Barton on Twitter.



In order to get a good idea of how to use Node.js in Domino, this is a more than excellent starting point. It is an excellent course that gave me a good insight regarding Node.js in Domino. You can find the course on this website.


For more information about Node.js and Node-Red, see the blog series of John Jardin, Node-RED Blog Series.

Thursday, 14 June 2018

Upcoming Webinar Node.js and Domino V10 Essentials – What You Need to Know


At the moment, a large part of the Domino community is already living in the V10 bubble. A few days ago, the IBM Domino V10 Beta Program was announced by Andrew Manby and Richard Jefts. For more information see my previous blog post IBM Domino V10 Beta Program - Domino Applications on iPad Beta Program. In addition, numerous blog posts have been written and webinars have been organized about this new era for IBM Domino. In line with all the latest developments a next webinar for IBM Domino 10 will be organized by IBM on 28 June, Node.js and Domino V10 Essentials – What You Need to Know.

Content Webinar
Spend this session with some of the Domino community's application development experts, Paul Withers and John Jardin, to learn how they are approaching the creation of new Domino applications using the latest frameworks and languages such as node.js and JavaScript. Also, how this approach works for application modernization too.

What you will learn is:
An introduction to node.js, JavaScript, and node.red.
The use cases, best practices and how best to get started.
How Domino V10 and Node.js deliver unique value to developers.
What this means for your existing Domino application investments.

Speakers are Andrew Manby, Director of Product Management IBM Collaboration Solutions, Paul Withers, IBM Collaboration Solutions Consultant Intec Systems Ltd and John Jardin, Integration & Cloud Architect Agilit-e.

Registration for the webinar is open on this website.
As indicated by IBM this is just the beginning! There will be more information on this exciting innovation in the coming months.

Tuesday, 12 June 2018

IBM Domino V10 Beta Program - Domino Applications on iPad Beta Program


It is testing season! Yesterday Andrew Manby and Richard Jefts announced the IBM Domino V10 Beta Program. The beta program will be rolled out in two phases. Beta 1 - We will form an initial group of beta participants, based on the submissions received and then qualify and approve for beta program enrollment. Beta 1 will begin on June 25th, 2018. Beta 2- We will extend the initial group of Beta 1 participants as we get further along in the development cycle for Domino V10, by including additional participants at the Beta 2 stage. We expect the Beta 2 phase to begin the second half of July 2018.  Submissions received up to July 15th, for those not included in the Beta 1 group, will be considered for inclusion in the Beta 2 phase.
To participate in the IBM Domino V10 Portfolio Beta simply fill-in and submit this signup sheet.
For more information about the Beta Program: Announcing the IBM Domino V10 portfolio beta program.


Next to the Domino Beta 10 program HCL is running a separate beta program for the Domino Apps on iPad offering called HCL Nomad. You can sign up for this program on the following page. The HCL Nomad beta program starts on June 13th and is being managed by HCL.

Fingers crossed and let's hope we will be selected for the Beta Programs for Domino V10 and Domino Application on iPad.

Tuesday, 22 May 2018

Using the Internet Password Lockout Feature on a Domino Web Server


In my recent role as Domino Administrator I picked up a number of tasks including the Internet Password Lockout feature on our Domino Web Server. Internet Password Lockout gives the Domino Administrators the opportunity to set a threshold value for Internet Password authentication failures for users of Lotus Domino applications including Lotus Domino Web Access. This lockout helps to prevent brute force and dictionary attacks on user Internet accounts by locking out any user who fails to log in within a preset number of attempts. Information about authentication failures and lockouts is maintained in the Internet Lockout application where the administrator can clear failures and unlock user accounts.
It should be noted that this feature is subject to Denial of Service (DoS) attacks. A DoS attack is one in which malicious users explicitly prevent legitimate users of a service from using that service. In the case of Internet password lockout, legitimate Internet users could be prevented from logging in to a Domino server by attackers who intentionally make failed log in attempts. Internet password lockout has no affect on Domino Off-Line Services (DOLS).

Below a brief description of the configuration and activation of the Internet Password Locket feature on a Domino server.

Configuring Internet Password Lockout on a Domino Server
Internet Password Lockout is not enabled by default on a Lotus Domino server. To enable the Internet Password Lockout using the configuration settings document you can follow the steps below.

Open Lotus Domino Directory with the Lotus Notes client.
Click Configuration - Servers - Configuration.
Edit the default server configuration document or an individual server configuration document.
Click the security tab.
Change the option Enforce Internet password lockout to yes.


Set the log settings. Log both lockouts and failures.
Set the default maximum tries.
Specify the maximum number of bad password attempts allowed before users are locked out. The default value is 5. After a user is locked out, the user account must be unlocked before any new values for this setting are in effect for that user.
Set the default lockout expiration.
Specify the period of time for which a lockout is enforced. After the specified time period expires, the user account is automatically unlocked when the user next tries to authenticate. In addition, all failure attempts are cleared.

NOTE: If this value is 0, the lockout does not expire automatically. The account must be unlocked manually.
Set the default maximum tries interval.


Specify the length of time failed password attempts are retained in the lockout database before they can be cleared by a successful authentication. The default value is 24 hours.
NOTE: If this value is 0, every successful login, for a given user who is not locked out, clears all failed password attempts by that user.
Save and close.
Restart the Lotus Domino server.


After these settings are configured, an inetlockout.nsf database is created. This database records and tracks locked-out users and failed logins. Replicate this database between Web-enabled servers to ensure that locked-out users remain locked out for the entire infrastructure. The inetlockout.nsf database is created from the inetlockout.ntf database template. All users should be listed as having no access to the database. By default, the Internet Lockout database ACL allows manager access only to the Admin Group. Default and anonymous are denied access. However, the database ACL can be modified to provide users and groups access to view and unlock users. Only Internet password administrators should be able to access this database.
The inetlockout.nsf database also allows administrators to track which users have been locked out. Administrators have the option of unlocking the users as well. Figure 4 shows the information available in the Internet lockout database. This database can also record all user login failures. This fact can be useful when security administrators try to detect password hacking attempts.

For more information see Securing an IBM Lotus Domino Web server: Using the new Internet lockout feature.

Sunday, 13 May 2018

IBM Domino 9.0.1 Feature Pack 10 Interim Fix 2 Available for Download on IBM Fix Central


IBM released IBM Domino Feature Pack 10 Interim Fix 2 on IBM Fix Central. Below the Fix List for Domino 9.0.1 Feature Pack 10 Interim Fix 2.

Download Links for Domino 9.0.1 Feature Pack Interim Fixes.


See also my previous blog post IBM Notes Domino 9.0.1 Feature Pack 10 Interim Fix 3 Available for Download on IBM Fix Central.

Wednesday, 9 May 2018

Upgrade Notes Domino HTTP Passwords Domino Directory to Version 3 (V3)


During the past period, in addition to my developer tasks, I have also been assigned the administrator tasks for Notes Domino. For some of these tasks I use the Ytria EZ Suite Complete tools, like scanEZ. One of the tasks that I recently performed is the upgrade of the HTTP Passwords in the Domino Directory to version 3 (V3). I was made aware of this point by following the the Ytria Webcast Your Guide to Modern Defense Tactics and Risk Mitigation for a Secure IBM Domino Environment. First I used Ytria scanEZ to make an inventory of the current HTTP Password versions in the Domino Directory. In my case the HTTP Passwords where all Version 2, introduced in Domino version 6. You can view a great demo by Ben Menesi in the Ytria Webcast. Currently there are 3 versions.

Version 1 (V1), (SEC_pwddigest_V1)
Used in Domino versions prior to version 6. The hash attributes for version 1 are as follows:
Character set: 34 characters long, hexadecimal character set (A-F, 0-9), starts and ends in parentheses.
Running the algorithm against the same plain text always results in the same cipher text.
Can be invoked using the formula @Password(“PlainTextValue”) or, in LotusScript, Evaluate(“Password(PlainTextValue)”).
Can be verified using the formula @VerifyPassword(“PlainTextValue”;”CipherTextValue”) or, in LotusScript, @Password(“PlainTextValue”)=”CipherTextValue”.

Version 2 (V2), (SEC_pwddigest_V2)
Introduced in Domino version 6, this is significantly more secure than version 1, primarily because it produces a salted hash value. The hash attributes for version 2 are as follows:

Character set: 22 characters long, extended character set (A-Z including upper and lower case, 0-9 plus special characters), starts with “(G” and ends in “)”.
Can be invoked using the formula @Hashpassword(“PlainTextValue”).
$SecurePassword item with value of “1” present in documents with upgraded V2 hashes.
Can only be verified using the formula @VerifyPassword(“PlainTextValue”;”CipherTextValue”).

Version 3 (V3), (SEC_pwddigest_V3)
This is the current, and latest, hashing algorithm that was made available for use as of Domino 8.0. The hash attributes for version 3 are as follows:
Character set: 51 characters long, same character set as version 2 (A-Z including upper and lowercase, 0-9 plus special characters) starts with “(H” and ends in “)”.
Can only be invoked using the SECHashPassword3() API call.
$SecurePassword item with value of “2” present in documents with upgraded V3 hashes.
Can only be verified using the formula @VerifyPassword(“PlainTextValue”;”CipherTextValue”).

The following steps can be followed for updating the HTTP Passwords in the Domino Directory to Version 3. Note: the HTTP Passwords themselves are not changed by the upgrade.
- Open the Domino Directory (names.nsf) application
- Select Menu Actions - Edit Directory Profile


- Select the Field 'Use more secure Internet Passwords'.
- Next select the option 'Yes, Password verification release 8.01 or greater'


- Next select Save and Close to save the change.


To actually upgrade the HTTP Passwords to Version 3 select all Person Document in the View People in the Domino Directory.

- Select Menu Actions - Upgrade to More Secure Internet Password


- Select the Option Yes - Password verification release 7.01 or greater


The HTTP Passwords have now been upgraded to Version 3 (V3).

For more information see also the blog post Deep Dive into IBM Domino Security Part 1: Password Hashes by Ytria.

Monday, 7 May 2018

Installing Domino Feature Packs Part II - Solution Error A Notes Domino Related Process is Still Running


In continuation of my blog post from last week, Installing Domino Feature Packs,  I upgraded the Domino Server in the production environment today. During the upgrade process, unlike to the test upgrade in the test environment, we encountered a problem when starting up the incremental installer. The following error message appeared: Error: "Lotus Notes/Domino or a Notes/Domino related process is still running. Please close it before pressing OK to continue." when installing hot fix or fix pack.


The corresponding IBM Technote indicates that this issue can occur in Microsoft Windows Server 2008 when User Account Control (UAC) blocks access to .dll files that require file to read / modify.
Possible solution: Right click on the hot fix or fix pack executable and select 'Run as Administrator' .Alternatively you can disable UAC while running the installation. This will allow the upgrade to apply the upgrade. We tried both possible solutions however without success!

In response to my previous blog post I received the following response today from Jay Marme: I disable the Windows Management Instrumentation Service before patching Domino and re-enable it after patching has been completed since WMIS can cause issues.
We tried this possible solution and the installation of the Fix Pack started without any problem. Thanks very much Jay!
This solution is also described in Daniel Nashed's blogpost Solution for Notes/Domino related process is still running when applying a Fixpack or Hotfix.
Ultimately, the upgrade of the Domino Server was successful.

Friday, 4 May 2018

Quick Tip: Edit the NOTES.INI File Using a Configuration Settings Document


In the past period I have had to edit the NOTES.INI file a number of times. On the one hand in the context of Domino Security and on the other hand for using an UpdateSite application. There are different ways to adjust the NOTES.INI file. Open the NOTES.INI file and edit it, create a Configuration Settings document and edit the settings or use the Set Configuration server command. However, because editing the NOTES.INI file is unsafe it's best to use a Configuration Settings document to modify server settings. Be aware that the NOTES.INI file contains many settings that IBM Domino and IBM Notes rely on to work properly. An accidental or incorrect change may cause Domino or Notes to run unpredictably. Below a short description of my approach using a Configuration Settings document based on the IBM documentation.
From the Domino Administrator, open the Domino Directory and click Configuration in the left-hand navigation pane.


To edit an existing Configuration Settings document, highlight it and then click Edit Configuration. To create a new configuration document, highlight the server for which the Configuration Settings document will apply, then click Add Configuration.


To modify NOTES.INI settings on the server, click the NOTES.INI Settings tab. This tab lists a number of current settings in the server's NOTES.INI file.
To add a setting, click Set/Modify Parameters to display all settings that you can set in the Configuration Settings document. Select the setting(s) you want to add from the list. Type the value for the variable in the Value field. If the value is not in the list you can add it yourself, for example the setting HTTPDisableServerHeader=1.


To modify or clear a setting, highlight a NOTES.INI variable in the list and click Clear. In the Clear Parameter or Value, choose Clear parameter or Clear value. If you are clearing a parameter, be sure to clear the value before clearing the parameter. If you choose to clear a value, you can type in a new value.

Finally the new value is added to the NOTES.INI settings. The last step is to Save and close the Configuration Settings document and restart the Domino Server.


Remark: The Current parameters field displays the NOTES.INI settings that have been configured for the server. You can also see historical information about the last NOTES.INI setting that was configured on the server, including the name of the setting, the value to which it was set, the name of the person who configured it, and the time and date on which it was configured.

Installing Domino Feature Packs


Recently I have been assigned a number of tasks as Domino Administrator. One of these tasks involves upgrading the Domino Server to a more recent Feature Pack (Fix Pack). In my specific case it was an upgrade to Fix Pack 7.
Given that it has not been a regular task for me since the last few years, I searched the Internet for a good step-by-step plan. Unfortunately, I did not find much information except an IBM document, Basics steps to upgrade the Domino server. For the upgrade I also asked some advice from lifttime IBM Champion Gabriella Davis (@gabturtle). Thanks very much for your time and help! With this advice and the information in the IBM document I carried out the upgrade in the test environment. Below the steps that I have followed. If someone has additions and / or comments I would like to hear this as I want to do the upgrade on Monday in our production environment.

A. Domino Fix Pack 7 Files
Initially, the Domino Fix Pack 7 Files downloaded from IBM Fix Central.
Next I placed the downloaded files on the Domino Server in the Temp Directory.

B. Maintenance System Databases
The next step I performed was the maintenance on the system databases names.nsf and admin.nsf.

1. Shut down the Domino Server
2. Navigate to the folder where the Domino server is installed
3. In the directory above perform the maintenance on the system databases
4. Fixup names.nsf en admin.nsf
C:\Program Files\IBM\Lotus\Domino\nfixup names.nsf -F
C:\Program Files\IBM\Lotus\Domino\nfixup admin4.nsf -F

5. Compact names.nsf en admin4.nsf
 C:\Program Files\IBM\Lotus\Domino\ncompact names.nsf -c 
C:\Program Files\IBM\Lotus\Domino\ncompact admin4.nsf -c 


6. Updall names.nsf en admin4.nsf
C:\Program Files\IBM\Lotus\Domino\nupdall names.nsf -R
C:\Program Files\IBM\Lotus\Domino\nupdall admin4.nsf -R


C. Run Fix Pack Executable
After the above maintenance steps, the executable of the Fix Pack can be executed (run the installer and follow the screens for the installation. Note: it will take the Domino program and Data directory paths of the already installed server. ). The following screens appear consecutively.

The last screen that appears finally indicates that the upgrade has been successfully completed. For me it is not entirely clear what exactly happens in screens 2 and 3 but I assume this is correct and is part of the upgrade.


For me it is not entirely clear what exactly happens in screens 2 and 3 but I assume this is correct and is part of the upgrade.

D. Windows services - Restart Server
Start the windows services with services.msc
For the "IBM Domino Server" Service, this service must be set as "Manual" at this stage. Later it can be reset to Automatic.
Restart the Windows server.

E. Start Domino Server
After the restart of the Windows Server, the Services 'IBM Domino Server' can be reset to Automatic in the Windows Services. Next the Domino Server can be started. Using sh stat server you can see with which version the Domino Server is running now. In my case this is Release 9.0.1 FP7 so the upgrade of the server has been successful.


Remark: If the upgraded server is Administration server then at the server starts up it will prompt with the message. "Do you want to upgrade the design of your address book? This replaces the standard forms and views with the ones from the template.(Yes/No).
Type Yes or Y and enter and it will upgrade the design of the names.nsf with the latest template.
This completes the upgrade of the Domino server.

Tuesday, 1 May 2018

IBM Notes Domino 9.0.1 Feature Pack 10 Interim Fix 3 Available for Download on IBM Fix Central


Yesterday IBM released IBM Notes Domino Feature Pack 10 Interim Fix 3 on IBM Fix Central (About shows 9.0.1FP10 SHF81).
Download: IBM Notes 9.0.1 Feature Pack 10 Interim Fix 3

Notes Domino 9.0.1 Feature Pack 10 addresses defects in the Client, Server, and the Domino OpenSocial component. All Feature Packs are language independent and may be applied on any language version of Notes Domino 9.0.1. See Download Options for Notes Domino 9.0.1 Fix Packs and Feature Packs for all Notes and Domino Feature Pack 10 Download Links and Part Numbers. For more information see also IBM Notes Domino 9.0.1 Feature Pack 10 Release Notice.

Important:
The JVM was upgraded to Java 1.8 SR4 FP10 (with tzdata17c) (SPR #HYUEAQ2JUQ).
Notes/Domino - Java 1.8 SR4 FP10 (with tzdata17b).
For information on NBP (Notes Browser Plugin), Notes Client on Linux, or Domino Server on Linux32 and AIX32, please refer to the 9.0.1 FP8 release notice.
Templates – There are no template updates for FP10; use templates from FP9.
Pre-Req for Traveler Server: If are upgrading the version of Domino to 9.0.1 FP10 on your Traveler serve, for server compatibility use Traveler 9.0.1.20 or higher.

New Features in IBM Notes Domino 9.0.1 Social Edition Feature Pack 10
1. The JVM in Designer is Upgraded to use 1.8 at compile time
2. Eclipse Platform Upgraded to 4.6.2
3. Embedded Sametime Upgraded To 901 By Default
4. The GSKit libraries are upgraded to Version 8.0.50.84 for both client & server.
5. Japanese User Interface Update
6. Add-on Installer for Notes CCM (Connections Content Manager)

Monday, 23 April 2018

IBM Domino: Deliver a New User Experience with TeamWorkr

On Thursday April 19 I attended a very interesting webinar, Destination Domino: Domino App Modernization: How to modernize your apps in less than an hour. The replay of the webinar is available on demand. You can register here.


Content
We know that organizations have invested large sums of money, time and effort in building solutions in Domino to meet their explicit business needs.
For some giving their apps a "facelift" by re-developing those apps in Xpages, or technologies such as JavaScript, is not an option.
As part of our Domino App Dev vision, teamWorkr is a quick way to extend the life of your applications with a modern HTML 5 look and feel that any administrator, savvy business user, or student can be taught to do.
During the webcast, you will learn how companies such as Strabag, Panasonic, and German Statutory Pension Insurance were able to modernize thousands of their Domino applications with very little to no effort for their desktops and mobile devices.
Specifically, hear from the German Pension what their business users are saying and the ROI they are delivering to their organization based on their use of TeamWorkR.
Lastly, we know you have questions. Join us for the Q&A session at the end.

Speakers are Andrew Manby, Director of Offering Management IBM Collaboration Solutions and Thilo Volprich Managing Director & Founder Team Technology GmbH.
Below a demo from the April 19th webinar. The demo explains how easy it is to work with teamWorkr to deliver a new user experience.



For more information about teamWorkr: How it works - Build beautiful mobile Notes apps

Thursday, 19 April 2018

Replay Webinar Your Guide to Modern Defense Tactics and Risk Mitigation for a Secure IBM Domino Environment


Yesterday I followed the mind blowing webinar Your Guide to Modern Defense t\Tactics and Risk Mitigation for a Secure IBM Domino Environment by Ytria. In case you have missed the webinar below the replay. I am very pleased that we are using these great Ytria tools (EZ Suite complete) in our daily work.

Content
Enterprise IT security has never been more important in light of recent, high-profile cyber attacks—as well as the looming European GDPR (General Data Protection Regulation) that comes into effect on May 25—and Domino Infrastructures are no exception.
In this fast-paced webinar, we'll walk through most important threats against Domino environments. And you'll learn what you can do to strengthen both your internal and external Domino security posture by using the Ytria tools. We'll discuss topics such as:
External Domino security and all that's involved (ACLs, Domino Web server configurations, hashing algorithms).
Mass-managing ACLs and effective access to critical applications—including proper reporting and documentation.
Mitigating internal risks from application design flaws to agent security.
Demonstrating real-life attack scenarios and how to defend yourself against them.
Interesting security configuration worst practices, and myths regarding ACL settings, readers and authors items, and more.



Watch also the previous webinar GDPR Considerations for Your IBM Domino Environment.
For more information see my previous blog post, Replay Webinar GDPR Considerations for Your IBM Domino Environment (Ytria) including the slides and the link to the scripts used in this great webinar.

Friday, 13 April 2018

Your Guide to Modern Defense Tactics and Risk Mitigation for a Secure IBM Domino Environment


The will be another very interesting Webinar by Ytria on April 18, Your guide to modern defense tactics and risk mitigation for a secure IBM Domino environment. Enterprise IT security has never been more important in light of recent, high-profile cyber attacks—as well as the looming European GDPR (General Data Protection Regulation) that comes into effect on May 25—and Domino Infrastructures are no exception. Registration for the webinar is open through this link.

Content
In this fast-paced webinar, we'll walk through most important threats against Domino environments. And you'll learn what you can do to strengthen both your internal and external Domino security posture by using the Ytria tools. We'll discuss topics such as:
External Domino security and all that's involved (ACLs, Domino Web server configurations, hashing algorithms).
Mass-managing ACLs and effective access to critical applications—including proper reporting and documentation.
Mitigating internal risks from application design flaws to agent security.
Demonstrating real-life attack scenarios and how to defend yourself against them.
Interesting security configuration worst practices, and myths regarding ACL settings, readers and authors items, and more.

See also the previous webinar GDPR Considerations for Your IBM Domino Environment.



For more information see my previous blog post, Replay Webinar GDPR Considerations for Your IBM Domino Environment (Ytria) including the slides and the link to the scripts used in this great webinar.
I am very pleased that we are using these great Ytria tools (EZ Suite complete) in our daily work.

Wednesday, 11 April 2018

Webinar Domino App Modernization - Learn How to Modernize your Domino Apps in less than an hour!


On Thursday, April 19 there will be a very interesting webinar, Destination Domino: Domino App Modernization: How to modernize your apps in less than an hour. Registration for the webinar is open through this link.

Content
We know that organizations have invested large sums of money, time and effort in building solutions in Domino to meet their explicit business needs.
For some giving their apps a "facelift" by re-developing those apps in Xpages, or technologies such as JavaScript, is not an option.
As part of our Domino App Dev vision, teamWorkr is a quick way to extend the life of your applications with a modern HTML 5 look and feel that any administrator, savvy business user, or student can be taught to do.
During the webcast, you will learn how companies such as Strabag, Panasonic, and German Statutory Pension Insurance were able to modernize thousands of their Domino applications with very little to no effort for their desktops and mobile devices.
Specifically, hear from the German Pension what their business users are saying and the ROI they are delivering to their organization based on their use of TeamWorkR.
Lastly, we know you have questions. Join us for the Q&A session at the end.

Speakers are Andrew Manby, Director of Offering Management IBM Collaboration Solutions and Thilo Volprich Managing Director & Founder Team Technology GmbH.

Overview
Title: Domino: Domino App Modernization:  Learn how to modernize your Domino apps in less than an hour!
Date: Thursday, April 19, 2018
Time: 10:00 AM Eastern Daylight Time
Duration: 1 hour

For more information about teamWorkr: How it works - Build beautiful mobile Notes apps

Monday, 9 April 2018

The Power of LotusScript Part IV - CurrentView.DeselectAll

Last Friday I came again across the problem that documents remained selected after a View Action was executed. In the view were repeatedly a number of documents selected to be processed. The problem concerned a LotusScript agent using the UnprocessedDocuments method. As before I initially tried, by using the UpdateProcessedDoc method, to provide the documents of a 'processed stamp' so that these documents would not be processed  by the same Agent again. Unfortunately, this had no effect and the documents remained selected when the View Action was executed again for the next documents. The strange thing was that the documents were no longer visible in the view after they were processed but nevertheless remained selected. Eventually I found the solution on my own blog. In order not to forget this in the future I added the solution to my blog series as a reminder for myself.

The Power of LotusScript
Part I - Create New Document From UIdocument Using LotusScript
Part II - LotusScript Agent Send Email to Multiple Receipients (Per Recipient) Including a Doc Link Based on a Search Formula
Part III - Quick Tip - OpenDocumentInUI - OpenDocumentOtherDBInUI
Part IV - CurrentView.DeselectAll

On the IBM Support site I came across the following Technote (FAQ), View actions leave documents selected after execution in which my problem was described

Question
After executing a View action in Notes/Domino, documents that were selected prior to running the View action are still selected, even when one or more documents no longer appear in the view. This can have adverse effects because a user may not realize that documents in other views may be selected when they execute the same action, a second action, or an agent that acts on currently selected documents.

Example of an adverse effect
An action uses LotusScript to act on selected documents using the UnprocessedDocuments property of the NotesDatabase class. If the action modifies documents so that they no longer appear in the view, a user would not realize that the documents were still selected after running the action. If the same View action is executed again (or another action that also uses the UnprocessedDocuments property), then documents in other views could be acted upon without the user realizing it.

The final solution (workaround) consists of the addition of CurrentView.DeselectAll in de LotusScript Agent.

Sub Click(Source As Button)
Dim s As New notessession
Dim db As notesdatabase
Dim col As notesdocumentcollection
Dim w As New notesuiworkspace

Set db=s.CurrentDatabase
Set col=db.UnprocessedDocuments
Set doc=col.GetFirstDocument
While Not (doc Is Nothing)
...
Set doc=col.GetNextDocument(doc)
Wend
Call w.CurrentView.DeselectAll
End Sub

I hope that the above solution will help someone with the same problem that I encountered now for the second time. In my next blog posts more LotusScript Functions and Agents that I have implemented during the past period in various Notes applications.

Friday, 6 April 2018

The Power of LotusScript Part III - Quick Tip - LotusScript Routines OpenDocumentInUI - OpenDocumentOtherDBInUI


In this third part of the new blog series 'The Power of LotusScript' a handy tip to open a document in the current database using LotusScript as well as to open a document in another database using LotusScript. In my Notes applications I use the LotusScript routines below for this which I added in a Script Library. Below a short description and the sample code of the LotusScript routines.
On the Notes Form I initially add a field including an Action Hotspot in which eventually the LotusScript is added in the click event for opening the document in the current database or other database. In the (Options) of the Action Hostspot I add the name of the Script Library where the LotusScript routines have been added (Use 'NameScriptLibrary').
Finally in the current database and the other database in which the relevant document must be opened a (hidden lookup) View must be present sorted by the field name (key) used in the LotusScript code in the Action Hotspot (click event) of the added Field  for opening the document .
Remark: In the example below to open a document in another Notes database I use the value of a field on a Profile Form in the current database, the replicaID of the other Notes database.

The Power of LotusScript
Part I - Create New Document From UIdocument Using LotusScript
Part II - LotusScript Agent Send Email to Multiple Receipients (Per Recipient) Including a Doc Link Based on a Search Formula
Part III - Quick Tip - OpenDocumentInUI - OpenDocumentOtherDBInUI

A. Open Document in UI
As mentioned above we need to add a little bit of LotusScript code in the click event of the Action Hotspot of the added field on the Notes form to open the document in the current database. The Lotusscript code which has to be added in the click event of the Action Hotspot is as follows:

Sub Click(Source As Button)
' init
Dim s As New NotesSession
Dim db As NotesDatabase

Set db = s.CurrentDatabase

' open link in ui
Call openDocumentInUI( "($LookupViewCurrentDatabase)", "FieldName")
End Sub

Add the LotusScript sample code below in a Script Library in the Notes application.

Sub openDocumentInUI(viewName As String, fieldName As String)

' init
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim fieldValue As Variant

' check if document is selected
If Not ws.CurrentDocument Is Nothing Then

' document is selected
Set uidoc = ws.CurrentDocument

' open db and view
Set db = s.CurrentDatabase
Set view = db.GetView(viewName)
fieldValue = uidoc.Document.GetItemValue(fieldName)

' get document
Set doc = view.GetDocumentByKey(fieldValue(0))

' check if document has been found
If Not doc Is Nothing Then

' open document in workspace
Call ws.EditDocument(False, doc)
End If
End If

End Sub

B. Open Document in Other Database in UI
For opening a document in another Notes database we also need to add a little bit of LotusScript code in the click event of the Action Hotspot of the added field on the Notes form. The Lotusscript code which has to be added in the click event of the Action Hotspot is as follows:

Sub Click(Source As Button)
' init
Dim s As New NotesSession
Dim db As NotesDatabase
Dim pdoc As NotesDocument
Set db = s.CurrentDatabase
Set pdoc = db.GetProfileDocument("ProfileForm")
' open link in ui
Call openDocumentOtherDbInUI(pdoc.FieldReplicaIDNotesOtherDatabase(0), "($LookupViewOtherDatabase)", "FieldName")
End Sub

Add the LotusScript sample code below in a Script Library in the Notes application.

Sub openDocumentOtherDbInUI(repID As String, viewName As String, fieldName As String)
' error handler
On Error GoTo errorHandler
' init
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim s As New NotesSession
Dim db As NotesDatabase
Dim otherDb As New NotesDatabase("", "")
Dim view As NotesView
Dim doc As NotesDocument
Dim fieldValue As Variant
' check if document is selected
If Not ws.CurrentDocument Is Nothing Then
' document is selected
Set uidoc = ws.CurrentDocument
' open db's and view
Set db = s.CurrentDatabase
Call otherDb.Openbyreplicaid(db.server, Replace(repID, ":", ""))
Set view = otherDb.GetView(viewName)
fieldValue = uidoc.Document.GetItemValue(fieldName)
' get document
Set doc = view.GetDocumentByKey(fieldValue(0))
' check if document has been found
If Not doc Is Nothing Then
' open document in workspace
Call ws.EditDocument(False, doc)
End If
End If
Exit Sub
errorHandler:
Call AddToStackTrace()
End Sub

I hope that someone can (re)use these routines for their own applications or at least got an idea based on these routines for their own development. In my next blog posts more LotusScript Functions and Agents that I have implemented during the past period in various Notes applications. At this moment I am considering a Demo application with the different Functions, Agents and Routines that will be discussed in this blog series. If there is a need for this, please let me know.