• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Question Best way to learn a new Database and Application


17+ years progress programming and still learning.
So, I've gotten myself a new contract job and I'm struggling to learn the database relationships and trying to get an understanding of the application. It's an application that has been built on top of years and years of development with the view to not to remove any tables or fields that are redundant.

What would be your approach to learning a new system?


ProgressTalk.com Moderator
Staff member
Get yourself stuck into tech support tickets. Ask them to assign you simple ones. Use stack traces and so on to navigate your way through to the errors in the code. Then learn the relationships in play at that point in the code. That way you're learning relationships for the active portion of the system, and you'll also feel productive.
Difficult problem, and usually in these systems fields change in meaning without the name being changed. Example; StockOnHand is now really "paid stock on hand" as a new field was added for DeliveredNotInvoiced and later a field for IssuesAccrued where issues are made before the stock is paid for. So now "Stock on Hand" is DeliveredNotInvoiced + StockOnHand - IssuesAccrued and thats how the reports calculate "Stock On Hand". Check the active reports as well - just to verify your understanding is correct.
As above really.

Ill assume documentation is out of the question? I generally like to figure out how the users will be interacting with a system first. Follow the business processes through the application then dig into the code via support tickets.

Rob Fitzpatrick

ProgressTalk.com Sponsor
For GUI (32-bit), Pro*Spy Plus is a useful little tool for following program flow. It's also not much known or used among developers I talk to.

Example, in prowin32 editor:
define variable vh as handle no-undo.
run protools/_psplus.r persistent set vh.
/* The Pro*Spy Plus window appears */
run myconfusingapp.p.   /* your code */
At the start of the section of code you want to trace, click the "Start Tracing" button on the Pro*Spy Plus toolbar. At the end of that section, click the "Stop Tracing" button. You'll get a call tree, complete with parameters for each call. It's a bit buggy but it's still useful.


17+ years progress programming and still learning.
Thanks for all the advice.

It's a mixed bag of different OE technologies 10.2B to 11.6, Windows GUI (32bit, phew), ABLOO, AppServer, WebSpeed, SonicMQ and finally ADM1 (not ADM2). There is sooo many include files inside include files.

Luckily (or not), I currently working on new development work rather than tickets request, but that will come later.

Also, I'm working remotely so I don't have the luxury of turning my head and asking questions.


ProgressTalk.com Moderator
Staff member
The remote working thing can be a real pain when it comes to asking questions. You feel like you're bugging people all the time. Make yourself a nuisance now though, and you'll get in the zone a lot quicker and be a lot less of a nuisance in future.