newbie to Progress but an "old" programmer, where to start? - Forum - OpenEdge General - Progress Community

newbie to Progress but an "old" programmer, where to start?

 Forum

newbie to Progress but an "old" programmer, where to start?

This question is answered

Our company used to use Oracle system but recently decided to move to Apprise (7.5), which uses Progress OpenEdge 11.1.  I checked 11.1 is kind of old but we have NO control. Apprise installs OpenEdge into 3  machines, I was told 2 are application servers and one is the RDBMS?  I looked into the installation, there is no easy way to tell which machine installs database, which one is the application server , most  menus like "Database Administration Console"  are identical in all 3  servers.  I did find 11.1 documentation and read some of them, to me , it's not easy to get  started with  Progress , I hope some one could enlighten  me  on some of the basics of progress:

1. where to find ad-hoc SQL query  tools? such as "mysql" in Mysql and "sql*plus" in Oracle?

2. Database Administration Console is like Sql*server's  Enterprise manager? but it doesn't allow me to create a physical database.

3. I assume ABL to progress is PL/sql to Oracle?  PL/sql can run inside RDBMS and Application server Forms services ( can be different version but mostly the same). Does  ABL run inside the  database? why is Application server   required ?

To practice I downloaded OpenEdge 11.6 and installed on windows server (both RDBMS and Studio), but I can't find an easy way to play with data like other database systems ( i.e, like Oracle I'll have sql*plus and it tells me some users like scott/tiger to select sample table right away).  Please enlighten me the proper way to get  started with Progress and become  a progress programmer ( Apprise has all API in .r files) , thank you.

Sean 

