One Evening = One Application


I was recently asked by someone looking at using OpenInsight for the first time, “How quickly can I really build a small system in OpenInsight 10?”.  Naturally, being a salesperson, the answer was “Very quickly and you’ll be surprised just how quickly.”

This evening I had the opportunity to put this to the test.

As many of my readers will know, I am some months into building a large system that I hope to take to market very soon.  This system uses authorisation keys to set (and update) the user count and the expiry date in the system.  It is nice feature in the application, but it is not overly clever.  However, I find myself having to manually create the authorisation keys from time to time and this was becoming tedious.

I therefore decided to build myself a small application in OpenInsight 10 to help me to generate the authorisation keys and then to keep a history of who has had keys, when, with how many users, etc.

Whilst I did not time this mini- project, all of the following has been achieved by a junior application developer (me) in one evening.  That includes defining the application, building the three data tables, the four forms and all of the popups, messages, etc.  It also involved writing two commuter modules to support the Customers and Key Generation forms.

As is usual for my systems, the application operates from a main MDI Frame window, as shown below.  Granted, I need to tidy a few things up (like the menus), but remember this is an example of what can be achieved in a few short hours and by a junior.

The MDI Frame is used to display all of the application’s windows and these are launched from the three buttons on the toolbar.  The fourth button being the Exit button, which closes down everything.  All of these buttons are operated by CLICK quick-events.  i.e. I did not have to write any code to get anything working in this form.  In fact, it does not even have a commuter module defined for the window.

You could say that the MDI Frame window is a NO CODE form, but that is a private joke which anyone that follows the Google Pick discussion forum will understand ;).

KeyGen-1

The next form is the Customers form, which enables me to capture some basic contact information for my customers.  At the bottom of the screen is a table which uses some symbolic fields, a relational data table and a relational index to display all of the authorisation key records that are linked to the Customer.  This enables me to see when  keys have been generated, the user count and the expiry date for that entry.  It will build into a history of the license over time.

Again, I needed to write very little code to operate this form.  The code is pretty much limited to a Changed and a Clear event to set the toolbar buttons from disabled to enabled (and vice versa), Click events for the Cut, Copy and Paste buttons and a Click event for the Email Address label.  So very little code and what code there is in the commuter module is very basic code.  To be honest, most of the code was pulled in from my commuter module template, which already had the code for the Cut, Copy and Paste buttons and to enable and disable the Save, Clear and Delete buttons accordingly.

KeyGen-3

The Customer ID label will, when clicked, display a standard record lookup window and when the Email Address label is clicked the user’s email client will launch and the system drops in the email address automatically.  Otherwise the buttons all drive the system and the combo boxes are all populated from the System Codes data table.

KeyGen-4The System Codes window is pretty straight forward with (not including the toolbar) only two key controls which use just three dictionary items (fields) in the database.

“Again, this is a no code form where I do not even have a commuter module defined.”

The combo box is populated using the Auto-fill feature in OpenInsight, which means that the pick list will always be up to date as new code categories are added.

The user then simply adds a new code category (COUNTIES in the example) and then in the table, they enter a MultiValued list of code and descriptions.   As soon as the record is saved, those new descriptions are available to the users in the Customer’s data entry form.

KeyGen-2

The last and most complex window is the Authorisation Key Generator window.

The form itself is not at all complicated and it was very easy to build, but the commuter module behind the form took some time for me to build.

The form uses my usual quick event to launch the Popup (record lookup window) and this in turn reads (displays) the record in the form.  A similar popup is used to select the Licensee’s record ID and to write that to the appropriate edit line.  When the Licensee’s ID is chosen the Licensee’s name is displayed.  This is a calculated field (a symbolic) which brings together the customer’s First Name and Last Name from the Customer’s data table.

KGImage-5The system has been designed to cater for 1 to 9,999 users.  A message will display if the user tries to enter 10,000 or more users.  Again, the message (as shown) is created without any code and it is called using only a few very short lines of code.  The code simply checks for the number of users and then it makes a call to display the saved message if the user count is over 9,999. 

The calendar button launches a standard OpenInsight 10 calendar, from which a date can be selected and this is written to the Expiry Date edit line.  The buttons on the toolbar are all Quick Events.

