How To Deploy OpenInsight 10 To Your Customers


How To Deploy OpenInsight 10 To Your Customers

didyouknowoi

Deployment in OpenInsight 10 is significantly different from prior versions.  Because system information is now encrypted on a per-system basis, you must tell the copy of OpenInsight 10 that you are changing the serial number (which is used in the encryption process) ‘before’ you change it.  Failure to do this will result in a system that cannot be accessed (until you put the original serial number back into the system).

The steps to making a deployment as you want are as follows:

  1. Request, and receive, the new authorisation code from Revelation Software with the new serial number and new number of users.
  2. In your “master” OpenInsight 10 system, in SYSPROG, go to the Settings/Users/Policy Setup menu choice in the IDE.
  3. In the policy configuration window, check the box “System Deployment Preparation” and press the OK button.
  4. In the Serial Number Entry dialog that appears, enter (and re-enter to verify) the new serial number you obtained from Revelation Software and press the OK button.
  5. Remove or change as appropriate the REVPARAM file from the cloned copy of OpenInsight before deployment.
  6. Clone your copy of OpenInsight.

On the client system, your steps will be as follows:

  1. Copy in the cloned copy of OpenInsight.
  2. Update the license information with the new authorisation code/serial number/number of users (see below).
  3. Run the clientsetup.exe routine found in your OpenInsight 10 folder.

At this point, your client’s copy of OpenInsight should be ready to run.

To update the license information, you have two choices.  In the cloned copy of OpenInsight, you can start up the system with your ‘original’ authentication (just by starting up OpenInsight normally), and then go to the Settings/Application Settings menu in the IDE, and choosing “License Renewal”.  You will be prompted to enter the new authorisation code, and (after confirming that the entered information is correct) you can save the new authorisation information, shut down OpenInsight, and restart OpenInsight.  You’ll find that the system is now running with the new serial number/number of users.

Alternatively, if you wish to ship out systems without your authorisation file in it, you can use the (non-GUI) routine to create the new authorisation file.  This step can be done on your ‘master’ copy of OpenInsight, before deployment to the client system.

Open up a DOS command prompt, and “cd” to your OpenInsight 10 folder.  Type in the following:

REVAUTH OI <authcode> CLIENT.LIC

Where <authcode> is replaced with the authentication code you received from Revelation Software (which I believe you can put in quotes).  So for example, you will type something like this:

REVAUTH OI "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" CLIENT.LIC

If there are any errors, revauth will respond with “Invalid code entered: <errcode>”. Otherwise, it will create a valid license file named CLIENT.LIC.  Take that CLIENT.LIC file, and copy it into your “cloned” system, RENAMING IT TO REVENGINE.LIC.  This will then become the license/authentication information for the “cloned” copy, and you should then be able to install that copy as outlined above.

Please remember to run the clientsetup.exe after copying in the cloned copy.

First published on www.revelation.com

Modernising the writing, debugging and management of Symbolic Code – Scheduled for OI 10.0.4.


youtubeoi10-e1529069260513.pngI was recently working on a new application and I came across an issue with one of my symbolic dictionary items.  The code was pretty simple, but not being a professional developer, I just could not see what the issue was.

Now, I would usually have dropped in a simple debug statement to see what variables were being set when and with what values.  This would have quickly told me where I had gone wrong in my code.  So, I dropped a Debug statement into my symbolic code, saved the table, ran the form and we dropped into the debugger.

Alas, no variable information is displayed in the debugger for the symbolic code and I was none the wiser for my efforts.  Back to the very simple Symbolic Code editor and I had to work things out for myself.  With only three lines of code, I actually managed to find the error pretty quickly, but just imagine if that was a 100 lines of code, a thousand lines of code or more – yes I have seen this on more than a few occasions.

I was talking to Bob Carten during one of our exploratory and (for me) learning sessions and I mentioned how difficult the symbolic editor is to work in.  He laughed and asked if I’d be interested in a new feature coming in OpenInsight 10.0.4 and which specifically addressed my issue.

In fact, Bob told me excitedly that this new method of writing symbolic code, opens up a whole host of other possibilities.  He touched on them, but I am afraid that he quickly left me scratching my head.  For example, why would you want to have a three part conversion, at least that’s what I think we were talking about?  Anyway, that’s for another time.

For now, you can see this new technique in my latest OI10 Quick Start Video which has just finished uploading to my YouTube channel.

New OpenInsight 10 YouTube Training Video Playlist


