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.

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

  1. John Bouley

    Hi Martyn, I used a similar technique on my last project. The function was defined as a commuter module for the symbolics and could be used on any table as there was similar logic being used across multiple tables. What I like about Bob’s technique is the use of the Function command where you don’t have to declare your code as a function and the get_current_symbolic is particularly useful. Thanks for sharing.

  2. I have implemented this in my OI10 (V3), passing the SymbolicName and Table as parameters.
    Having ALL the symbolics code in one place is a great idea for many reasons other than debug.

    One thing I did notice was that any symbolic dependencies were not being updated in an edit table.

    I put this down to there being no {} field names in the symbolic code, so it does not know any dependancies (I could be wrong and I have an error somewhere)

    I have got around this by doing a recalc of all the columns in all the edittables on the form, triggered by the CELLCHANGED event.

    I found I also had to play around with @record and ATRECORD to get the updated record data at the start of the symboilic code routine. [I made the routine global (i.e. for all tables – use of the Table param)]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s