Once the User Count and Expiry Date fields have been completed, the Key button on the toolbar can be clicked and this will format the authorisation key using certain random  characters and formatted with hyphens.  The authorisation key is truly random, with a unique key being generated every time the key button is pressed, even when the user count and expiry date does not change.

Anyway, it is now getting late and I’ll leave the following items for tomorrow evening:

  1. I need to configure all of the menus.  The system is run by the buttons at the moment.
  2. I need to make sure that an expiry date is a date in the future.

It will then be completed and ready for use.  Not too much left to do then, a nice little authorisation key generation application done and a good evenings work.

All thanks to OpenInsight 10 and how easy the tool set makes it
to build systems like this 🙂

Advertisements

Sorry


PropertyGrid2Someone asked me a couple of days ago, why I have been so quiet on the blog, etc.  The truth is, that I have been heads down for the last few months building a new system for a client.

This system is taking all of my time (including a lot of my personal time) and finding time to update the blog has come second place.  No excuses, that is just the way that it is.  So mixed with OI development, photography gigs and sleep, there has been little time for anything else.

That said the project is coming along well and I continue to be amazed at what a junior application developer can achieve with OpenInsight 10.  Yes, I continue to make mistakes but I continue along the learning curve and things are definitely getting easier and quicker.

A fun week playing with the Internal 10.0.7 pre-release.

Just this week, I was given access to the internal 10.0.7 pre-release.  The subsequent testing had me find a small bug and yes, I did do something unexpected, and yes, I am that monkey and if you give me a nice shiny new gun, well, I ‘will’ shoot myself.  Anyway, this has given me with a few minutes to take a step back and catch up with the blog and other things.

However, despite the bug (which has already been diagnosed and fixed) 10.0.7 looks to be another big step forward and it is definitely getting to the point (in my opinion, it’s there now) where existing OpenInsight , ARev and MV developers more widely should be taking a close look at using OI10 modernise their development and their systems.

OpenInsight 9.4 “Roll Up” Patch v5.1 released


OpenInsight 9.4

Revelation have recently released a brand new roll up patch for OpenInsight, taking the series to version 9.4.4.

This patch includes additional fixes to RTP16 (xlate), all the patches and fixes from the previous “Roll Up” patches, as well as:

  • An updated datatbl.dll and oinsight.exe to fix changes in how Windows displays forms.
  • A fixed DICT_MFS_BUILD to ensure that associated group names are included when a dictionary’s %FIELDS% record is rebuilt.
  • A fixed RTP16 (XLATE) to restore previous functionality when explicitly passing a null in parameter 5.
  • An enhancement to OIPI (VSPRINTER1) to improve performance.

After installing this patch, your system will report that it is running version 9.4.4.

This zip file contains an updated RevelationDotNetSetup.msi, RevelationDotNetSetup.exe, revjapi.dll, OESocketServer.jar, OInsight.exe and an OpenInsight RDK, for use in OpenInsight 9.4.0 systems.

This patch replaces the original “Roll Up” Patch v1 released on March 3, 2016, the second “Roll Up” Patch v2 released on March 8, 2016, the “Roll Up” Patch v3 released on June 13, 2017, and the “Roll Up” Patch v4 (and v4_1) released on January 5, 2018, and includes all the previous fixes for OpenInsight 9.4.

Works Members can download this patch from the Works Downloads section of our web site.

New Video Uploaded


youtube_channel

Hopefully most of my blog readers will know about my YouTube channel for OpenInsight videos, but you might not necessarily be aware that I have created a brand new channel for my OpenInsight 10 related videos.  This new channel has been created to highlight the difference between the old OI9 based tutorials and the new ones that will be coming soon for OI10.

Anyway, today sees the next video go live.  This one is a little more about self indulgence than anything but it does show what you can achieve in OI10 in a very short amount of time.

As many of you will know, I have been deep into GDPR compliance.  Whilst RevUK is fully DPA (Data Protection Act) compliant, the forthcoming GDPR requirements mean some procedures have been tightened up and accountability measures introduced.  This has resulted in a brand new GDPR compliance document and, from that, I decided to further beta test the OI10 beta 7 release by building a new GDPR module into our bespoke contact manager.

This new video takes a quick look at what I built over a couple of evenings and it shows just how quickly OpenInsight can help you to enhance (or build) your applications to meet ever changing business requirements.

