Friday, 6 December 2013

soapgate Q! 5 Beta 2 released

soapgate Q! 5 Beta 2

Bug Fixes
  • dbOutlineViews() - Did not return always welformed XML 
  • dbLookupX() - Returned an error message when no columns had to be returned (empty COLFIELDS parameter), but one or more of the parameters VENUM, UNID and NOTEID where set to True. The latter is a perfectly valid scenario to receive for instance the UNID and NoteID of documents only.
  • dbPutInFolder() / dbRemoveFromFolder() - Failed when the given list of UNIDs/NoteIDs was no refering to a unique list of documents (double entries). The latter is now ignored.
  • dbLookupNames() - Returned no result if the RowFormat parameter was set to False


New Features
Release 5 is all about RESTful services. Whilst the soapgateQ! project was originally focused on providing a web service based API to Domino, we decided that it wouldn't harm to write some wrapper classes around the current functionality to provide a RESTful interface.

This current BETA release does not yet cover all the provided web service operations, but the most commonly used ones:

http:/domino.flexdomino.net/soapgateq_5.nsf/REST4ViewsFolders?OpenAgent

  • dbClearFolder()
  • dbColumn()
  • dbColumnX()
  • dbFTSearch()
  • dbLookup()
  • dbLookupX()
  • dbOutlineViews()
  • dbPutInFolder()
  • dbRemoveFromFolder()
  • dbRowX()
  • dbSearch()
  • dbViewEntries()
  • dbViewFTSearch()


http:/domino.flexdomino.net/soapgateq_5.nsf/REST4Documents?OpenAgent

  • dbDeleteDoc()
  • dbDocAttachmentList()
  • dbGetFieldTypes()
  • dbGetFormFields()
  • dbReadDocFields()
  • dbReadProfileFields()
  • dbSaveDocFields()
  • dbSaveProfileFields()


http:/domino.flexdomino.net/soapgateq_5.nsf/REST4WinCAPI?OpenAgent

  • dbGetDelStubs()


http:/domino.flexdomino.net/soapgateq_5.nsf/REST4AccessNAB?OpenAgent

  • dbACL()
  • dbEffectiveRights()
  • dbGetMailInfo()
  • dbLookupNames()
  • dbUserRoles()

Please refer to the release notes provided with the download

Friday, 1 November 2013

soapgateQ! 5 Beta just release on OpenNTF

soapgateQ! 5 Beta supporting RESTful API calls (besides SOAP) is now available on soapgateq.openntf.org

Thursday, 31 October 2013

The new REST API in soapgateQ! 5 is nearly complete...

In a previous posting we showed a few sample REST calls related to reading views and folders from a Notes database. In the meantime we completed most view, folder and document related operations. The REST call can now also provide the parameters as a single JSON construct:

    "jsonparam": {
        "OPERATION": "dbviewentries",
        "SRVNAME": "flexdomino/flex2domino",
        "DBNAME": "flex/flexdemo.nsf",
        "VIEWNAME": "books.flat"
    }
}


    "jsonparam": {
        "OPERATION": "dbcolumnx",
        "SRVNAME": "flexdomino/flex2domino",
        "DBNAME": "flex/flexdemo.nsf",
        "VIEWNAME": "books.flat",
        "COLFIELDS": [
            "1",
            "2",
            "3",
            "4",
            "5"
        ]
    }
}


    "jsonparam": {
        "OPERATION": "dbreaddocfields",
        "SRVNAME": "flexdomino/flex2domino",
        "DBNAME": "flex/flexdemo.nsf",
        "DOCUNID": "2CC7C6EA3B6DD655C1257A34006AC935",
        "FIELDS": [
            "Book_Summary",
            "Book_Cover",
            "Book_Price",
            "Book_Genre",
            "Book_Year",
            "Book_Author",
            "Book_Title"
        ]
    }
}


    "jsonparam": {
        "OPERATION": "dbsavedocfields",
        "SRVNAME": "flexdomino/flex2domino",
        "DBNAME": "flex/flexdemo.nsf",
        "DOCUNID": "",
        "FORM": "Book",        
        "FIELDS": [
            "Book_Summary",
            "Book_Cover",
            "Book_Price",
            "Book_Genre",
            "Book_Year",
            "Book_Author",
            "Book_Title"
        ],
        "TYPES": [
            1280,
            25,
            768,
            1280,
            1280,
            1280,
            1280
        ],
        "VALUES": [
            "New Summary",
            "(See attached file: warren.JPG)<\/i><\/body><\/html>\n\n\n
warren-479601236.JPG<\/a><\/td><\/tr>\n<\/table>\n",

            99.99,
            "IT",
            "2013",
            "John Smith",
            "soapgate Q! RESTful services"
        ],
        "READFIELDS": [
            "Book_Price",
            "Book_Genre",
            "Book_Year",
            "Book_Author",
            "Book_Title"
        ]
    }

}


Thursday, 3 October 2013

Unbelievable but TRUE...Flash made it on iOS !!!!

...well, of course not directly, but the Photon Browser includes a Flash streaming service that works reasonably fast if you have a good internet connection.


I purchased the browser and Flash just runs fine. I tried Flash videos, simple to 
sophisticated Flash games, I even tried a few business Flash apps I had developed myself and they all run fine. I admit that some of the games where not particular suited for the iPad due to the keyboard control requirements, nevertheless they worked. And the browser has some keyboard options for Flash games that help.

The nice thing is, if you are in a situation where you are with your iPhone/iPad and come across Flash content you really like to see, you now have a solution.