YouTubeOI10

Several of you have been chasing me about the OpenInsight 10 (OI10) training videos recently and the need for these was highlighted recently with the news that we have several non-OpenInsight MultiValue developers taking an interest in the tool set.

I have just finished producing the first three videos in the training series and I have published them to my new OI10 YouTube Channel and in a new playlist which will be added to as I get to finish more videos.

These first three videos are fairly light weight:

  1. The first touches on what OpenInsight is, where is came from and there is a quick overview of the OI10 development environment.  The overview is a reproduction of one of my earlier videos but it is included here for people who are new to OpenInsight and it is therefore conveniently placed in the Lesson playlist.
  2. The second video looks at installing the OI10 evaluation software and making some initial configuration changes ready for the training videos to be followed.
  3. The third video looks at how to create your first application and how to add an application level user into the system using the enhanced security.

I have also added a link to my earlier OpenInsight 9.x tutorial video playlist and which is located on a totally separate YouTube channel.

As usual, access to the video series is 100% free and I hope that existing and new OpenInsight developers and users will find the series of videos useful.

If you have not already, please be sure to subscribe to the channel to get notification of when additional videos are uploaded.  I expect this to be fairly frequently initially and then things will slow up as I have to learn more about the massive changes that have been delivered in OpenInsight 10.

As always, please comment below the videos to let me know that they are being watched and whether you find them useful or not.

An Introduction to the Features and Benefits of OpenInsight 10.


didyouknowoi

An Introduction to the Features and Benefits of OpenInsight 10

Thursday, June 7th, 2018
11:00 am PT / 2:00 pm ET / 7:00 pm BST

REGISTER NOW for this complimentary webcast.

As a reader and subscriber of this blog, you will not have failed to notice that in April  2018, Revelation Software proudly announced the long anticipated official release of OpenInsight Development Suite (OI) 10.0.  This ground breaking released has been completely re-engineered for 64-bit and there are a wealth of new features and benefits which make application development in OpenInsight easier and faster than ever.

Nearly every bit of code in the product has been rewritten, from the user’s interface, to the various reporting tools and the speed of the indexing routines.  Revelation Software have listened to their user base and delivered in this release.

If you are a WORKS subscriber, OpenInsight application developer, MultiValue application developer, or simply someone looking for an easier application development tool set – This is a FREE Webinar that you cannot afford to miss.

To just touch the surface, OpenInsight 10 provides the following new and/or improved components:

  • New IDE
    OpenInsight 10 delivers a brand new Integrated Development Environment (IDE) to developers.  It is visually similar to modern application development tools, it is intuitive and yet it is still designed for the MultiValue developer in mind.  Each of the product’s designers, for forms, tables, reports and all others are now contained into a single, cohesive and dynamic work space.
  • Arev64
    The next generation of the Advanced Revelation emulator, utilising the full power and capabilities of modern 64-bit architectures.  Yet again, Revelation have extended the life of their legacy DOS applications.
  • User and Data Security
    With increased concerns about security and privacy, including the current GDPR requirements, a number of enhancements and changes have been made to further   strengthen data security within OpenInsight and to provide system manager (DBA’s) with greater user management controls.
  • Management Console
    The OpenInsight Management Console is a powerful browser-based database management tool for system administrators.  It provides an overview of your system and the ability to send useful and timely messages to workstations.
  • Git Integration
    For small, medium and large development team, managing your code is a must and OpenInsight’s repository based environment is now tightly integrated to the Git   source code management system and thereby giving you access to one of the leading application development management tools for teams.
  • Universal Driver 5.1
  • This latest version of the ever popular Universal Driver supports 64-bit operating systems and Volume Snap Shot (VSS) capability.  Together, these technologies provide the highest levels of reliability and the facility to quickly recover if something should go bad.

In this webinar Mike, Bob and Bryan will provide an overview of these new features and
benefits of OpenInsight 10 and more.

REGISTER NOW for this complimentary webcast.

If you are unable to attend at this time, register today and attend the archived event at your convenience!

Renaming a Table


didyouknowoiSo, I build most of my applications without much planning and preparation.  Yeah, yeah, I know P*** poor planning = P*** poor performance, but I am not a professional and I don’t pretend to be, I just quickly knock systems together for a hobby, as a learning process and also for demo purposes.

