I.T. Discussion Community!
-Collapse +Expand
Paradox
Search Paradox Group:

Advanced
-Collapse +Expand Paradox To/From
To/FromCODEGuides
-Collapse +Expand Paradox Store
PRESTWOODSTORE

Prestwood eMagazine

September Edition
Subscribe now! It's Free!
Enter your email:

   ► MB LobbyCorel Paradox / ObjectPAL Coding BoardObjectPAL Topic   Print This     

LSL Dependency Problem - Pdox7 to Pdox11 Upgrade

LSL Dependency Problem - Pdox7 to Pdox11 Upgrade in ObjectPAL topic (part of our Corel Paradox / ObjectPAL Coding group).

Quick Search: Dependency   Problem   Upgrade   LSL Dependency   LSL Dependency Problem   Pdox7 Pdox11  
PS_291
-- --

I have a big old Paradox 7 application that I inherited which I would like to upgrade to Paradox 11 (I picked up the latest Corel X8 Pro). 

I'm already working on a port to another DB and front end and the current Paradox 7 app works fine on most target platforms (I've been maintaining it for some time), but since Paradox 7 was broken by the Windows 10 Creators update I thought it would be nice to upgrade to the latest Paradox while I move the port forward toward allowing users to upgrade to Win 10 as-desired.

The problem I'm encountering is that the developers who I inherited the app from created deep interdependencies amongst libraries, so manually opening and saving forms and libraries or using something like update.ssl results in forms and libraries with syntax errors due to their referencing libraries that themselves couldn't be saved without syntax errors because they originally references libraries that were downlevel, etc. ... a catch-22.

Disentangling the interdependencies through splitting up libraries and duplicating code would be a bit of a job as this application has over 400(!) forms and close to 100 libraries; this is a problem of geometric proportions.

I suspect I may just have to live with Paradox 7 for a while longer, but if anyone can suggest a way to bootstrap an upgrade of a Paradox project from 7 to 11 without being derailed by "Error: File was saved with syntax error(s)" for interdependent forms/libraries, I'd love to give it a shot.

Thanks in advance for any suggestions (whether of a solution or that I just hit a pub rather than bothering)!

Cheers,

John

 Posted 25 months ago (Thread Starter)
Comment Quote
About PS_291 -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Old Account!
If this is your account, sign in to activate web presence data (sign in quarterly to keep active). Alternatively, you can subscribe to our monthly eMag with a valid email address.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #16828, 9 replies
Thread Started 8/16/2017 12:15:56 PM
View Counter=949
Last Reply Posted 1/17/2019 9:24:36 AM)
Location=-- -- 
Joined=25 months ago   MB Posts=13  
rum
Frankfort, KY USA

Hi John,

I also feel your pain.  I had a similar problem about 9 years back with numerous interdependencies on Forms and Libraries. We have been using PDOX8 since its release in the 90's.  My solution was to write a tool using OPAL that builds for me, in the order that I want. The tool is not that complex and uses a table to drive the process.  I use it regularly but also used it to convert to PDOX 11 a few weeks ago.

If I understand your issue fully,  you have no idea the correct order to Open/Save/Build things.  Again, if i fully understand your issue, I think the utility could be easily modified to open the object(Lib, form,etc) attempt a save/compile, and on error, skip/defer the object for a later attempt.  Eventually we should come to objects that successfully save and compile,   when that happens we put them into a log file.   Every object will run through the process at least once,  things that error may/will run through multiple times.   However, in the end, you will have a log that lists the correct order for building the application.

I would be happy to share it with you if you are interested. However, I would not call this a silver bullet because it will take a fair amount of work to make changes for your setup.

I guess you would have to decide if it is worth a weeks effort to do this or better to invest that time into porting to a new platform.

If your are interested in chatting,  send me a private message.

Jeff

 Posted 25 months ago
Comment Quote
About rum -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Member pending approval.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #16831 (Level 1.1)  Reply to 16828
Thread Started 8/17/2017 7:36:55 AM
Location=Frankfort, KY USA 
Joined=27 months ago   MB Posts=88  
Moderator
Steven.G
Myrtle Beach, SC USA