Thursday, 19 September 2013

Although we just released soapgate Q! 4.5, release 5 is already well on the way...

Release 5 is all about RESTful services and JSON.

As a first step we will provide for (almost) all SOAP operations available so far the equivalent RESTful operation. As part of this development we decided to speak JSON only.

In version 5 the implementation will be a wrapper around the existing web services, so the performance gain of REST compared to SOAP will not be as great as it could be. However, release 6 will bring a complete overhaul of the underlying web service code, which will result in all service operations (RESTful and SOAP) to return JSON formatted data.

The following URLs are a sample on how the RESTful interface will work...

  1. dbViewEntries (which is the equivalent to dbView2XML)

    http://domino.flexdomino.net/SOAPGATEQ_5.NSF/REST4ViewsFolders?openagent&OPERATION=dbviewentries&SRVNAME=flexdomino/flex2domino&DBNAME=flex/flexdemo.nsf&VIEWNAME=books.flat
  2. dbViewEntries with additional parameters (first 10 rows and the view entry number for paging)

    http://domino.flexdomino.net/SOAPGATEQ_5.NSF/REST4ViewsFolders?openagent&OPERATION=dbviewentries&SRVNAME=flexdomino/flex2domino&DBNAME=flex/flexdemo.nsf&VIEWNAME=books.flat&rows=10&retVENUM=true
  3. dbViewEntries with additional parameters (next 10 rows and the document UNID)

    http://domino.flexdomino.net/SOAPGATEQ_5.NSF/REST4ViewsFolders?openagent&OPERATION=dbviewentries&SRVNAME=flexdomino/flex2domino&DBNAME=flex/flexdemo.nsf&VIEWNAME=books.flat&rows=10&retVENUM=true&direct=1&startpos=10&retUNID=true
  4. dbColumnX

    http://domino.flexdomino.net/SOAPGATEQ_5.NSF/REST4ViewsFolders?openagent&OPERATION=dbcolumnx&SRVNAME=flexdomino/flex2domino&DBNAME=flex/flexdemo.nsf&VIEWNAME=books.flat&colfields=1~2~3~4~5
  5. dbLookupX

    http://domino.flexdomino.net/SOAPGATEQ_5.NSF/REST4ViewsFolders?openagent&OPERATION=dblookupx&SRVNAME=flexdomino/flex2domino&DBNAME=flex/flexdemo.nsf&VIEWNAME=books.flat&colfields=1~2~3~4~5&keys=entertainment&retUNID=true

Wednesday, 18 September 2013

soapgate Q! 4.5 has been released 2 weeks ago...

and finally I find the time to talk about what has been achieved in this release. The following is an extract of the release document contained in the download...

Fixes first:

A multi-threading bug was reported to us, causing a Domino Server 8.5.3 (64bit Windows) to crash reproducibly when load testing (multiple concurrent calls of) the dbLookupX() and dbColumnX() web service operations. This is apparently an issue of the NotesViewEntry.ColumnValues() method that of course is used in both of the above web service operation. The issue is under investigation by IBM.

We have implemented some changes to work around the usage of the effected Lotus Script class and seemed to have solved it from a soapgate Q! point of view.

Another issue reported and fixed was a subscript out of range error when calling dbFTSearch() where the search criteria would result in no documents. 

Changes & New Features

We have been working on performance on the new version and as part of this we restructured the web services. Instead of a single web service containing all web service operations, we have split and grouped them. We now have following web services:
  • DominoUtilityWebServices
  • DominoAdminPWebServices
  • DominoDocumentsWebServices
  • DominoViewsFoldersWebServices
  • DominoAccessNABWebServices
Please note: some of the operations in the new web services have additional parameters. However, the operations in the old DominoUtilitiesWebservices are not affected. We kept it backwards compatible.

One of the new parameters is the CACHE parameter related to a new feature in Release 4.5, which is data caching. If the parameter is set to true, the computed return value (array) is cached in a Notes document. The caching follows following logik:
  1. If a previous query with the same parameters has been found in the cache, the data stored in the cache document is returned if it has not been expired yet (5 minutes; until release it is a fixed value).
  2. If no cache document for the same query has been found or it has been found, but was expired, a new cache document is created or the found one updated with the data of the current query.
Note: the cache document is only accessible for the authenticated user, who created it. For multi-user scenarios the cache will not work or will have very little impact respectively. The cache feature is useful in a very limited set of scenarios only. Read the release document for more details.

Following operations in DominoDocumentsWebServices have additional parameters:
  • dbSaveDocFields()
  • dbSaveProfileFields()
Both operations support now a two step operation: saving and reading. After completing the save operation, the dbReadDocFields() or dbReadProfileFields() operations are called respectively.

dbLookupX() and dbViewFTSearch() now support paging.

In previous release we used a Java URL request to get the Domino Server to render a Notes Richtext field to HTML. This required some Domino (security) settings in the server document to work, despite not being the best performing method. However, it delivered the so far best results from a fidelity point of view. 

In release 4.5 we managed to use the NotesDocument.ConvertToMime method. This is much faster and touch less from a configuration point of view. We had of course to add some tweaks to support inline images and attachments.  
We added a RESTFul service to the soapgateQ! database to provide some XML formatted information about the database itself and the environment it runs in. By default the service is available to public users. So no authentication is required.

Thursday, 4 April 2013

What is going on with IBM Lotus Greenhouse and Connections

For the last 4-8 weeks the website / service is constantly under maintenance!? How much maintenance (!!!) does this system require? This is pretty annoying!