10 out of 10 for any of you that catch the spelling mistake and tool tip error ;).  They have been corrected in the software but I did not have the time to reproduce the video.

If you would like to know more about OpenInsight, O4W or how you can get a bespoke software solution to support your business, please drop me an email and I’ll be pleased to get back to you.

In the meantime, please subscribe to my new YouTube channel to ensure that you see the new OI10 Tutorial video series as I get them produced and uploaded over the next few weeks following the final OpenInsight 10 release.

OI10 Conversion Process and New Examples Application


OpenInsight 10 LogoOK, I lie ever so slightly, the new Examples application is the old examples application but with a slightly enhanced user interface but it certainly feels new.

I have now converted a few applications from OpenInsight 9.x to OpenInsight version 10 and I’m always pleased with the results.  It started with me cutting my teeth on the EXAMPLES application and then I moved on to my larger RevSoft UK Contact Manager.  The later benefited from a couple of weeks of evenings working on the user interface before I deleted the old 9.4.2 version and moved 100% OI10.

So, a few people have asked me to produce a video of the conversion process and I’m pleased to announce that both that video and a look at an early version of the new examples application is now online and copied below.

Please note that this is a relatively new YouTube Channel.  I decided to drop the old one with the old 9.x videos in order to provide a clean break between the two and avoid confusion.  For this reason, please subscribe to the new YouTube channel for periodic updates as I produce more OI10 videos.

 

My App’s now full of Bugs :)


BugSo, I am a week into my OpenInsight 9.4 to OpenInsight 10 (OI10) conversion which is basically just playing around with the interface and I really like how things are going.  I have a brand new colour scheme and ripping out loads of code.  I was keeping a tally, but I’m about 2/3rd of the was through and nearly 2,000 lines of cobbled together code have been deleted in favour of setting properties and thereby using professionally written code to run my application.

Last night, I managed to introduce a long overdue and much longed for Progress Bar which runs whilst my data grids are loading during system startup.  A trivial task for most of my blog readers, but quite a result for me all the same.  It’s nice when you manage to achieve something after a struggle and this is one such case.  It does put a smile on my face every time I launch my OpenInsight 10 application, so it’s well worth it in my mind.

Progress Bar

Using graphics in OpenInsight to build some really nice interfaces is child’s play now.  the key is having a good graphics library to pull from and I’m extremely lucky to have access to Icon Experience‘s graphics library.  With nearly 3,000 images in the library that I’m using, and they have several libraries and numerous sizes of each image in each library, they have a graphic (.png and .ico) that just about meets any requirement when building an application.

Anyway, I’m pleased to now be 100% OpenInsight 10.  Since rebuilding my computer, I have found no reason to install OpenInsight 9.4 and I’m now both developing in OI10 and using my Revelation Contact Manager on a daily basis running under OI10.

Great job guys.

I cannot produce any videos of my progress thus far because I’m working with live sensitive data.  However, once this project is done, I will look to put a video or two together using the old Clinic application that I used for the OI9.x tutorials.  Watch my blog for more information and video links as I begin that project.

If you are an OpenInsight WORKS subscriber, you can get the OpenInsight 10 Beta 4 software from the WORKS area on www.revelation.com.   If you are not a WORKS member, please drop me a line and I’ll be pleased to arrange a time to talk a little more about OpenInsight 10 and the supporting WORKS subscription service that underwrites the development suite.

I’m often asked who is a typical OpenInsight developer and . . .


Mike at last years conference.
Mike at last years conference.

I’m often asked who is a typical OpenInsight developer and why?  I pause for a moment, take a look at the current user base and this usually has me thinking back many years and to ‘why, those people chose to use Revelation Software’s products in the first place’.  That tends to be the more interesting question to answer.

When I look back, I see countless Value Added Reseller (VAR’s) and end users with growing systems and small teams of developers and in most cases one key individual.  That person may not have started out as a software developer, in fact, they are very frequently not a trained software professional at all and they usually come from a totally different background.

I could use numerous individuals as an example, people that started out in a profession, became frustrated with the software solutions available to them and who went on to build their own solution and then to begin offering their solutions to the benefit of hundreds of others (friends and customers).  I don’t paint myself in the same light, but I will use myself as an example.