I feel your pain.. I've been handling cleanups like this more many years.. 400 forms, been there done that.. hundreds, even thousands of tables, done that too.. but 100 inter-related libraries, haven't done THAT

the usual problem in big apps is a lack of shared code, not a glut of it.. if they're all calling each other, yes, I can see how an upgrade can be a nightmare.. and, of course, there's no documentation

the sudden arrival of the Creators Update has been the doomsday we all were afraid of, in some regards

without seeing how the app is written, I can't make an informed suggestion, all I can do is guess.. the only way to deal with it might be going down the menu trail, one branch at a time, and try to compile as they're called.. or pass the code to a handful of new libs

Steven Green
Senior Software Engineer
Paradox Support Specialist DOS/WIN

Prestwood IT Solutions
8421 Auburn Blvd, Suite 256, Citrus Heights, CA 95610
Office: 916-726-5675 | Fax: 916-726-5676 | http://www.prestwood.com
 Posted 25 months ago
Comment Quote
About Steven.G -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #16829 (Level 2) and Parent is 16828
Reply Posted 8/16/2017 3:24:18 PM
Location=Myrtle Beach, SC USA 
Joined=36 months ago   MB Posts=302  
PS_291
-- --

Thank you for your thoughtful reply, Steven- I'll likely go for accelerating the port rather than refactoring, but I do feel slightly less alone in the world! I'll have to steal a few minutes at some point to write a script that maps out the dependencies in order to detail the scope of the undertaking. Absent the existence of a "magic bullet" that gets around the syntax errors on save for the initial down-level dependencies (with your experience, if such an animal existed, I'm sure you'd know it by now!), it seems that the kind of branch-by-branch refactoring you mention is the only way to pull this project into pdx11. ... probably time best spent knocking out the port to another platform!

Cheers!

John

 Posted 25 months ago (Thread Starter)
Comment Quote
About PS_291 -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Old Account!
If this is your account, sign in to activate web presence data (sign in quarterly to keep active). Alternatively, you can subscribe to our monthly eMag with a valid email address.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #16830 (Level 3) and Parent is 16828
Reply Posted 8/17/2017 7:44:11 AM
Location=-- -- 
Joined=25 months ago   MB Posts=13  
Moderator
Steven.G
Myrtle Beach, SC USA

hey, I like Jeff's idea, too.. I do something like that, with forms, to recompile and/or extract the code.. put them in a list, scan thru the list, and mark the ones that worked.. eventually, you get to the last few, that you have to deal with individually

Steven Green
Senior Software Engineer
Paradox Support Specialist DOS/WIN

Prestwood IT Solutions
8421 Auburn Blvd, Suite 256, Citrus Heights, CA 95610
Office: 916-726-5675 | Fax: 916-726-5676 | http://www.prestwood.com
 Posted 25 months ago
Comment Quote
About Steven.G -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #16832 (Level 4) and Parent is 16828
Reply Posted 8/17/2017 10:19:58 AM
Location=Myrtle Beach, SC USA 
Joined=36 months ago   MB Posts=302  
PS_291
-- --

Thanks again for your feedback, gentlemen, and for the kind offer to share your code, Jeff. My plan at this point is to write a script (probably in python) that builds a library/method dependency graph toward pointing me at the problem areas in addition to detailing an appropriate save-ordering and saving it to a table in the manner you suggest. In a nutshell, if there are interdependent libraries with no interdependent methods, it should be possible to split the library into sub-libraries toward disentangling the mutual references. Where there should be interdependent methods within different libraries, duplication of code should do the trick. ... something like this should be handy for more easily scoping and guiding such efforts. If I do build it, I'd be happy to share. It'll be written to assume that there is an ObjectPAL source dump file for each form/library/script that it in turn parses to build the graph. I'll update this thread with any progress! Thanks again for your kind feedback- it's been a bit of a surprise to discover that there's still a community dealing with ObjectPAL at a professional level, though I imagine most of us are doing our best to finish a port to one alternative or another!

Best,

John

 Posted 25 months ago (Thread Starter)
Comment Quote
About PS_291 -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Old Account!
If this is your account, sign in to activate web presence data (sign in quarterly to keep active). Alternatively, you can subscribe to our monthly eMag with a valid email address.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #16833 (Level 5) and Parent is 16828
Reply Posted 8/18/2017 8:29:50 AM
Location=-- -- 
Joined=25 months ago   MB Posts=13  
Moderator
Steven.G
Myrtle Beach, SC USA