Verified Answer
  • 1. Squirrel: squirrel-sql.sourceforge.net/

    2. OpenEdge Explorer is the DB Admin Console but most non-Windows database deployments simply use the command line tools. They are quite easy to master. Newer versions of OpenEdge have more and more DB Admin Tools in OE Explorer. 11.1 is REALLY old and probably doesn't have that much.

    3. The Progress ABL is Progress' language and is much more than PL/SQL..but the analogy is ok. No code runs "inside" the database other than Java stored procedures. All Progress ABL code is executed by one of the many clients: prowin32.exe for Windows; _progres[.exe] is the character client; _proapsv[.exe] is the AppServer agent.

    With 11.6 you should have quite a few tools in OE Explorer for playing around with the database.

    Do you want to acquire DBA skills or programmer skills? For programming, Progress offers a one month super-intense boot camp at their offices in Atlanta. The price is essentially free: $1000 IIRC.

    If you want to acquire DBA skills, you can take one of the DBA classes at Progress but you may be better off working with  a company like ours (White Star Software) as we can train, mentor and support you within the context of your environment. Contact me offline if you want more information.

    Regards,

    Paul Koufalis
    White Star Software

    pk@wss.com
    @oeDBA (https://twitter.com/oeDBA)

    ProTop: The #1 Free OpenEdge DB Monitoring Tool
    http://protop.wss.com
  • OE is indeed very different from SQL Server and Oracle. Some of the differences you will learn to like.. some probably not so much.

    The core ABL (4GL) is very easy to use and you can do everything that you could do in cursor based PL-SQL or T-SQL. Bulk processing is where you will notice the big differences.

    There are also UI elements in the ABL that allow you to write GUI/CHUI screens. Quite a few vendors are starting to use .NET/Java/Web for the UI components though. Writing modern UIs in the ABL is much harder than just using a modern UI tool that can call ABL procedures.

    The full on IDE tools (like Developer Studio//Appbuilder) are not required to write ABL code. Some of us just use Notepad ++, VIM or other editors to write the code. Depending on how you think this may or may not be easier for you.

    Thinking of the OE appservers as traditional appservers and stored procedures is probably best conceptually. Not exactly the same thing but the use cases are the same. For a smaller install this can complicate things compared to SQL Server but any decent sized SQL application should have a similar tiered approach for security/scaling.

    I would certainly take Kevin up on his offer. If they already expose common functions via an API it will make your life much easier. Always better to be supported than not. The less you have to go outside of the box the better, especially when it comes time to upgrade your ERP to the latest version.

  • WRT: "I feel the whole OE  system architecture and deployment are more complex than software like Sql*server"

    It is the actually easiest system I know:

    1. open ProEnv

    2. enter: prodb sean sports

    3. enter: prowin32 sean -1

    Voila. There's your DB, you're connected to it in single user, you're in the editor to write some sample programs  (for example: FOR EACH customer: DISPLAY customer. END.). Press F2 to execute the program.

    Doesn't get any less complex than that...

    Once you want to do production type stuff, with tons of users connected to the system, spread it all out over multiple machines, and so on it get's more complicated, of course. But, it still is easy enough that one person has a chance to know all about it. Show me another system where this is possible... :)

    WRT: "ABL is funky".

    Analogy: For somebody who is used to drive a horse and buggy a car is funky! :D

    I wish you much joy and fun exploring this new language, DB, and environment! May you look back to this time years from now and think: Shoot! Should have known about that sooner!!! :) (y)

    Thomas Hutegger

    tmh@smat-consulting.com

    SMAT-Tools - Web-Apps with RollBase simpleness, ABL flexibility and power

All Replies
  • 1. Squirrel: squirrel-sql.sourceforge.net/

    2. OpenEdge Explorer is the DB Admin Console but most non-Windows database deployments simply use the command line tools. They are quite easy to master. Newer versions of OpenEdge have more and more DB Admin Tools in OE Explorer. 11.1 is REALLY old and probably doesn't have that much.

    3. The Progress ABL is Progress' language and is much more than PL/SQL..but the analogy is ok. No code runs "inside" the database other than Java stored procedures. All Progress ABL code is executed by one of the many clients: prowin32.exe for Windows; _progres[.exe] is the character client; _proapsv[.exe] is the AppServer agent.

    With 11.6 you should have quite a few tools in OE Explorer for playing around with the database.

    Do you want to acquire DBA skills or programmer skills? For programming, Progress offers a one month super-intense boot camp at their offices in Atlanta. The price is essentially free: $1000 IIRC.

    If you want to acquire DBA skills, you can take one of the DBA classes at Progress but you may be better off working with  a company like ours (White Star Software) as we can train, mentor and support you within the context of your environment. Contact me offline if you want more information.

    Regards,

    Paul Koufalis
    White Star Software

    pk@wss.com
    @oeDBA (https://twitter.com/oeDBA)

    ProTop: The #1 Free OpenEdge DB Monitoring Tool
    http://protop.wss.com
  • Thank you Paul,

    I'm interested in becoming a Progress programmer, our ERP vendor maintains  OpenEdge and their ERP software, I can't change data structure but we want extend its functionalities.

    1.  is there a huge difference between 11.1 and 11.6?  I'm talking about programming like  ABL.

    2. in order to use ABL, I have to install one  RDBMS and one Application server?  If I want visual ABL  design, then I have to install OpenEdge studio?  this sounds I need   3 computers to finish a  demo Progress system, right?  Here we are using Windows only, required by the  ERP vendor. The downloaded  OE have 5 or 6 install components.

    Your advice is much appreciated

    Sean

  • There is not a lot of difference between 11.1 and 11.6 on the basics of ABL programming. For learning, the later environment would be better.

    You only need to install Progress Developer Studio for OpenEdge - this includes the Eclipse-based IDE, and development licenses (and executables) for the or database , the application servers, and all you need for a one-machine install.

  • There's even a free version, the class room edition: www.progress.com/.../classroom-edition

    Architect of the SmartComponent Library and WinKit

    Consultingwerk Ltd.

  • How important the difference is between the two versions depends on what you want to do.  You will find that a lot of the code from many Progress vendors came from Version 6 ... but it still works ... and that was from the late 80s.  As Bill says, you can do all the development on a single Windows box.  I would go for PDSOE, not the older product called Studio.  There is now a free 11.6 version of this available as the Classroom edition of the OpenEdge Developers Kit.  There is nothing to stop you writing and testing in 11.6 as long as you avoid new syntax and recognize that you will need to compile for the target market.  The one hitch may be that this product includes PAS for OE, the newer (and better) version of the application server and I don't know what issues there might be about testing with it and porting back to classic AppServer.

    BTW, it is very common for Progress ISVs to say that they support only up to a certain version even though there is no reason the code won't run on the latest version.  They don't want the trouble of testing an older version of their application against a new version of Progress.  There are sometimes minor changes required, but often it is load and go.  But, persuading them to let you can be a major problem.

    Consulting in Model-Based Development, Transformation, and Object-Oriented Best Practice  http://www.cintegrity.com

  • Sean,
     
    11.1 is older (relatively) but it is the version that Apprise is certified and supported on so you /really/ need to stick with that.
     
    There are differences between 11.1 and 11.6 but again you need to stay with what they certify (unless, of course, that doesn’t matter to you and your company /and/ you have you your resume updated <smile>).
     
    Open up the Procedure Editor for starters and get used to it.  That is the basic shell for writing ABL programs and executing them interactively.  Of course, the product is much, much more than just that but start out slow and go from there.
     
    Brian

  • This is true but be aware that if you expect to write code and hang it off of their existing application then you need to stick with 11.1.
     
    Please don’t accept all these suggestions to use 11.6.  Stick with 11.1 where you will be supported by your application vendor.

  • Thank you all for these great suggestions and advices. OpenEdge license is not a problem for us because the ERP vendor  takes care of  that. Version 11.1 stays until our ERP vendor upgrades their version.

    My area of concern is how to use their API ( .r files ), I was told I can wrap .r files into DLL then use  Visual studio  or just use ABL. I'm interested in the  ABL way but unfamiliar with it, hence I posted this question.  I can't practice ABL on a production system, so I'm thinking that I install another  demo Progress system for myself , getting experience with ABL etc, then come back with the real system.  I can only download Open Edge 11.6 (for testing), but I did find 11.1 documentation which has lot of  books, I'm kind of getting lost there.

    Once again, great appreciation for everyone of you and I'm grateful for your advices

  • Sean,
     
    Download the PDF doc set (or the installer for the docs) then start wit the ABL Essentials and Database Essentials books (ABL more then Database since I expect that Apprise handles the database configuration and performance optimizations).
     
    Once you have read at least the ABL Essentials book look through the main page for the doc set and pick other stuff to learn more on.  There are lots of programming related stuff under the “ABL” section.
     
    OpenEdge is a big product with lots of features.  Some things you will run into (particularly in the ABL Reference book) are more “old style” stuff that is there for compatibility purposes so be aware of that.
     
    Brian

  • To get started with the 4GL, you should have a look at the “Programming Handbook”.

    It is no longer part of the doc set, but you can find the book here:

    community.progress.com/.../1791.9-1e-programming-handbook

  • Just to addd a little...

    In other environments you need a different product for the various parts - language, db, app servers, ... OpenEdge includes many, many of these parts - thus so many books in the doc. Don't let that scare you off... Here's a link for the 11.6 doc that Brian mentioned: documentation.progress.com/.../

     Also, if you like to program in OO style, you can do that with ABL. If you prefer procedural, ABL is good for that as well. And you can mix the two.You're not forced into a scheme, but can use the style you're most comfortable with.

     If you want to build a browser-based UI using HTML/JS, you can do that as well, using the WebSpeed feature of OpenEdge...

     A big difference between SQL and ABL, in my experience, is that a SQL query essentially denormalizes the data-structures - you get all data mashed together into a single record in your result-set. The ABL is record oriented (rather than result-set oriented as SQL). The data-structures remain normalized as in the DB (or the temporary data-structures you may define), and you can access the records of the individual tables within your queries directly... It is so much easier to work in that system than in SQL... you'll see, once you get the hang of it...

     One word of caution, though: Once you are familiar with OpenEdge you might be very unhappy if/when you have to work with anything else! It is so easy and quick to get high quality programs done in ABL, other languages and systems will become tedious, difficult and frustrating...

     Welcome to the club! :)

    Thomas Hutegger

    tmh@smat-consulting.com

    SMAT-Tools - Web-Apps with RollBase simpleness, ABL flexibility and power

  • ABL Essentials is basically the same thing
     

  • smat-consulting

     One word of caution, though: Once you are familiar with OpenEdge you might be very unhappy if/when you have to work with anything else! It is so easy and quick to get high quality programs done in ABL, other languages and systems will become tedious, difficult and frustrating...

     Welcome to the club! :)

    Most definitely!!
    You unfortunately missed the PUG Challenge/Exchange this year by a few weeks.   http://pugchallenge.org/index.html  It's the absolute BEST resource for OpenEdge information in the America's anywhere -- all for a ridiculously low price.  Put it on your calendar for next year!
     and Alan Estrada from Progress did a talk called " Why use the ABL? Why is the Progress 4GL More Productive than Alternatives?" this year and it underscored why the ABL/Progress 4GL is so nice.  
    You can watch the downloads section for the 2016 slides to appear at the PUG Challenge's site, or perhaps Bill could send to you earlier! :)
  • A .r is the compiled version of a .p or .cls source code file.  By "compiled" we mean that it is converted to p-code, vaguely similar to Java, which must be interpreted by a run time engine.  So, no, you can't wrap it into a DLL.  Modern versions of Progress, which include your 11.1 also have a CLR bridge which allows direct use of .NET components ... with some limitations such as only the top thread if the component is multi-threaded.  But, it works very well, either for UI or for certain types of back end processing which would be hard to do in ABL.

    Consulting in Model-Based Development, Transformation, and Object-Oriented Best Practice  http://www.cintegrity.com

  • WRT

    >> Bill Wood and Alan Estrada from Progress did a talk called " Why use the ABL? " [which]  underscored why the 4GL is so nice.

    Thanks for the complement.... Alan and I had a great time writing that.   We have submitted the slides to the PUG Challenge team for publishing.   There is a github project for the associated ABL, C#, Python, and Java files (which we are updating now based on some great pull requests from people who 'suggested' improvements to our coding at 
      github.com/.../WhyABL