Posting to Microsoft teams from using Lotusscript

With the new HTTP classes in Domino 10 and lotusscript sending a message to a Microsoft teams group is very simple.

first you need to enable your microsoft teams group to accept posts this is done by adding a incoming webhook to the teams channel

  1. Open the Channel and click the More Options button (which appears as three dots at the top right of the window).
  2. Select Manage teams.
  3. Click on the Apps tab and click on the Go to Store button
  4. Scroll down or search for Incoming Webhook and click the Add button.
  5. Give the connector a name and image of your choosing and finally click Create.
  1. A new unique URI is automatically generated. Copy this URI string to your clipboard.

Now over to domino designer

  1. Create a Lotusscript agent
  2. Add the following code
Dim session As New notessession
Dim teamsURL As String,Body As String,Message as string
message="Domino 10 Talks"
teamsURL="<Paste the teams URI here>"
Dim http As NotesHTTPRequest
Set http=session.CreateHTTPRequest()
Body=|{"text":"|+Message+|"}|
Call http.SetHeaderField("ContentType","application/json")
Call http.Post(teamsURL,Body)
	

Run the code and a message should appear in the channel. There is lots of extensions to the Json Body so you can format the text and add images or links. Happy Coding!! This is the first post of a series how you can extend Domino 10 using the new http and json request classes.
Check out Posting to Slack

Happy Coding.

Developer roadmap of Domino?

Domino 10 is out from a end user perspective but from a developer perspective not much is added.
We have got some new classes for Lotusscript, upgraded version of eclipse in designer but that gives so far more problem than positive effects.

IBM/HCL has said that they will come out with a developer roadmap and that will be interesting and I hope that it will contain the following and I will explain why.

a future roadmap for the basic client with development improvements, why because a new client for IOS is released that there has been talk of Android and Webassembly that is why this must improve why spend money on this if no one should use it for new development.

Updates to XPages with new functionality, updated Dojo and Extension library. Why, this is the ONLY mature development option on the platform except legacy Domino web development. And Domino developers will probably not jump on and start moving all code to a new dev platform again that is in Beta.

Updates to the http web engine like http/2 and websockets. Why, because modern web development requires fast delivery of resources and the app.

And finally maturing the new NodeJS engine with more functionality to support Domino security and api more like LS and Java

Not a sub or function name

If you suddenly start getting errors from a scriptlibrary or on a button in a form or a view.
Errors like this

  • Not a sub or function name
  • Sub or Function Not Defined
  • DB is not declared
  • Variable not resolved
  • Unable to find XXXX

Check that you variables / functions / Subs is declared as public

This is done at the top of the library or form using Options Public

This error can easily be mistaken with 64K library problems, Lotusscript recompile issues and other HCL Domino FP9 and FP10 related issues

IBM Domino and GDPR, what is this?

On the 25:th of May this year a new set of rules come in affect for companies that deal with European citizens. This will give some basic rights to people and the information related to them.
This will affect all companies in EU or working against EU, so if you are an US based company but have customers inside EU you are affected by this.

  1. Right to know what is stored
  2. Right to be forgotten
  3. Right to correct wrongful data
  4. Right to portability
  5. Right not to be a subject to automated decision making

This will then have some effects on your company and the systems holding the information.

  1. Make sure that you have a data privacy policy
  2. Make sure you know what information you use to what and where
  3. Make sure that you process information on a legal ground
  4. Inform and get consent from users if needed
  5. Make sure that information is safe
  6. Make sure that right people have access to the information
  7. Make sure that you can erase information/anonymize that you don’t have rights to process anymore (Yes, backups also apply)
  8. Make sure that you can correct wrongful information
  9. Have a routine to investigate and report data breaches
  10. Make a list of all your data processors

How can we handle this in a Domino based system then?

Notes names and the Adminp process is a good start to comply with right to correction and right to be forgotten. But you might probably need to adjust your applications
Fulltext search and Domain search can also help you find data that you need to remove and/or correct.
Enable webserver logs to find out what is happening in you webb environment, but remember to clean up this log with the retention policy that you have decided and add that you log things to you privacy policy.

If you need assistance, have questions or need help getting ahead of this feel free to contact me.
Also Follow my twitter flow for GDPR articles in Swedish and English –> GDPR News

I’ve also found a tool that can help you track changes in your Domino environment GDPR Logger
( Contact me if you find this tool interesting )

Some more info in this youtube video by Ytria

 

Featurepack 10 for Domino 9.0.1 is available Now

Check it out but I would recommend that you try your applications first before installing this into your production environment because this is a feature pack and it’s contains the last pieces to upgrade the server to Java 8 and with this update the client gets Java 8 and an upgrade to a newer eclipse version.

Check out Paul Withers post also http://www.intec.co.uk/notes-domino-fp10-suggested-steps/

