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
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.
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?
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.
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!
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.