1) What is the way to make a makefile for progress OpenEdge ABL?
You can use JAR file PCT to make a makefile for progress OpenEdge ABL, it is used in an ANT script and manages progress compilation with many other options like multi-threading or just recompiling what is required.
2) Is there any Microsoft SQL server profiler equivalent for progress OpenEdge ABL?
For general performance data, options available are:
• OpenEdge Management or Fathom
• Pro Monitor
3) Mention the pros and cons of using object-oriented programming for OpenEdge?
Pros of using Object Oriented ABL
• It is an excellent option for creating re-usable code
• It is the best way to clean up an existing procedural codebase
Cons of using Object Oriented ABL
• There is a limitation for class hierarchies while the older version has some more limitations like lack of abstract classes
• Difficulty arises in error handling; CATCH/THROW does not let you throw your custom errors and force callers to catch them
• Object memory footprint is huge, and there are no AVM debugging tools to track down
• Code reviews may be challenging task as most progress developers don’t do OOABL
• To manage the socket, you have to run a separate persistent procedure
• No class library or data structure needed for OO
• No Exception handling
4) In there any automatic way in OpenEdge to know which rows are the latest one that have been added to an OpenEdge table?
• There is no automatic way in OpenEdge to know which row is added latest, however the only way to state this is by applying a sequence or by time stamping the record
• In case if you are looking for changes without applying schema changes, you can record changes using session or DB triggers to capture updates to the DB and to save that that log activity
• Another way is taking periodic back of the database, and then use queries to compare the current DB with the backup DB and get the differences that way
• Maintain a db on the customer site with the content of the last table dump. Next time when you want to get any deltas details from the customer, compare that table with the current table
5) Explain how to decorate classes, properties and methods with attributes in progress OpenEdge ABL with .NET bridge?
It is not possible to use an attribute from C# in ABL code. In order to do that you have to create instances from the C# class and then inherit this class in ABL and then make some wrappers if necessary.
6) Mention what are the types of partitioning does OpenEdge allows?
OpenEdge allows three types of partitioning
• List partition: Partitioning is done by group based on a field or areas like reporting for a specific country only
• Data range partition: Partitioning based on a range of data
• Sub-partitioning: Group based on the combination of the above options
7) Mention what is the advantage of using OpenEdge ABL?
• ABL makes easy to leverage business terminology and statements to quickly express and understand rich business rules
• Single line in ABL saves the time which would be hundreds of lines of codes in another language
• It enables developers to integrate and combine classes with procedures and vice versa
• It is the only mainstream development language that offers built-in capabilities to access, manipulate and store data from different data sources
• It converts ABL structures to XML documents, i.e. data= .xml
• There is no requirement to write your own code using SAX or DOM
• It supports in and out of XML to ABL objects
8) How you decide whether you should use a property or a variable in OpenEdge ABL?
You can use property if you plan on accessing the value from outside the current class. Likewise, if you only need it inside the class, use a variable. If no one else is supposed to see the value, then value is “state” and not “property”.
9) Mention how big the DB cache and how long will the DB cache stays?
DB cache is sized by the value of the –B configuration parameter. It is created in memory when the database is created and deleted when the database is shut down.
10) Explain whether DB cache is available across different progress sessions even though each session has made its own DB connection?
When run in multi-user mode, the primary broker for the database creates the buffer cache in one or more shared memory segments. These segments are directly accessed by server processes that access the database on behalf of clients, by self-serving clients that carries the client and server code in the same process and by database utility programs and various supporting processes. All of the processes must be running on the same machine as the primary broker process.
11) Explain what is SonicMQ?
SonicMQ offers connectivity to the internet and support for application servers and other industry servers. It provides an interface between OpenEdge ABL and messaging backbone.
12) Mention what are the tools that can be helpful in developing applications by OpenEdge ABL?
Various tools which can be helpful in developing applications are
• Procedure Editor
• Application Compiler
• Data Administration
• OpenEdge development server
• Open client toolkit
• Data dictionary
• Open client toolkit
13) What OpenEdge development server tool does?
OpenEdge server tool run and validate code for distributed applications on the development scaled Appserver, Transaction Server, Progress Web speed, OpenEdge RDBMS, and client networking.
14) What does OpenEdge debugger does?
OpenEdge debugger does
• It validates applications quickly and thoroughly
• Check the contents of buffers and variables
• Trace processing events
• Trace and correct errors in application logic or data handling in any OpenEdge application component
• Trace processing events
• Access state information
15) Explain how data dictionary can be helpful in OpenEdge ABL?
In OpenEdge ABL, data-dictionary
• Maintain and create database definitions, application defaults, and business rules
• Automatically uses data dictionary defaults with the ABL when you build new application components
• It acts as a central storage mechanism for all database information to insulate you from specific details of each database type and location