In the the following case, I had a table called MP_OPPORTUNITIES, named thus for historical reasons and so that I could easily copy and paste code from another application into this one.  However, the application that I am working on ‘might’ make it into OpenInsight 10, or I might release it on a case by case basis to OI WORKS developers, I’ve not decided yet, and for that reason I’d like to have table names and form names that make some sense.

Anyway, the form would be better named MP_ORDER_ENTRY and therefore the corresponding data table would also benefit from being called MP_ORDERS (following my naming convention).  So, I dropped into the Database Manager, changed the table name and was prompted with the Impact Analysis report.  I noted the items and duly renamed the table.

Problem 1 – The form now opens as read only and I cannot change the data bindings, as I had expected I would :(.

Plan B: Restore from backup and this time I’ll clear out all of the data bindings in the form, save it and then rename the table.

Problem 2 – OI will now not save the form because I appear to have a rogue data binding and OI cannot find column ” “.  I checked all of the data bindings and even removed a couple of edit tables, alas no joy!!

A quick call to support and once again the guys put me on the right track.
It is always easier to do things the right way, instead of blindly ploughing into self made problems.

So, if you have a badly named table, this is the best way that ‘I’ have found to put your system right:

  • Design the database and system properly from the outset ;-).

    This should be a given,  but if you are like me, you’ll need to do the following:

  1. Firstly take a good backup of your system, right before you try this and not the day before, like me (will I ever learn?).
  2. Open the Database Manager, select the table that you wish to rename and rename it to your new table name.

    renametable

  3. When you rename the table, OpenInsight will conveniently run an Impact Analysis check on the system and report entities that you might (will) need to look at following the renaming of the table.  OpenInsight does not (at this stage in the OpenInsight 10 development) rename all of the values throughout the system for you.  That’s currently a manual process.

    impactanalysis
    In my case, this means looking at two forms.  For a system that might be a little older, it gets a little more difficult and you might have popups, reports and other entities to consider.  It might even be worth sticking with your badly named table.  After all, the only time that end users are likely to see the table name is if you have exposed any report writing tools to your users.

    I should also point out that, I have previously chosen bad table names and I have renamed them before creating any forms, popups, reports, etc. against the data tables.  Those rename perfectly and with no extra worries or work involved.

  4.  So, we now have our renamed table and list of problem forms.  Lets sort those out by opening a record (Ctrl+R, or Open Record), selecting SYSREPOSWINS as the Table Name and locating our required Record/s.  In my case it is the form called SYPHERSPOS**MP_OPPORTUNITY_ENTRY (as shown below).

    openrecord

  5. This will open up the record in the OpenInsight Integrated Development Environment (IDE) using the appropriate tool, the System Editor ++ in this instance.  For the uninitiated (like me), this is a daunting screen and one in which (I think) someone with only a little knowledge can do a lot of damage – so be careful and get advice if you don’t know what you are doing.

    openrecord1

  6. Thankfully, OpenInsight’s ‘Find and Replace’ feature comes to the rescue.  From the Search menu, we select Replace and we are prompted with the dialogue window shown below.  Simply enter the value that we want to search for in the ‘Find what’ prompt (our old table name in this instance) and the new new table name in the ‘Replace with’ prompt.  All very straight forward.

    findandreplace2

    OpenInsight will then trawl through the record and let you know how many instances of the value have been found.  Click Replace All (as above) and the System Editor makes the changes and reports the replacements accordingly.

  7. So, we now have a renamed table and a form with an old name and new data bindings.  We can now launch and run the form and it’ll work just fine, pulling data from the newly named table.  However, one last step is needed to put our system right.

    We open the MP_OPPORTUNITY_ENTRY form in the Forms Designer and simply select ‘Save As’ from the File menu and save the form with the new name – MP_ORDERS.

    renameform

    This will leave you with both our new MP_ORDERS form and the old MP_OPPORTUNITIES form.  Open the old form and select Delete from the File menu and you are done.

Of course, all of this hard work could have been avoided if I’d spent a few minutes properly planning my system.  However, it is nice to know that OpenInsight and the guys at Revelation Software still have my back and if I get myself into, they can help me to get out of that mess again.

Note to self – It really is time to get some proper training 😉

Thank you to Andrew and Bob for helping through this.

 

 

 

Index Rebuilding in OI10


dbmindexrebuild
The Database Manager as seen in OpenInsight 10

This is another of my ‘reminder to self’ blog postings but something that one or two of you might find useful.

In OpenInsight 10 you can view the Database Manager panel and simply select a data table, right mouse click to open the context menu and from there you can do a whole host of things, including rebuilding the index for that table (see the image to the left).

