ABL2DB - Tracking Shared Things

Posted by Thomas Mercer-Hursh on 04-May-2015 17:05

I have decided to expand my initial modification of ABL2DB for tracking shared variables to track anything shared, figuring that anything shared is a likely target for refactoring and coupling between compile units.  I have a tentative schema for this, for which I was going to attach a PDF, but I guess no attachments.  Perhaps I will paste it at the end.

Issues

  • A couple of things like Browse and Menu have potentially complex description or breakdowns, whose value seems dubious to me as a databased item.  I could put in in as text or just leave it out.
  • A couple of things like Frame and Stream have no attributes and so don't really need the child files I have proposed for other things.
  • I have proposed a sub, sub table to record temp and work table fields so that one can flag which are assigned to and from in any given compile unit, but I have not proposed a subtable for the indices since these seem dubious in the context.

So, the question is, how much of this seems worth doing and is there any more or less that you would like?

Here's the proposed schema:

SharedObject

chID

chCUID => CompileUnit

chName

lgIsNew

lgIsGlobal

chObjectType

 

SharedBrowse

chID

chObjectID => SharedObject

chQuery

chBrowseDefinition (complex)

 

SharedBuffer

chID

chObjectID => SharedObject

chRecordName1

lgIsDBTable

 

SharedFrame

chID

chObjectID => SharedObject

(does not seem to have any attributes)

 

SharedMenu

chID

chObjectID à SharedObject

chMenuDescription (complex)

 

SharedQuery

chID

chObjectID => SharedObject

chRecordName1

 

SharedStream

chID

chObjectID => SharedObject

(does not seem to have any attributes)

 

SharedTempTable2

chID

chObjectID à SharedObject

 

SharedTempTableField

chID

chSharedTempTableID => SharedTempTable

chName

chDataType

lgIsAssignedTo

lgIsAssignedFrom

 

SharedVariable

chID

chObjectID => SharedObject

chDataType

lgIsAssignedTo

lgIsAssignedFrom

 

SharedWorkTable2

chID

chObjectID => SharedObject

 

SharedWorkTableField

chID

chSharedWorkTableID => SharedWorkTable

chName

chDataType

lgIsAssignedTo

lgIsAssignedFrom

 

1 Could be text field, separate fields for DB and Field or GUID pointing to field.

 

2 Structure is suggested for the fields, but not for the indices.

All Replies

Posted by Evan Bleicher on 07-May-2015 08:54

This thread is requesting feedback from the Community on a developer built tool.  I am curious as to whether or not OpenEdge should provide a separate Community for these types of discussions?  Are community members who are interested in these valuable tools looking in the Development Forum for this type of information?  

Posted by Tim Kuehn on 07-May-2015 08:58

I'd be interested - I'm planning on releasing code to go with my OO(ABL) talk at PCA, and if it takes, then building on will be an ongoing discussion.

Posted by James Palmer on 07-May-2015 09:11

Isn't that what the Code Share forum is for?

community.progress.com/.../default.aspx

Unfortunately it's not widely followed so could do with some enhancements!

Posted by Thomas Mercer-Hursh on 07-May-2015 09:24

The basic problem is that there is little tool development and so little discussion.   Putting it in its own forum or on Code Share would probably lead to lots of people not seeing it.

FWIW, I am in the process of implementing this.  The dictionary is not quite what I posted originally, but has at least that much coverage and the code should be done any day now.

This thread is closed