Ben Langhinrichs

Photograph of Ben Langhinrichs

IBM Champion logo

E-mail address - Ben Langhinrichs






September, 2018
SMTWTFS
      01
02 03 04 05 06 07 08
09 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

Search the weblog





























Genii Weblog


Civility in critiquing the ideas of others is no vice. Rudeness in defending your own ideas is no virtue.


Thu 20 Sep 2018, 02:57 PM
 
 
At Genii Software, we're very excited about Notes/Domino 10 and all the opportunities it presents. We have new features planned for all our server-based products, though some will roll out right away and others will take longer. We aim to take advantage of every new capability, including coordination and integration with Node JS when that is ready (and stable - let's be honest). Truth be told, Domino 10 offers all of us a lot, but doesn't remove the need for the high quality rendering Genii Software is famous for providing. Rendering to MIME, HTML, JSON, CSV, EPUB, and more. Mobile/web/Notes client integration. Much more.
 
To share our excitement, and to help you prepare to get the most out of Domino 10 when your company gets there, and to minimize the pain until you do, we are offering a Buy One/Get One deal on server licenses for all our major products. Migration-specific and client licenses not included. Buy an AppsFidelity server license, get another at no cost. But three CoexLinks Fidelity server licenses, get three more at no cost. You get the idea.
 
We are extending this offer through the release of Domino 10 (or really to October 20th, because nobody moves quite that quickly). If you place an order or get an official quote by October 20th, you will get the additional licenses. If you already bought a server license (or three) in September, we will extend the offer to you as well.
 
Let's celebrate. Let's be ready. Let's hop off the fence and start investing in Domino and its related products again.
 
 
 
 

Copyright © 2018 Genii Software Ltd.

Tags:

Thu 6 Sep 2018, 02:57 PM
Given Tim Davis' recent post, Things to know with JavaScript – JSON, let, const, and arrows, I thought it might be a good time to follow up my recent post on a RESTful interchange between Notes and Salesforce,  and show the JSON I used to push the Notes data to Salesforce. While the raw JSON data (generated using our Midas LSX) is shown below, I'll mention a few of the specifics so you know what you are seeing.
 
1) The Id is the Salesforce ID for the Contact sObject, saved from a previous push of the Salesforce data into Notes to make the roundtrip easier.
 
2) The NotesUNID__c is a custom Salesforce field I added to the ID for the Contact sObject. Salesforce always appends __c to such fields. This is used to make the roundtrip easier from the other direction. This item is created automatically when Midas is told to use JSONFormat='Salesforce'.
 
3)  The AccountID is taken from our document's CompanyName item. It is a native Saleforce field, so doesn't have the __c at the end. Below the JSON, I'll show the export directive which told Midas to call this AccountID. Note that JSON is in UTF8, so this looks Über Øst instead of like Über Øst.
 
4) Phone is a native Salesforce field on the Contact sObject. It is taken from our Tel item.
 
5) Name is a native Salesforce field on the Contact sObject. It is created from a formula language combination of the FirstName and LastName items on our Notes document.
 
6) Email is a native Salesforce field on the Contact sObject. It is taken from the Email item, so doesn't need a mapping.
 
7) SampleBody__c is another custom Salesforce rich text area field I added to the Contact sObject. It is taken from the Notes rich text item, rendered in high fidelity by Midas.
 