That is great, but what if you want to rebuild all of your indexes.  It’s going to be a little cumbersome and time consuming selecting each table, then right mouse clicking, then selecting rebuild index, then waiting for it to rebuild and then repeat, repeat, repeat …

Following a quick conversation with Bob, I had the solution.  For the moment, the option to rebuild all indexes in an application from a menu is not available.  A convenient menu option might well come in an update, but for now it is as easy as launching the System Monitor (but you’ll have that running already in development mode) and typing ‘update_index””,””,1’ and hitting return to execute the command (as shown below).

indexrebuild
The System Monitor, running under OpenInsight 10.

You will get a message to let you know how many tables you will be rebuilding the indexes for and a reminder that this “could take a long time”.  Click Yes to continue and OpenInsight will go away and index all of your tables.  There is no progress bar at the moment, so watch the OpenInsight 10 Main IDE’s status line for messages about the indexing.  You’ll see OpenInsight run through your tables and (assuming all goes well, which it will) you will be presented with a “Processing Completed” note in the status line.  Job done.

Thank you to Bob Carten for this tip.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Controlling TCL


tcl

I have recently been asked if OpenInsight 10 can be enhanced to enable developers to filter TCL commands, or in other words, to only show TCL commands that the developer wishes to expose to their end users.  For example, it is often a requirement or wish, for DELETE to be removed or screened from the users because it can cause issues.  However, it would be useful if LIST could be exposed so that knowledgeable end users could run list commands for quickly produced ad-hoc reports.

During one of my catch-up sessions with Mike, I put this to him and found that this is actually something that was introduced back in 2009.  Most likely following a customer request at tone the RUG meetings that Mike holds from time to time.

As Mike has detailed for me, configuring the system to filter TCL commands it pretty straight forward:

  1. As an OpenInsight developer, you initially need to make a record in the SYSENV file.  This record should have a key with one of the options noted below:
    • TCLCMDS*APPNAME*USERNAME
    • TCLCMDS**USERNAME
    • TCLCMDS*APPNAME
    • TCLCMDS
  2. In this record, you should enter a command that you want your users to have access to and be able to use from TCL (as shown below).  The user will then be limited to using only those those commands by typing the commands into the TCL as normal.  The TCL Assistant will also then only show those commands that are available to the users.
TCL-SYSENV
Configuration record as seen in OpenInsight 10

Now, with the options set as above, when the TCL Assistant button is pressed the user will be given a filtered list of available commands (as shown below).

tcl
Filtered TCL Assistant as shown in OpenInsight 10

If the user tries to be clever and force a command that has been filtered out of the available options (for example, DELETE or COPY_ROW), OpenInsight will return a ‘command not supported’ message and the command will not run.

This now enables developers to safely expose TCL with the controls that ensure that their systems are safe and that end users cannot run a command that is not unsupported by the developer in their application.

I no longer maintain an OpenInsight version 9 system on my machine for testing this (I’m fully OI10) and although the screen shots within this posting are taken from an OpenInsight 10 system, the above should be possible in most of the OpenInsight 9.x versions released since 2009.

Finally, thank you to Mike for helping me to put this blog posting together.

An important date for your diary.


Bob at the 2015 Conference.

Mark your calendars! On Thursday, June 7, 2018 11 am PT / 2 pm ET Revelation Software in conjunction with DBTA will be hosting a webinar on “An Introduction to the Features and Benefits of OpenInsight 10”.

Click HERE to Register for this event.

In April, 2018, Revelation Software proudly announced the official release of OpenInsight Development Suite (OI) 10.0. OI 10 has been re-engineered for 64-bit in this new release. We have rewritten nearly every bit of code in the product, from the interface with the user, to the reporting tools, and the speed of the indexing routines. OI 10 provides the following new and/or improved components:

  • New IDE – OpenInsight 10 includes a brand new IDE, visually similar to modern application development tools, yet still designed for the MultiValue developer. Each of the product’s designers, for forms, tables, reports and all others are now contained into a single, cohesive workspace.
  • Arev64 – The next generation of our Advanced Revelation emulator, utilizing the full power and capabilities of modern 64-bit architectures.
  • User and Data Security – With increased concerns about security and privacy, including upcoming GDPR requirements, a number of enhancements and changes have been made to strengthen data security.
  • Management Console – The OpenInsight Management Console is a browser-based database management tool for system administrators.
  • Git Integration – OpenInsight’s repository based environment is integrated to the Git source code management system.
  • Universal Driver 5.1 – 64-bit and VSS capability.