John.. I'm sure you already know, but.. enumSource.. there's an option for forms, and an option for libs.. it's usually one of the first things I do, when I'm handed an app

Steven Green
Senior Software Engineer
Paradox Support Specialist DOS/WIN

Prestwood IT Solutions
8421 Auburn Blvd, Suite 256, Citrus Heights, CA 95610
Office: 916-726-5675 | Fax: 916-726-5676 | http://www.prestwood.com
 Posted 25 months ago
Comment Quote
About Steven.G -Collapse +Expand
Visit Profile
Approved member.
Member subscribes to this thread with a verified email.

Post ID #16834 (Level 6) and Parent is 16828
Reply Posted 8/18/2017 9:18:48 AM
Location=Myrtle Beach, SC USA 
Joined=36 months ago   MB Posts=302  
PS_291
-- --

Steven and Jeff,

Thanks again for your feedback and very helpful suggestions regarding this issue- it's been a while as I got pulled onto other projects, but I wanted to be sure to update you once I got around to definitively addressing the problem. It became clear that circular dependencies involving a couple of dozen heavily used libraries were at the heart of the problem. Since the inability to deliver was really a static issue, I started with the most heavily referenced libraries, checked these for syntax errors after removing the uses clause references that were part of a cycle, and used a triple-colon (easier to find later in the enumSource dumps) to comment out any offending lines. This broke most all forms/libraries in a runtime sense, but allowed all forms/libraries/scripts to be saved without syntax errors (after five or six hundred "breaking edits"). Then, it was just a matter of running enumSource again to guide the removal of the easy-to-find triple-colon comments, and the port of the code to 11 was complete. Thanks again for taking the time to chime in!

Best,

John

 Posted 8 months ago (Thread Starter)
Comment Quote
About PS_291 -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Old Account!
If this is your account, sign in to activate web presence data (sign in quarterly to keep active). Alternatively, you can subscribe to our monthly eMag with a valid email address.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #17389 (Level 7) and Parent is 16828
Reply Posted 1/17/2019 8:26:57 AM
Location=-- -- 
Joined=25 months ago   MB Posts=13  
rum
Frankfort, KY USA

Very good,  Another succeful PDOX 11 implementationsmile

 Posted 8 months ago
Comment Quote
About rum -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Member pending approval.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #17390 (Level 8) and Parent is 16828
Reply Posted 1/17/2019 9:12:21 AM
Location=Frankfort, KY USA 
Joined=27 months ago   MB Posts=88  
Most Recent Post
PS_291
-- --

Cheers! If only the port away from pdox could go a easily, but hey- I'll take Win 10/Server 2019 compatibility in the meantime!

 Posted 8 months ago (Thread Starter)
Comment Quote
About PS_291 -Collapse +Expand
Visit Profile
Membership pending.
Member subscribes to this thread with a verified email.
Old Account!
If this is your account, sign in to activate web presence data (sign in quarterly to keep active). Alternatively, you can subscribe to our monthly eMag with a valid email address.
Web Presence Hidden.
Once above is taken care of, full Profile content will display including back links, about me, my message, custom Profile html, social networking links, message board signature, company profile, etc.

Post ID #17391 (Level 9) and Parent is 16828
Reply Posted 1/17/2019 9:17:05 AM
Location=-- -- 
Joined=25 months ago   MB Posts=13  

Revive Thread!

Add a comment to revive this old thread and make this archived thread more useful.

Write a Comment...
Full Editor
...
Sign in...

If you are a member, Sign In. Or, you can Create a Free account now.


Anonymous Post (text-only, no HTML):

Enter your name and security key.

Your Name:
Security key = P1151A1
Enter key:
Icon: A Post    Thread    Idea    Important!    Cool    Sad    No    Yes    Includes a Link...   
Thread #16828 Counter
949
Since 8/16/2017

Follow PrestwoodBoards on: 


©1995-2019 PrestwoodBoards  [Security & Privacy]
Professional IT Services: Coding | Websites | Computer Tech