When I joined Revelation as an ‘Internal Sales Engineer’ (some 15 years ago), I was given Lotus Notes to use.  It came to the end of its useful life within our business and we moved to Act, that was not up to the task and we tried Goldmine, that was too difficult to get data out of and we moved to Maximizer.  I then began to learn about developing the Maximizer interface to give me the data views (datasets) that I needed to support my job role.  All was good for a time and then the authors decided to go the MS SQL Server route and I found myself facing a five fold price increase with decreased functionality – actually, it got so bad, I found myself looking for another solution.

Enter a little plug in for Outlook and once again more frustration.  All seemed to be pretty good initially and then it crashed Outlook, resulting in a restore and time setting everything back up again and lost work hours.  A second occurrence, and then a third.  I used to fly (a Cessna out of RAF Henlow as a work bonus) and I was reliably taught that when three things go wrong, you don’t fly.  I live by that rule even now, so three strikes and the Outlook plug-in was out.

So what next???

Unsurprisingly, the solution was staring me in the face.  It often is in life.  You just need to open your ideas to something new.  I had access to OpenInsight, I had access to some of the best OpenInsight developers on the planet and I had begun to dabble in my own product demonstrations, building simple databases, forms, reports and the like.

So, like many people before me, I was that individual with a need.  A need for a software solution that worked with me and which supported my job role.  I knew my job, I knew what I needed to support that job role and I just needed to get on and build my own system.  And, that is just what I did.  Over the next couple of weeks, with the help of my colleagues (usually Aaron fixing things up in the car whilst I dropped him home from London to Northampton, or Mike on one of our long UK road trips between RUGs and client meetings) I wrote a basic contact manger for RevUK and I have gone on to add to that as it has grown and evolved with our business – much like just about every other Revelation based system that has been running for any length of time.

So why the long and protracted story?

Well, I guess that I’m finally proud of what I have built.  In fact, I knocked up a comprehensive system to manage our archery club (Andrew helped me to build a wicked tournament module that saved a lot of time collating results for multi-round tournaments) and again to manage a small photography business I dabbled with for a time – I wrote that one totally on my own.

But, the real reason is to outline Revelation’s traditional application developer.  Yes we have developers join us and our clients teams who have studied computer science, obtained degrees and can work in one of many different programming languages.  But, this posting is about the individual entrepreneurs, business leaders and department staff members that have the vision and who have used ARev and/or OpenInsight to help them to realise that vision and build that perfect application.

It is those people that take OpenInsight, build solutions and enhance their working lives and who then often go on to enhance the working lives of their colleagues and then their clients.

Furthermore, it is OpenInsight that sits in the middle ground between the lower end fully integrated database tools that are designed for the individual and which are not really scalable and which have their limitations, and the professional software development suites that need degrees and expensive training to master them.  These large systems often need knowledge about; third normal form, inner and outer joins, record locking, working with datasets, how to write and debug code and how to bring several disparate technologies together.  No small undertaking for an individual in an organisation with little time on their hands, but who needs a solution quickly to support their work function.

OpenInsight sits right between these two categories of products.  It’s is fully integrated with everything you need in one toolset – desktop and web development tools, database, user interface, reporting, data warehousing tools and more.  Plus, it is scalable and we have systems supporting hundreds of users over LAN, WAN and Web (mobile) environments.

Better still, with the upcoming release of OpenInsight 10, Revelation are once again providing application development tools that anyone can take to build solutions.  It is amazing how much can be done without having to write code, and how you can then take those systems and easily deploy them to end users, and then how you can further enhance those systems WITHOUT the need to re-engineer your system all of the time.

Interestingly, the team have done so much to enhance the application development process in OI10, I now find myself deleting thousands of lines of cobbled together code in my contact management system, in favour of simply setting a property or two in the designers property panel.  For me, the benefit is setting one option or typing in a value (into a property) to use professionally written code and a better, more optimised and robust solution.

Yeah Mike, I’m giving OpenInsight 10 a double thumbs up as well.

OpenInsight WORKS subscribers can get their hands on the OI10 Beta right now, just log into OI WORKS and locate the OI10 Beta Gateway on the main WORKS page on www.revelation.com.  If you are not a WORKS subscriber, please get in touch and I’ll be pleased to see how we can help you to get into OpenInsight.