Elegant debug statements


youtubeoi10.pngI recently uploaded an OpenInsight 10 lesson and at the beginning of the video I talk about a rogue debug statement that I had left in my code in the previous video (on purpose you understand).

Mark Marsh (Professional OpenInsight Application Developer) emailed me with an extremely useful tip to using debug statements in code and which will avoid the issue and embarrassment of leaving a rogue debug statement in your code.  It is also great for those of you with OpenInsight development teams because the trick is user specific.

I’d like to offer Mark a huge thank you for sharing this invaluable tip with me and for enabling me to then share it with you.

You can see the video here and the tip is in the video comments – it’s well worth a look.

Advertisements

Increased OpenInsight 10 WORKS User Count


didyouknowoiThose of you that have been watching my initial OpenInsight 10 videos, will not have failed to notice the OI Management Console and the tools that this powerful feature brings to all OpenInsight 10 (OI10) Systems Administrators.

Not only does it expose some really useful information and statistics, as well as much easier remote configuration, but it makes administering a live system so much easier through the brand new Command Channel.  The guys at RevUS touched on this in their recent Introduction to the Features and Benefits of OpenInsight 10 Webinar and I show working it in my video which provides a Quick Overview of OI10.  Jump to around 12 minutes and you’ll see the Management Console running as an O4W application in the built in OI10 browser on screen.

Anyway, interest in the Management Console was high following the Webinar and a thread appeared on www.revelation.com with regards to some people having trouble running the Management Console and needing a 10 user O4W license to run it.  Whilst running it online is super useful and convenient because System Administrators can access the Management Console from anywhere in the world and at any time, some people might just want to run it locally from their desktop using their OI WORKS license.  This is how I ran the system in the videos.

Even in this local based setup, O4W and the Management Console consumes an additional license, or two – it’s the nature of O4W.  Now, I’ve sat in many a presentation for software where the vendor says “Hey, we have this amazing module, it’ll change your life and that of your users.  Ohh, but it’s going to cost you …”.  Heads quickly fall like a child being offered a big bag of colourful sweets, only for the parent demanding a week’s worth of chores to be completed before access is granted to the bag of sweets.

Revelation Software have once again shown its ongoing commitment
to its OI WORKS community.

It looked like Revelation Software were heading down this same route, but, true to form, Bill told me about an OI WORKS discussion forum posting from Bob Catalano over the weekend.  In the posting, Bob confirms that the Management Console will not function with the usual 2 user OI WORKS license and because of this a decision has been made to increase all existing 2 user WORKS licenses to a 3 user license.

This is brilliant news, it shows Revelations commitment to its highly valued OpenInsight WORKS community of professional application developers and it provides yet more value from the, already, invaluable WORKS subscription service/license.  However, those of you opting for the cheaper NUL based license for your developers will need to look at increasing your NUL license accordingly and in the normal license increase manner.

If you are an active WORKS subscriber looking to work with OI10, please log into WORKS and head over to the WORKS forum for further details on claiming your new OI10 authorisation key.

If you are an expired OI WORKS subscriber or wish to get onto OI WORKS to gain access to OpenInsight 10, please contact your local Revelation office and one of us will be more than pleased to discuss your needs.

 

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.