PUG Challenge

2018 Schedule (for reference -- 2019's agenda will be ready sometime in the summer)

The 2019 Progress Users Group (PUG) Challenge promises to be three days of lively technical sessions, workshops, training, demos and face-to-face networking with your peers and the OpenEdge engineering team.

For Sunday Workshops see: Sunday Workshop Registration

Wednesday, October 24th
Time Ballroom
18:00 Welcome Reception and Sponsor Expo
Thursday, October 25th
Time Room 1 Room 2 Room 3 Room 4
07:30 Breakfast (Ballroom)
08:30 101: Opening General Session
Yogesh Gupta, John Ainsworth

09:30 102: OpenEdge Roadmap: The Future Near and Far
Rob Straight

We’ve got a lot of plans for OpenEdge, including enhancing your ability to deliver continuous operations, improving the developer experience and delivering a SOA architecture. You don’t want to miss this session where we will detail what is to come in the OpenEdge Roadmap.

10:45 111: Introducing the On-Premises Data Connector for OpenEdge
Dennis Bennett

Learn how to leverage Progress' hybrid data connectivity services to explore the potential for cloud architectures with existing OpenEdge applications. This session will explore integration options for your cloud apps with on-premises databases in real-time. See a demo and overview of how Progress customers and partners are adopting this technology to rapidly deliver secure and modern hybrid cloud applications and modules, without having to deal with VPNs, SSH tunnels or reverse proxies.

439: Building Great Interfaces with OOABL
Mike Fechner

What’s the real benefit of OOABL? How can we use Object Oriented coding to make reusable functionality way easier to use, rather than nested include files with a bunch of named parameters? What’s the meaning of “interfaces” in general? What are benefits of parameter objects, builders, factories, fluent-style and overloading? Your own query language someone? In this session we’ll discuss real-world examples about how OOABL makes the consumption of API’s or generally reusable code much easier and enhances maintainability and testability.

475: ABL Code Analytics: Unique Tools for Deep Code Analysis and Inspection
Greg Shah
Golden Code Development

It can be very difficult to refactor or modernize application code. To do it properly, one must thoroughly understand the existing implementation and its dependencies, so that the improved code does not lose or break functionality in the current code. This typically means a great deal of manual investigation of the code and schemata. This can be error prone and very time consuming, especially when the ABL code is ambiguous or complex. Often, developers spend a great deal of time trying to grep through source code, hoping that their regular expressions are matching all of the abbreviated mixed-case keywords needed give some idea of what is going on.

The FWD open source project provides a rich set of tools to inspect, analyze, search, manipulate and transform 4GL source code. These tools automate this processing across an entire application, allowing even the largest of applications to be analyzed and transformed.

FWD Analytics has unique and powerful capabilities for the deep analysis and inspection of ABL code and schemata. Instead of using text searches, FWD is syntactically aware of the ABL code. It is trivial to answer a question like "show me all locations in the application which use a CAN-FIND on the CUSTOMER table and in the WHERE clause there is a reference to the ORDER-NUM field of the ORDER table as an operand to the EQ or = operator". Using FWD, you will find an exact answer to this question and there will be no doubt that you found all instances of these references.

In addition to ad-hoc search and inspection, FWD has an extensive set of pre-defined reports and statistics, a web-based interface for searching, reviewing reports and a source code view that shows the code and the AST side by side.

This session will introduce these tools, show how to use them to good effect and will provide details on how to get started on your own project. The tools can be used on any ABL project. There is no need to convert to Java or use any of the other FWD technology. The code analytics can be used on its own.

397: Database model - do OpenEdge applications even need one?
Marian Edu

This session is about database modelling, why is that important and what could be the benefits of having a common, easy to understand view of the business 'entities' and their correspondence in the database - for both new development as well as for existing applications. This willalso introduce an Entity Relationship Diagram designer as an alternative to the classical Data Dictionary tool and explore the benefits that tools like this can provide, not only to the database administrators but also to developers and business analysts alike.

11:45 Lunch (Ballroom)
12:45 700: A Lap Around Kendo UI Builder
Shelley Chase

Kendo UI Builder actually functions like a designer, app builder and code generator all in one. In this session, you'll learn all about what Kendo UI Builder is, how it works and what it can do for you to build rich web applications based on Kendo UI.

480: Unit Test Strategy
Mike Fechner

Unit test tooling is available to any ABL developer. In this session, we'll be starting with the basic principles of unit tests and discuss also best practices and challenges of writing unit tests. We'll be talking about concepts for developing testable code, mocking of dependencies (e.g. code and data) and tooling such as Progress Developer Studio, ANT and Continuous Integration servers. We'll also be demonstrating how to get insight into test coverage as there are only two kinds of people that know their test coverage: Those that don't use unit tests at all and those that use tools to track the test coverage.

518: where does the time go?
gus bjorklund
parmington foundation

Where does the time go? In this talk, we examine the various ways in which time is expended during the execution of a transaction by multiple concurrent users. One of these is "lock latency.

We then look at how latency can be reduced to quite small intervals by careful tuning. Experimental results are provided.

1120: User First: Modernizing OpenEdge application with a great UX
Jan Aleman

In this session, we will discuss three companies that modernized their OpenEdge applications successfully. We'll look at the steps they took to get there and share best practices with you. User Experience centric development enables software to become easier to use resulting in happier customers, fewer support calls and more revenue.

13:45 585: Index Internals: The Engine
Mike Furgal

Part 1 of a 2-part series on how the OpenEdge Database Index Manager works. This first part will cover the internal structures of the indexes, b-trees, key storage, and compression. This will also show you why you need to care about these structures and what tooling there is available to report and manage these structures.

481: Writing Good Unit Tests
James Palmer

Unit Testing tooling is available to all developers who are on a reasonably modern version of Progress. This talk is a follow up to Mike Fechner’s talk on Unit Testing Strategy. Whilst attendance at his talk is not a prerequisite to this one, there is a little overlap, you will get a lot more value from attending both. We will look beyond the strategies to get our hands dirty with writing actual Unit Tests and looking at how to make sure they are good tests. What is a successful test? What is an unsuccessful test, and how do we ensure that this information improves the quality of the code that is delivered to customers. Customers want code changes delivered with increasing frequency, but of course do not want regression errors or bugs within those releases. This is only possible with good Unit Tests, so join us as we look into this highly useful topic together.

292: Accelerating Adaptive UI with Serverless Cloud Backend: Under-the-covers of a Field Service Use Case
David Atkins, Dan Mitchell

This session will highlight how mobile, chatbots and web interfaces can leverage the Kinvey serverless cloud backend. We wll demonstrate a field service scenario to show how Kinvey accelerates integration of modern UI technologies with OpenEdge and other systems of record, and how it simplifies the provision of engagement services such as push notifications, SMS, cloud caching and more.

1111: SmartComponent Library: The OpenEdge Modernization Framework
Mike Fechner

Gold conference sponsor Consultingwerk will be demonstrating new and well-known features of the SmartComponent Library framework used by over 30 OpenEdge partners and end-customers already. Our tooling simplifies the development of a state of the art Angular Web Frontend, a NativeScript based Mobile Frontend and a Desktop client – all based on top of a single application and framework backend. Recent features include RESTful and HATEOAS interfaces and the integration with an ERD Designer to boost developer productivity even further. We’ll also be demonstrating work in progress such as the integration of the most advanced query engine available for OpenEdge.

15:00 333: Demystify OpenEdge REST Services
David Atkins, Dan Mitchell

This session will describe the various possible approaches to exposing a REST API to your OpenEdge application. It will explain what REST is, how it applies to business applications and which approach is most appropriate for different REST integration use cases and why. It will touch upon considerations such as API documentation, ease of integration, API management and versioning, and in doing so will reference some complementary solutions including Kendo UI Builder and Kinvey.

235: All types of data replication in OE
Dmitri Levin
Alphabroder Co

In this presentation we will discuss three types of data replication: the old one log based (After-Image) replication, OpenEdge replication and pro2 replication. Pros and cons of using one over the other, speed difference, the features that each type of replication brings. Tips and tricks that one would need when doing implementation. We will demo installation of OE replication online, without bringing database down and discuss installation and maintenance of pro2sql. All examples presented are from our 1.5 TB database

660: Paying Lip Service to Business Continuity
Paul Koufalis
White Star Software

The title says it all: most of you pay lip service (if that) to business continuity planning. Not Hurricane-Katrina-Disaster-Planning, but it's more mundane and frequent cousin, tripping-on-a-wire business continuity.

If you're a technical person reading this, please invite your boss, your boss' boss and your boss' boss' boss to this session. Forward the invitation all the way up the org chart. Print it out and tack it to the bulletin board in the cafeteria. Make sure no one in I.T. management or at the C-level can pretend they didn't know.

114: Transform a 4GL GUI into a Modern Web Application Without a Rewrite
Greg Shah
Golden Code

The FWD Project (pronounced, "forward") is an independently developed, open source implementation of the 4GL language and runtime environment. It was designed to enable organizations to preserve and extend their investment in 4GL applications, enhancing and modernizing them without throwing away the entire 4GL UI.

FWD Transform provides a fully automated transformation process which enables developers to continue programming in the 4GL language they love, and to deploy their applications to various platforms, including the web. Edits to the 4GL code are picked up the next time the transformation process runs.

FWD Enhanced Runtime is a Java-based engine that replaces OpenEdge. It executes the transformed 4GL applications using a compatibility framework which ensures that it duplicates the functionality of OpenEdge, while not using OpenEdge in any way.

Entire GUI applications (including ADM/ADM2) can be executed with complete fidelity. A web client allows unmodified 4GL GUI screens to be executed in a modern Web environment (no plugins, no applets, just pure modern web standards such as HTML5/CSS/Javascript). This represents a unique alternative to the rewrite approach of getting to the web.

FWD is an enhanced implementation of the Progress 4GL language. In addition to the compatible implementation of 4GL language features, FWD also includes a large number of enhancements that are not available in OpenEdge. An enhanced browse widget, dynamic layout, look and feel plugin control, reporting features and much more are all available today. This allows one to move past the legacy Windows Desktop approach and achieve a modern UI without leaving the 4GL language! FWD enables the evolution and modernization of the 4GL UI by leveraging the existing screens of an application.

Customer Testimonial and Demonstration. As part of this session, the owner and CEO of a software vendor will demonstrate his large Progress 4GL-based ERP system running in FWD. He will explain why he decided to use FWD, what has been achieved and how his company was able to shift to the web in a short period of time while avoiding the near complete rewrite that so many organizations are attempting.

16:00 600: Progress Legos - Scoping, blocks, and other critical core concepts
Mike Lonski
Allegro Consultants, LTD

Everyone has heard phrases like "record scope" and "transaction block" but do you truly understand what causes and controls these concepts? Can you make them behave how you want or do you struggle to understand why code doesn't quite work right? Come refocus on these core concepts in Progress code and quickly learn how to master them.

326: 4GL/ABL Legacy Code Modernization
Mike Fechner

Do you have a Progress OpenEdge TTY or GUI application that you would like to move to Progress Application Server for OpenEdge with an exceptional web application based on Progress Kendo UI?

In this session we will demonstrate real-world proven application modernization techniques that allow harvesting relevant elements of legacy code for reuse as the foundation of your modern web application. We'll be demoing how even a TTY style UI or Progess Dyamics application can provide valuable bits and pieces for a refactored application.

490: Securing Your OpenEdge Deployment
Chad Thompson

The need to ensure the security of your information and environment has never been greater. Learn what risks you are facing, and how to make use of a variety of OpenEdge features to mitigate those risks. Topics include Confidentiality, Integrity, and Availability.

670: Your Current Monitoring is Not Enough: the Business Benefits of Proactive Monitoring with ProTop
Paul Koufalis et al
White Star Software

Through examples and real customer case studies, this session will show you how individual enterprises and partners with dozens of clients leverage ProTop to ensure unparalleled performance and up-time of their OpenEdge environments.

You'll learn how ProTop is vastly more than a collection of simple alerting scripts. We are not spewing marketing hyperbole when we say that ProTop distills our 30+ years of experience into one package: ProTop provides information and insight that no other monitoring tool provides. Every day we learn something new and incorporate that knowledge into ProTop. Practically, this means that ProTop pays for itself in time saved by your already over-committed technical experts. ProTop provides the hard data they need to resolve issues now, not after hours of frenzied analysis.

We'll also show you the benefits of our web portal: with a quick glance at a single web page, we monitor the health of hundreds of databases around the world and immediately know that they are in good shape. When there is a looming issue we can quickly see what is going on and what we need to do to prevent problems. The web portal also provides access to years of your historical data. In seconds, you can zoom in on data from a specific incident or look at long-term trends over months and years.

18:00 Reception and Sponsor Expo
Birds of a Feather Sessions
Friday, October 26th
Time Room 1 Room 2 Room 3 Room 4
07:30 Breakfast (Ballroom)
08:30 800: The Ins and Outs of Performance Profiling and Debugging
Srini Kantipudi, Sanjeva Manchala

In-depth demo of best practices in identifying performance bottlenecks and tracking down bugs in your OpenEdge application.

665: Minimize Unplanned Downtime and Data Loss with OpenEdge
Mike Furgal, Rodney Sassaman

Unplanned downtime is the worst nightmare of DBAs and devops engineers. The late-night calls and infrastructure rebuilds are but a mere nuisance compared to transactional data loss and SLA violations. Learn about Progress technologies, including the latest innovations, and services designed to enhance technology resiliency and deliver a true disaster recovery solution. Gain insight through real-world business continuity needs and examples.

565: Progress 4GL Performance Take 3: You Don't Know *beep* about Indexes
Paul Koufalis
White Star Software

After 25 years in the Progress world, numerous workshops, training courses and presentations, Peter and I can say with some confidence that most programmers don't know the first thing about index bracketing. Ok, maybe they know the first thing, but the second and third thing...unlikely. Four they dost not know, unless maybe they knowest two and three. Five is right out.

For those that missed the workshop, Peter and Paul (and maybe even Mary if we can find her) will awe and inspire you during this blow-your-mind index bracketing presentation. You'll learn about the differences between database queries versus temp-table queries. You'll partake in the explanation of the parsing of those pesky parentheses. And the mysteries of and and or, or is it or and and, will be de-mystified. You will shake your head, raise your fist, tell us we're wrong, maybe even cry a bit, but at the end of it all, your soul will be cleansed and you'll be a master of all things index-y.

395: SQL for a Progress DBA
Bob Brennan
Intergrated Manufacturing Systems

A lot of businesses run Open Edge applications provided by a third party vendor. These same businesses then want to access the data stored in the database via ODBC or JDBC to generate reports. Care and feeding of the SQL92 engine can sometimes get lost or ignored. In this session we will pull together a number of tips, tricks and best practices on how to care for the SQL92 side of the database.

- Setup of ODBC
- Security and Authorization
- Performance
- DBA housekeeping
- Migration and Upgrade considerations

The target audience member will be responsible for an Open Edge database but needs some clarity on the SQL side of things.

09:30 310: Using OpenEdge CDC to Build Event Driven Architectures
Rich Banville

Event-driven systems provide a real-time, scalable backbone for integration. See how Change Data Capture, introduced in OpenEdge 11.7, in conjunction with Apache Kafka and Hadoop, can deliver a forward-looking streaming Architecture.

344: OpenEdge Applications as Docker Containers
Chad Thompson

How can you get 4-6 times more applications running on the same hardware? Do your customers expect your business critical applications to be always on? Are you considering or already deploying your applications in the cloud, and if so would you like to see your solution elastically scale with changing load? How can you help your developers integrate their code into a shared repository early and often, and then to deploy the code quickly and efficiently? If any of these topics resonate with you join us for this session to learn more.

385: Doctor, it hurts when I do this!
Adam Backman
White Star Software

So don't do that. System design and architecture missteps that end up hurting your availability and scalability. This session will show you how to design and implement hardware for Progress OpenEdge-based systems. From CPU and memory to effective storage and networks effective planning can help you avoid the most common mistakes. If you already have made these mistakes the session will provide some tips and tricks to reduce the impact of most common problems.

1130: OpenEdge Legacy Application Modernization - an Alternative Approach
Scott Blaubach
App Technologies

Your Character and/or GUI Progress OpenEdge application platform has served you faithfully for years but you are just finding it difficult to find the right combination of a web application development framework and resources to begin what seems to be an ominous journey in modernizing your legacy applications. The AppPro for OpenEdge Web Business Application Development Framework provides robust components that offer a powerful Web UI while still utilizing the power of your Progress OpenEdge backend. Curious? Your time will be well spent discovering how the power of Progress and the AppPro for OpenEdge Web Business Application Development Framework can revolutionize your legacy applications.

10:45 275: Continuous integration from ground up
Riverside Software

Continuous integration was an emerging technology practice 10 years ago, which quickly became a requirement for all the teams who adopted it. If you missed the bandwagon, or are thinking about moving to Git for example, or simply would like to know the current trends, then this session will explain the different steps to the continuous integration road, and how to avoid the integration hell by merging multiple development branches with confidence. Using only open-source projects and industry standards, you'll see that ABL can do as much as any other language in an agile environment.

This session is aimed at people trying to adopt agile development methodologies, but wondering where to start and if that could fit in their environment.

335: PrimeNG - an open source UI library for Angular.
Marian Edu

Building smart web frameworks on top of Kendo UI components is what weve did a number of times over the last years and while these is little to complain about those not everyone has the same needs. So, we feel like there should be some alternative solutions PrimeNG is one of the best open source alternatives and we will show you how to integrate that when building a web UI for an OpenEdge backend.

217: a guided tour through promon
gus bjorklund
parmington foundation

Every OpenEdge database comes with a monitoring tool called promon. With this tool you can learn myriad things about your database, how it is being used, and the level of activity it is being asked to deliver. In this talk, we will examine what promon can do for you with its over 50 screens. We will tell you what things are important and what you should be looking for. After this talk, you will be well equipped to troubleshoot, understand what normal and abnormal workloads look like and much more.

1101: Driving Business Intelligence through Data Visualization
Jeff Wilson

In order to engage today's busy professionals, BI power users and developers must find new ways to deliver key messages in visually impactful, efficient, high-bandwidth ways. This presentation will focus on using best practices with Cyberquery to drive better understanding through the visual presentation of data.

11:45 Lunch (Ballroom)
12:45 201: Why Migrate to the Progress Application Server?
Mike Banks

Our next generation app server, Progress Application Server for OpenEdge (PAS for OpenEdge), is the gateway to application modernization. Built on Apache Tomcat, this highly scalable multi-session architecture provides Web server support for browser-based and mobile applications and production ready, out-of-the-box security. Learn about the business benefits and best practices in implementing PAS for OpenEdge and migration considerations from the classic OpenEdge Appserver.

309: How to Dump and Load
Gus Bjorklund
parmington foundation

Sometimes it becomes necessary to reorganize the data in your database (for example, to move data from type i data areas to type ii data areas so you can take advantage of the latest features)or to move parts of it from one database to another. The process for doping this can be quite simple or quite complex, depending on your environment, the size of your database, what features you are using, and how much time you have. Will you remember to recreate the accounts for SQL users? To resotre theie privileges? Will your loaded database be using the proper character set and collations? What about JTA? Replication? etc. We will show you how to do all the other things you need to do in addition to just dumping and loading the data in your tables.

570: The Progress Index - Not only how they work but why and when
Mike Lonski
Allegro Consultants, LTD

Knowing the in's and out's of the DB engine index rules can make or break an application's performance. With the increase in dynamic programming models, the ability to properly select indices and, more importantly, prove which ones are being used is paramount.

This talk starts with an in-depth discussion of not only how the server chooses an index and many surprising reasons why it will not choose the one you think it should. We will also go into the reasons to create an index and more importantly, when *not* to create one with many examples and specifics.

666: Leave the Driving to Us with the Progress Managed Database Service
Mike Furgal

The Progress Managed Database Service (MDBA) has grown from 37 customers in 2012 to 137 in 2018. OpenEdge customers find value and insurance by letting the experts deal with the management of your critical application data. Customers range from Direct End Users, Application Parters, and Application Partners Customers. Come see how the team manages 2,000+ databases, 100+ terabytes of database space, and 165,000+ application end users. You may find this to be a low cost, high value service that fits your needs.

13:45 266: How to F.A.R.M. with OpenEdge and NativeScript and Grow Healthy Apps
Paul Guggenheim
Paul Guggenheim and Associates, Inc.

How to F.A.R.M. with OpenEdge and NativeScript and Grow Healthy Apps

This seminar will show you how to use modern F.A.R.M. (Find, Add, Remove, Modify) techniques to create healthy, robust and attractive apps.

If you have been wondering how to connect NativeScript on the front end to JavaScript Data Objects (JSDO) in the middle to the modern OpenEdge Appserver, Database, and business logic backend, you have arrived at the right place.

This presentation will start with the 30,000 ft view of the big connectivity picture, then swoop down to the 10,000 ft level for some detail coding to help illuminate how the different components tie together to build an attractive yet functional prototype.

Topics Covered:

OpenEdge Components and Connectivity
JavaScript Data Objects
JSDO Attributes
JSDO Methods
JSDO F.A.R.M Operations
Data Service Catalog
Native Scripts connectivity and UI

At the end of the presentation, a full size demonstration will help illustrate The F.A.R.M. operations by providing an generous
set of examples, ones that you will be able to take back to the office and apply to your business requirements.

394: 99 Ways to Crash a Database
Nectarios Daloglou
White Star Software

A somewhat tongue-in-cheek discussion of some of the dumbest, most dangerous, suicidal things I and
other senior DBAs have seen out there in the OpenEdge world. Join me for an entertaining and
informative hour of DBA horror stories and how they were (or could have been) avoided!

269: The Captain's Log
James Palmer

We all know the scenario: our code’s not working, but we don’t know why. Surely there must be a way of getting more detail to debug the problem easily? Maybe we revert to adding messages through the code. Maybe we step through it visually. Maybe we add complex logging to it. But then, how do we easily control whether it’s on or off?

Client logging is the tool you’ve been looking for. If you already know about Client logging, then this talk is probably for you. If you don’t know about client logging then this talk is definitely for you.

We will look at the various ways we have of switching on Client logging on a client session. We will take an in-depth look, with examples, at the output you get from the plethora of options available to you, including what each logging level adds to the output. We will finish with some recommendations of what you should capture as a minimum to improve your ability to debug problem code, particularly in scenarios that are only reproducible on a client session in production. Let’s do all the hard work of investigating the options available together, so you can implement what you need immediately when you get home.

By the end of the session, you, the captain of your code, will have all the information available to you to chart your course forward with confidence knowing that whatever trials are thrown at you, you will fix them with ease.

319: Coding for Network Performance
Tom Bascom
White Star Software

Are you wondering why your client/server code is so slow? And what you can do about it? This session will discuss the OpenEdge client/server messaging protocol and its impact on the performance of database queries. We will cover coding best practices, tuning opportunities, testing methodologies and present benchmark results!

15:00 501: OpenEdge 12: Multi-threaded Database Server and Server-side Joins
Rich Banville

The OpenEdge team has been working hard on some exciting database innovations that will result in improved performance for all. Come here about the details of how the database is becoming multi-threaded, and also how you will be able to resolve database queries on the Server.

216: Web Development for Dinosaurs: An Introduction to Modern Web Development
John Cleaver
Factivity, Inc.

The Web Development world moves fast. In the time it took you to read this, 3 more javascript frameworks have been invented. Do you feel left behind? This talk will go over the history of web development- how we went from HTML to HTML, CSS, and Javascript to the ecosystem we have today. Well cover some of the tools used in a modern javascript application and how you can get started with a front-end Javascript application.

299: OO Database Modeling - Theory and Practice
Tim Kuehn
TDK Consulting

One of the thorniest problems in OO development is modeling a database's tables, fields, and indexes to support generic data access in an OO-friendly way. In this talk TDK Consulting President Tim Kuehn will discuss some results from his ongoing research into developing an OO-based database access model, implementing that model, and the problems, challenges, and opportunities he uncovered along the way.

504: Case Study: Migrating two applications from HP-UX to Red Hat Linux
Paul Bouscaren
Outlook Park Holdings

When migrating an application from one platform to another, and from Progress v9 to OE11.7, there are a lot of moving pieces to consider. Let's discuss our experiences in this area. I will share how I helped get my client moving down this path and successfully to a conclusion.

16:00 444: Tips and Tricks to be Successful With PAS for OE in Production
Roy Ellis

If you're thinking about embarking on an implementation or migration to PAS for OpenEdge, you don’t want to miss this tips and tricks session that provides the basis for a project plan to help avoid implementation pitfalls.

250: Custom rules development for SonarQube
Gilles Querret
Riverside Software

Ever wondered how you could enforce ABL coding standards in your company ? Or how to detect bad practices in your code ? Then this session will explain how to use SonarQube and its OpenEdge plugin to define your own standards, and report any violation directly in Developer Studio or in the Web UI where trends could be monitored.
Both SonarQube and the OpenEdge plugin are open-source and can be used for free in your company.

590: Index Internals: How the 4GL Uses Indexes
gus bjorklund
parmington foundation

This is the second of a 2-part series on how the index manager works and how it is used. The second part will cover how indexes are used by the OpenEdge 4GL, by OpenEdge SQL and by various database utilities. We will provide many coding examples to illustrate index usage as well as tips for maintenance.

17:00 Wrap Up and Depart!