In this webinar Mike, Bob and Bryan will provide an overview of the new features and benefits of OpenInsight 10.

Pop-ups in OI10


youtube_channel

Sprezzatura recently wrote a blog posting following the release of OpenInsight 10 (OI10) and in that posting was the new way of using a standard OpenInsight pop-up to launch a selected data record.

I’ve had a few people asking for some OI10 videos and someone asked for the new pop-up method to be recorded specifically.  That video is now available on my YopuTube channel at the link below.

Please remember that I am learning fast at the moment, but hopefully the video will help you to use the same feature in your OI10 applications.

Thank you to Andrew McAuley for bringing this feature to our notice and for documenting on the Sprezzatura blog.

Snakes and Ladders


pythonlogo

Over the last year or so, I’ve heard more and more about Python and how development tools need to support the language.  I’m told that students are leaving college with Python experience and it is therefore a great way to bring new, engaging and dynamic ideas into the development community and the MultiValue market could sure do with a dose of that right now.  In addition, some of the MultiValue manufacturers are riding the current wave and actively promoting their support for Python.

Whilst there have been questions from the MultiValue community about who might be using Python, I’m yet to come across many people who have actually taken the plunge and it’s been a largely mute topic within our own Revelation community in the EMEA region – until this week though.

It is no secret that many OpenInsight developers are remaining in position and not moving around too much.  Coupled with the fact that the MultiValue market place is getting older and developers are retiring (it is an inevitable fact), and we find that we need to resource projects from outside of the community.  Just recently Andrew, from Sprezzatura, has completed another series of tutorial workshops for another RevUK client.  Like the previous workshop, this one included a number of highly skilled professional developers from India.  The first OpenInsight VAR was extending their internal team using their own developers in India, this time it was a pure outsourcing deal to expand the development and support resources.

Enter the snake (Python).  Yet another OpenInsight development house looked outside of the community to expand their team and the chosen candidate has been getting to grips with the toolset ahead of starting their position later this week.  As part his first steps with OpenInsight, he asked about support for other database technologies and this week Python finally came up.

It was only to be a matter of time before someone asked me about
OpenInsight and python.

A quick email to support and Bob Carten got back to me with the usual response that I’ve become used to from the OI development team, “Of course we can do that”.

The specific request was whether Python scripts could be easily and reliably called from within OpenInsight using the Quick Event tied to a button.  The pretty straight forward and basic request resulted in a detailed reply from Bob:

“Yes, you can call Python scripts from OpenInsight.  The simplest way is to use the utility ‘RUNWIN’ service:

    cmd = 'py ': quote(filename)
    call Utility("RUNWIN", cmd, 0)

The attached py_shell (Bob included this as a .txt document in his reply email to me) is an example program which would let you pass in the name of a python file or just the body of a python script.  At the end it just calls Utility “RUNWIN”, the rest is window dressing.

However, that window dressing demonstrates some common techniques we use for writing object-ish programs in OpenInsight.  The typical use case for these techniques is creating commuter modules for OpenInsight forms.  We use the term “commuter module” to describe a program which handles all the events for a window.  We have a standard quick event which will call your commuter module.  For a window named “MYWINDOW”, the commuter module is a Basic+ program named MYWINDOW or MYWINDOW_EVENTS, which follows some conventions.  The attached RTI_LH_STATISTICS_EVENTS program (again attached in Bob’s email to me) is an example of a commuter module.  You can cannibalize it for your own modules.  The relevant parts are from line 1 to 81, which is where it implements the “interface” for commuter modules.

See https://www.revelation.com/o4wtrs/KB_Articles/KB1040.htm “

Please drop me an email if you would like a copy of the py_shell.txt and rti_lh_statistics_events.txt files that Bob included in his email.

So that’s the snake, what about the ladder?

OpenInsight 10 is giving developers a real step up the ladder when it comes to Rapid Application Development.  So much is done for you and I find myself simply setting a property in the Property Panel, rather than writing, debugging and maintaining lines of code.  Better still, I’m then using optimised professionally written code and not code that I have cobbled together – well I’m no professional developer.

Anyway, I’m told that support for third party code gets even better in OpenInsight 10 and Bob is using the new technique a lot as part of RTI_GIT, which is one of OpenInsight’s native support programs for Git.

More on that in another posting, coming soon.