{
   "Id": "0030b000023PlWQAA0",
   "NotesUNID__c": "E04775C6408795F4852582F8004945F7",
   "AccountID": "Über Øst",
   "Phone": "+31 025‒6206230",
   "Name": "Gunder van der Wilcox",
   "Email": "GvdWilcox@UberOst.com",
   "SampleBody__c": "<div style=\"line-height:normal;\"><span style=\"font-size: 10pt; font-family: sans-serif; \"><\/span><\/div><div align='left'><table cellspacing='0' cellpadding='0' style='width:430px;border-spacing:0;padding:none;border-collapse:collapse;table-layout:fixed;'><colgroup><col style=\"width:44%;\" \/><col style=\"width:26%;\" \/><col style=\"width:26%;\" \/><\/colgroup><tr style='vertical-align:top;'><td width='191' bgcolor=\"#ffffff\" rowspan='3' style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><img src=\"E04775C6408795F4852582F8004945F7_Notes_0_482.jpg\" alt=\"Inline JPEG image\" height=\"72\" width=\"39\" align='right' style=\"border:none;\" \/><span style=\"font-size: 8pt; font-family: sans-serif; \">Customer<br \/><\/span><span style=\"font-size: 10pt; font-family: sans-serif; \"><strong>Better Budgies Ltd<br \/><\/strong><\/span><span style=\"font-size: 10pt; font-family: sans-serif; \">The Aviary Group<br \/><br \/>Swallowdale 36, South Wutherford<br \/>ESSEX BB01 1BB<br \/>United Kingdom&nbsp;<\/span><\/div><\/td><td width='114' bgcolor=\"#ffffff\" style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><br style=\"clear:both;\"\/><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">Date<\/span><\/div><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">05\/17\/2002<\/span><\/div><\/td><td width='114' bgcolor=\"#ffffff\" style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">Quotation Number<\/span><\/div><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">QN&#8722;99283-MM2<\/span><\/div><\/td><\/tr><tr style='vertical-align:top;'><td width='114' bgcolor=\"#ffffff\" style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">Customer Reference<\/span><\/div><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">BL10923-B573<\/span><\/div><\/td><td width='114' bgcolor=\"#ffffff\" style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">Terms of Payment<\/span><\/div><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">30 days net<\/span><\/div><\/td><\/tr><tr style='vertical-align:top;'><td width='114' bgcolor=\"#ffffff\" style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">Valid to<\/span><\/div><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">06\/17\/2002<\/span><\/div><\/td><td width='114' bgcolor=\"#ffffff\" style=\"padding: 0.0000in 0.0201in; border:1px solid #000000;\"><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">Delivery Time<\/span><\/div><div style=\"margin-left:1%; margin-right:1%; text-indent:1%;\" align='left'><span style=\"font-size: 10pt; font-family: sans-serif; \">2 Wks<\/span><\/div><\/td><\/tr><\/table><\/div><div align='left'><span style=\"font-size: 10pt; font-family: Verdana; \"><\/span><\/div>"
}
 
To generate all this, I used our Export to JSON sample db. This is the Export Directive form, which allows a coding-free definition of what is to be exported.. I am only exporting a single document by UNID, but we can generate by view or selection formula or whatever. Note that with the fields to export, we start with the source item or formula, then an equals sign, then the name to use inside the JSON, so FirstName+" "+LastName=Name uses the formula FirstName+" "+LastName to added the Name in the JSON. This can be any Notes formula, including ones that use @DbLookup, for example.
 
Inline JPEG image
 
So, that is how I generated the JSON to use in the RESTful exchange going from Notes to Salesforce. I'll show the other way around in a future post.

Copyright © 2018 Genii Software Ltd.

Tags:

Wed 29 Aug 2018, 10:31 AM
Over the past few years, we have expanded our offerings at Genii to allow more exchanging of data. To be honest, most of it has been outgoing, whether migrating Notes data to SharePoint or many other systems, or simply rendering Notes information to be more consumable on the web. We have added support for CSV to allow large batch exports, but also JSON to allow more RESTful exchanges. Rich text is included, of course, but much of the focus is on powerful extraction of data of all sorts.
 
It is with that latter goal in mind that I have been working with a few different systems including SharePoint, Confluence, and Salesforce. But times are changing. There are many positive signs out of IBM and HCL about the soon-to-arrive Notes/Domino 10, as well as future, even more ambitious plans for Notes/Domino 11. With that in mind, I am focusing a little more energy on drawing date into Notes/Domino.
 
One example of the work I have been doing is between Notes/Domino and Salesforce, because the latter has grown by leaps and bounds in popularity. But most companies don't get to choose either Notes/Domino OR Salesforce. Instead, they are left with Notes/Domino AND Saleforce. With that in mind, I am working on how to use a REST interface as well as events in Notes/Domino and the Streaming API in Salesforce to move data back and forth, either keeping it in sync or storing the appropriate pieces of one system in the other as needed. Notes/Domino has its advantages, Salesforce has different ones. Companies which can easily share and exchange information between them can pick and choose where an application or data resides, which may not be the same place it is collected.
 
Getting all of that in place will take a while, and I hope to document some of the steps. Obviously, we would welcome any companies that want to use our products now to move data, but we will also try to be transparent about the advances we make. As a simple example of how extensive this can be, I show here some fields including a Notes rich text field moved to a Salesforce Contact with a rich text area field.
 
The following is after the POST to Salesforce (red arrows show updated fields).
 
Inline JPEG image
 
 
 
And this is the source in Notes/Domino (red arrows show fields to use for REST).
 
Inline JPEG image
 
So far, it is pretty good, but we intend to improve it. If you would like to be part of a test with some of your data, contact me and we'll work it out.
 

Copyright © 2018 Genii Software Ltd.

Tags:

Mon 20 Aug 2018, 02:32 PM
I've spent the past couple of weeks working with Trailhead, the excellent (and free) gamified learning system provided by Salesforce. As I dive deeper into Salesforce, I am impressed by the parallels with Notes/Domino, but also intrigued by the differences. My goal is not to leave Notes/Domino, but to provide our customers with the appropriate solutions for their needs. That might be Notes/Domino or might be Salesforce, but it also might be that they need Salesforce with a dash of Domino, or Domino with a soupçon of Salesforce.
 
We fill the needs our customers have. If we need to extend Salesforce or extend Notes/Domino, we can do it; So, if you are one of our Notes/Domino customers and see my Salesforce posts, know that I am learning from the competition (imitation being the sincerest form of flattery). If you used to be on Notes/Domino and remember our products, but have moved to Salesforce since, know that I am looking at ways to bring the best of both Genii Software's products and Notes/Domino to Salesforce where appropriate.
 
Of course, there is also an excellent chance that your company has both Salesforce and Notes/Domino. In that case, know that one focus will be on moving data back and forth seamlessly on demand. I have already been playing with the Bulk Load API in Salesforce and the Midas LSX to move data quickly and easily. The JSON support built into Genii's products allows for RESTful interchanges and high fidelity. More on that later, but if you would like to discuss your needs or ask any questions, don't hesitate to contact me.

Copyright © 2018 Genii Software Ltd.

Tue 7 Aug 2018, 03:59 PM
I am working with a Notes/Domino customer with a large quantity of email in Notes databases they wanted archived outside of Notes, and they are considering  CoexLinks Migrate. At first, they seemed dubious about the importance of how well email renders (a topic as exciting as mixing cement), but one of the people in the meeting had come across a blog post I made about forms that had been mailed where data disappeared when rendered. Disappearing data caught the attention of the lead person, who asked that I demonstrate. The only problem is, the customer is still not sure whether they want the email archived as EML or HTML, possibly both. 
 
The scenario is quite simple and happens all the time. A user is looking at a form, and forwards it to somebody else with a question or request for action. Since Notes rich text forwards well, they think nothing of it, and the content shows just as it did in the database. But when it leaves Notes, whether right then as an email or later when archived to another format, more than the appearance is lost.
 
I can't share customer data, so I used a simple example from a Notes database I use to track orders and maintenance. It has some common form elements, nothing fancy. Note that this same engine with some variants is used for CoexLinks FidelityCoexLinks Journal and CoexLinks Migrate, and a similar engine is used for application data with AppsFidelity.
 
As I mentioned before, the compelling part of this is not just what is preserved, but that it may be your last chance to preserve it. The customer never wants to deal with the Notes databases again, so this is a last chance to get the data out. It better all be there, or it is effectively lost.
 
What may be lost when archiving/emailing outside of Domino without CoexLinks
Inline JPEG image
 
 
1) Notes form open in Notes client (original data+looks)
Inline JPEG image
 
 
 
2) The form forwarded via Notes email, still in rich text (data+looks preserved)
Inline JPEG image
 
 
 
3) The email archived to EML using simple File Save... or native API (data+looks lost)
Inline JPEG image
 
 
 
4) The email archived to EML using CoexLinks Migrate (data+looks preserved)
Inline JPEG image
 
 
5) The email archived to HTML using CoexLinks Migrate (data+looks preserved)
Inline JPEG image
 
 
Fill out a CoexLinks Migrate evaluation request and try for yourself,
 
 
6) The email as it arrived in Outlook 365 using Domino email (data+looks lost)
Inline JPEG image
 
 
 
7) The email as it arrived in Outlook 365 with CoexLinks Fidelity (data+looks preserved)
Inline JPEG image
 
 
Fill out a CoexLinks Fidelity evaluation request and try for yourself,
 

Copyright © 2018 Genii Software Ltd.

Tags:

Fri 27 Jul 2018, 03:02 PM
Inline JPEG image
 
Had a great conference. Loved seeing everybody and hearing more about Domino 10 (though I'd have liked to see more demos). Optimism was running higher than in the past few years. Now HCL just has to deliver (which they seem hellbent on doing, and having a fair degree of success by most accounts). This time next year, I should be writing my blog post on Notes 10 and talking about Notes 11 features, which seems nigh on miraculous after the past few years.
 
Thanks to Richard Moy and all the sponsors for the hard work, money and commitment such a conference takes. Well done!
 
My slides and samples are up on http://geniisoft.com/db/CollabSphere2018 for download. If anybody has any questions, don't hesitate to ask, as some of the slides may require additional explanation.

Copyright © 2018 Genii Software Ltd.