URL to server download on Fixcentral –>

Windows Server 64 

Windows Full Client 

 

a small list for the environment

Domino 2025 Jam is coming up tomorrow in Sweden and I will attend and see how this event will affect the future of the IBM Domino environment. I’ve created a list of things that I think would be good to have for the future. So here is the list in no specific order for now I will probably come back and update this post more.

  • Support for Cloud based Connections in onpremise Verse
  • Addon Store for Verse
  • More Actions based handling of emails that needs Actions
  • Save searches in Verse as as dynamic folders
  • HTTP/2 support
  • more SQL like syntax in views like Joins
  • Extended FT Search query commands
  • Websocket support
  • Scheduled XPage/Java code, might already be there with updated OSGI in FP10
  • Javascript update in XPages
  • Remove 64K limits in lookups
  • Check if field is to large
  • Add paging in Lookups
  • Support for CSS preprocessors
  • NodeJS in NSF support
  • Install/update Server modules like NPM (great idea Patrick Kwinten)
  • Virtual Server support for multiple HTTPS addresses on one IPAdress
  • Virtual Server Folder Access Control – What folders is accessible from one hostname
  • LTPA Token send as an Authorization header instead of a cookie for better rest support
  • Split upload handling (direct server support would be good instead of creating your own)
  • Attachment streaming for video
  • Round-trip Editing of attachments like we have in the Notes client
  • Support for more names in a single group and/or in names fields
  • Server side setup of Password Change requirements for web users
  • Server side setup of Password complexity for web users
  • 2-Factor login using i.e Google authenticator
  • Bulk import, faster ways to import large datasets from CSV or XML
  • Updated Notesid creation I believe that there is a limit to 1 each ms today
  • Database performance monitor
  • Speed, Speed and more Speed

Feel free to add your entries to the list, I have most certain missed lots of entries.

Making your Domino environment work for you

If you haven’t started using Rest api calls with your Domino environment, it’s time now. This will help you extennd and connect your domino environment to external services or connect external services to your Domino environment.

There is several ways to expose Rest api from the server

  • Domino Data Services
  • SmartNSF on OpenNTF
  • XPage with Json output
  • Domino View displayed as json
  • Lotusscript or Java agent

Here is some ideas what you could do

  • Sending / getting data from ERP system
  • Remote run print jobs
  • Compile Log events from servers or machines
  • Send control files to a cutting machine
  • Get information about how many people is walking thru a door
  • Getting sales numbers from cash registers into the Domino based extranet
  • Automatically get the exchange rate and update this into the system
  • Moving a support case forward in your external helpdesk
  • Connect IOT devices directly to a Domino or use IBM IOT in Bluemix as the collector point

If you have any great additions to the possibilities or need help implementing feel free to contact me or comment below.

Getting data from an HTTPS site in backend using XPages

If you want to connect to an SSL protected site and get information it could be an webpage or a webservice if you are using xpages and the certifier isn’t already in Domino you need to import the certificates.

Open up the Domino Name and adress book navigate to Security -> Certificates

When you are in this view the action menu will have a new option

Select these and import each of the certificates that you have.

When they are imported you need to create a Cross certificate.

Go in to each one of the newly imported certificates and in the actions meny you will have create cross certificate create a cross certificate against the server. Make sure to change from Local to the server in registration server. When you are done.

Restart task HTTP on the server console and you should be able to connect.

If it’s an old Java agent this doesn’t work then you need to import the certificate in the keystore in the jvm.
If you are doing this let me know and I assist you.

 

java.io.File doesn’t work as expected in Domino FP7 and newer versions

I found this error in a java agent first. If you detach a file from a Notes document using Domino Classes and try to get a handle on the file using java.io.File the file isn’t found until you do a new call against the server. I don’t know if this has to do with the change of Java version server side or not but the same code works in FP6.

Code Example

Body.extractFile(strFileName);
File objInFile = new File(strFileName);
if(objInFile.exists()){

But if you go and use java.io.File in an XPage it will not find a file until you reload the page completely, it seams to work fine in FP6 but not in newer versions.

I have tried this on Window 64bit version of Domino 9.01fp6, 9.01fp7 and 9.01fp9

Anybody else seeing the same problems please report against the problem
SPR # PALTAQQLXH / APAR LO92928

If you want to test it in a database let me know and I can supply a sample database

Have you experienced any other bugs related to the Java upgrade?

Verse 1.0.2 with Live text and send extensions

Yes you heard right, onpremise Verse gets extensionpoints that gives you the possibility to find text and populate this.

Live text demo showing clickable text that reveal actions you can take.

And also gives you the possibility to do intercept the user before a email is sent. This is great for compliance reasons.

There is more good stuff in there but this is really exciting a developer end point in to web email.