PUG Challenge

2019 Agenda

After many long days and nights sifting through the largest pile ever of excellent session proposals our selection committee is happy to announce the following sessions and speakers for PUG Challenge Americas 2019!

General Session

  • 101: General Session
    John Ainsworth, Dion Picco, Progress

    The Progress Keynote Session

Programming with the 4GL

  • 224: OpenApi (Swagger) to ABL
    Martyn Kemp, Consultingwerk

    As the popularity of OpenAPI continues to grow, the Code Generation toolset is continually expanding. The OpenAPI Generator is an open source toolset that utilises OpenAPI Definition Documents to generate Server / Client side code. To date, there are a multitude of languages supported within the OpenAPI Generator. However, 'OpenEdge' is not one of those languages, this presentation therefore discusses the potential of generating ABL client-side classes from OpenAPI Definitions.

  • 230: Efficient Indexing
    Dan Foreman, White Star Software

    One of the top causes of poor application performance is poor indexing or not adequately understanding the Progress indexing rules. This session goes into great depth on how to create efficient indexes and how to use existing indexes in an optimal way. Even if you have coded in Progress for several years, we guarantee there will be some new information for you. This session also covers: 4GL (ABL) coding techniques related to indexing, logical scatter factor, how to monitor index efficiency, how to find indexing problems in inherited code, and more.

  • 255: Scope: Blocks, Buffers, Transactions and Locks
    Tom Bascom, White Star Software

    Abstract: The interactions between Blocks, Buffers, Transactions, and Record Locks can sometimes seem arcane and mysterious. But there are actually just a few simple rules that govern these and which control the most fundamental aspects of your applications.

    Perhaps your code is plagued with errors (214), (243), (244) and so forth. Or maybe you frequently suffer from <table> in use by <user> on <device>. Wait or press CTRL-C to stop. (121). Or sudden bi file growth due to long transactions. These are all problems that usually occur because of a mismatch in scopes.

    Even if none of that is a problem for you come to this session to learn (or, for old hands, refresh your memory) about how these concepts work together to deliver scalable and robust solutions that will withstand the tests of time!

  • 296: Everyday Object-Oriented ABL: it can be for you, too.
    Chad Thomson, Progress Software, Inc.

    If you're a procedural-style ABL developer and don't feel you can make use of object-oriented ABL in your existing OpenEdge applications, or that it may be too difficult -- think again! There are several simple things you can introduce in your existing, everyday ABL development that will improve your applications, and make your development life easier. Join this session and you will explore some of the benefits of OOP ABL, including what is already available to you, how you can take advantage of it with minimal effort, and how to start down the path of creating your own object-oriented ABL software.

  • 303: Finding the right data right away
    Mike Lonski, Allegro Consultants, LTD

    Do you find the data you need with nothing extra, quickly and efficiently, every time you write a query? Knowing the ins and outs of the DB engine index rules seems simple, yet it can take a lifetime to truly master. This vital session starts with an in-depth discussion of how and why the DB engine chooses an index and continues with many surprising examples of why you may not get what you expect. Learn when do create an index, when *not* to create one, and many examples of getting what you expect or getting results that will astound you.

  • 340: Patterns for Migrating Fat Client GUI Applications to N-Tier, Web Applications
    Mike Fechner, Consultingwerk

    Got that old ABL fat client GUI or TTY application? Considering moving to an n-tier architecture? Browser based, mobile or OpenEdge Web Client? In this presentation we’ll introduce patterns for solving common challenges like application state, record validation, transactions, input blocking and achieving reusable backend components.

  • 376: REST API Documentation using Swagger
    Martyn Kemp, Consultingwerk

    Swagger now commonly known as the OpenAPI specification is a powerful definition format for describing and creating RESTful API's, which are easy to understand, readable and language agnostic. One of the major benefits is that we are able to provide a clear and precise definition, ultimately assisting in the consumption and ease of developing from the specified API's, in addition, we also have access to a multitude of tools for generating documentation, code generation, testing tools.

  • 393: Mocking for Unit Testing
    Mike Fechner, Consultingwerk

    Writing unit tests isn’t that hard … it’s designing code that is unit-testable that is hard. Unit tests should be repeatable at any time and not be dependent on any (or at least too complex) pre-conditions. Unit testing is the permanent fight against dependencies. For the typical ABL application, those dependencies may exist in the form of application code that is executed from the unit that is to be tested, database contents, configuration data, operating system calls, web service calls, user input, etc..

    In this presentation we’ll dig into the challenges of dealing with dependencies while unit testing and how they can be mocked – in other words replaced with a simulation. We will also explain why unit testing typically calls for object-oriented programming – but we’ll also demonstrate some techniques that can be applied with procedural code.

  • 439: Schema:FILL(): Using Prodatasets to Read the Schema
    Tim Kuehn, TDK Consulting Services Inc

    In this session Tim outline how Progress stores the schema data for its tables, fields, and indexes. Next Tim will demonstrate how this structured can be modeled using prodataset technology, and conclude with a demo load of a db's schema with a single FILL() statement.

  • 495: Domain-driven Design for ABL
    Mike Fechner, Consultingwerk

    Domain-driven design (DDD) is an approach to software-design and development that puts a model based on the real world (the business domain) into the center and not necessarily technical design aspects such as an existing relational database model. DDD is widely applied to object-oriented software design.

    This presentation introduces common DDD terms like bounded context, entity, factory and value-object and demonstrates an example OOABL application that has been developed using the DDD approach. The sample application will be put into the context of the OpenEdge reference architecture and the Common Component Specification. Finally, this presentation also discusses common implementation challenges when implementing DDD using the ABL.

  • 498: Application Modernization via Augmentation: Improve, Don't Replace!
    Jeff Ledbetter, Roundtable Software

    Many of you have built proven production systems based on "legacy" frameworks and are now faced with the challenge of application modernization. Modernizing your application does not always have to mean throwing away years of work and bug-free business logic. If your application has served you well, why toss it and start over? Designing a service interface layer provides flexibility that allows you to extend your application access to ABL, WebHandlers, and Open Clients, and other REST APIs. In this presentation, I will share how we created an integration layer in front of our core back-end which enabled us to keep our transaction validation logic in place as well as continue using a tested and working mechanism for CRUD operations.

  • 571: Blocks and Scopes - Understanding the foundations of good code
    Mike Lonski, Allegro Consultants, LTD

    All Progress programmers quickly hear phrases such as "record scope", "transaction block", and "bleeding lock" but how many truly know what they mean? Programs that worked fine for years can develop unexpected problems after simple changes. Attend this session to be sure you know the best ways to make records and transactions behave exactly as you wish. Come refocus on these core concepts in Progress 4GL code.

Reporting/Business Intelligence

  • 552: A Holistic View of OpenEdge Pro2
    Raghu Rangan, Progress Software

    OpenEdge Pro2 Replication Suite is the easiest and most cost-effective approach for replicating OpenEdge databases to MS SQL Server, Oracle or another OpenEdge database for easy BI and Analytics. It removes connectivity limitations without disruption to normal business operations or risk to the transactional database. Pro2 provides maximum flexibility and excellent performance since the solution is totally native to OpenEdge. This presentation will show you the vital features that got delivered in recent releases.

    What are you waiting for? Attend this session and get an overview of Pro2 replication architecture and its ultra-cool features.

The Database

  • 302: Leveraging ProTop in Your Dev, Test and Production Environments
    Paul Koufalis, White Star Software

    Note: this is NOT a commercial session. For the ProTop paid features, I will invite people to come to our commercial presentation.

    ProTop is a powerful tool that should be in every OpenEdge expert's arsenal. As a developer, DBA or OpenEdge support professional, you need actionable insight into real time database and application activity. The free ProTop database monitor sorts, filters and groups realtime VST data into insightful analysis screens that help you debug complex issues and optimize the performance of your databases and application.

    Through numerous live demonstrations, you will learn how to quickly and easily diagnose, troubleshoot and correct a wide range of problems that plague your OpenEdge environment. Come see why this free tool is an absolutely essential part of your OpenEdge arsenal.

  • 318: Index Maintenance Utilities Tips and Tricks
    Paul Koufalis, White Star Software

    This session is proposed as both a 3-hour workshop and a 1-hour session.

    Do your indexes need a little love and attention? If your answer is "Uhh...maybe?" then this hands-on DBA workshop is for you.

    We will explore the various index utilities (idxbuild, idxcompact, idxfix, idxactivate, etc...) and discuss when and how to use each utility to improve query performance or troubleshoot and correct index-related issues. We will also benchmark the various startup parameters to determine which optimal values should be used under various operating conditions.

    Overall, expect to walk out of this workshop knowing more than you ever thought possible about indexes and their maintenance.

  • 327: Database Dump/Load Performance Benchmark
    Nectarios Daloglou, White Star Software

    As a DBA, you may have had to dump/load in order to migrate to a different platform, convert to Type 2 storage areas, repair corruption or to simply recover some space. No matter the reason, you know there is an outage required and maximizing dump/load performance is key to minimizing downtime. In this session, we will look at dump/load test results in various configuration scenarios and how well they performed on some real production databases, with the goal of providing some recommendations which may help you speed up your next dump/load activity.

  • 338: How to quickly reduce the haystack
    Adam Backman, White Star Software

    Finding the source of your trouble is like trying to find a needle in a haystack. As I age, I find that I can't find the needle at all with my aging eyes. The same holds true for finding the source of problems in your environment. Sometimes a small issue has large ramifications for the efficient running of your business. The problem is complex for many reasons. First, each stakeholder will blame some other portion of the system. Next, you need to narrow down the potential culprits. To do this you need to first look at the big picture and then you need the ability to drill down. This talk will take you through the process of looking at an issue, determining the general area of concern and then drilling down into the specifics. We will look at a system issue, a coding issue and something else to show the best ways to narrow down the scope of your issue using promon, ProTop, system tools and virtual system tables among others. This presentation will provide the basics of choosing the right utility and determining the source of the problem rather than trying to solve a particular issue

  • 357: What is "Latch Contention" and why should I care?
    Tom Bascom, White Star Software LLC

    Come to this session to learn what a latch is, how it enables reliable and highly concurrent access to your database and why you should be wary of "too many cores"!

  • 369: OpenEdge Database Administration Best Practices
    Tom Bascom, White Star Software

    Whether you have a single 10 user system or a horde of large systems with thousands of users come to this session to gather the latest tips and techniques for keeping your databases up and running, your users happy, your boss smiling, and your nights and weekends worry free!

  • 396: The Ultimate Guide to OpenEdge Replication
    Paul Koufalis, White Star Software

    OpenEdge Replication is a great product that does exactly what it's supposed to do, but there are plenty of important details that you cannot learn by reading the manual. Come to this session to learn best practices and all the sneaky little tricks and tips you'll need to successfully deploy, monitor and maintain OE Replication.

  • 427: All types of data replication in OE
    Dmitri Levin, alphabroder

    In this presentation we will discuss three types of data replication: the old one After-Image replication, Open Edge 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 to know 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 in slides are from our 1.5 TB database.

  • 431: Lions and tigers and bears, Oh My!
    Adam Backman, White Star Software

    For all the talk of the risks to your data there are a few basic things you need to create a good working recovery plan. First, you need to focus on recovery and then you need to know who to include in the process, what you need to protect, the potential risk of each possible disaster and how much each disaster may cost your business. By determining the value of the data and the the cost to replace it if it is at all possible, you can build the correct size and cost recovery plan for your unique circumstances. This talk will focus on the business planning portion of recovery planning. While there will be discussion of specific technology components of the plan the focus will be on the who, what where, when and why of recovery planning.

  • 466: New Hardware = Worse Performance?
    Nectarios Daloglou, White Star Software

    Youve migrated to bigger stronger faster and more expensive hardware but your OpenEdge environment is running slower. How is that even possible? In this session, we will look at some real-life case scenarios where performance results were actually worse on the new machine than the older one, how we tested and what corrections were needed in order to achieve better performance. Also, things to look out for when purchasing new hardware or migrating to the cloud.

  • 467: CRC, Not as Scary as You Think
    Dan Mitchell & Susan Houniet, Progress Software

    Halloween in New Hampshire is scary. Making online database changes can be even scarier! What triggers a CRC? Which changes take effect immediately and which ones need to be activated? What changes can I make online today and tomorrow? And most importantly, are they safe? Join Dan Mitchell and Susan Houniet as they walk you through current and future online database changes and how you can make them without the horrifying "CRC ERROR"!

  • 472: Making good checklists
    Adam Backman, White Star Software

    Every good recovery plan will have checklists. From simple procedures to complex tasks a well written checklist is worth its weight in gold. Checklists are used in many different fields and everyone thinks they know how to make them and use them. This presentation will cover in detail different types of checklists and the importance of the small details. These details will determine the difference between the process being done right the first time or failure and lost time and effort. By following a simple process your checklists will be clearer and easier to follow.

  • 521: Progress and Oracle in the world of other databases
    Dmitri Levin, Alphabroder

    We will compare Oracle and Progress as it is seen by DBA. We will review startup, shutdown, parameters, background processes, backup, etc. There are more similarities than differences. We will also do a brief review of all types of databases, SQL and non-SQL to see where RDBMS fits in.

3rd Party Integration

  • 218: How to walk your JSON data into OpenEdge
    Paul Guggenheim, Paul Guggenheim & Associates, Inc.

    OpenEdge provides many useful tools in parsing JSON data. These include:

    Read/Write JSON to/from Temp-Tables and ProDataSets
    Built-in JSON classes that support the JavaScript Object Model

    This presentation will show how easy it is to write JSON data from a ProDataSet and then read JSON data into a ProDataSet.

    However, there are times when the ABL algorithm will not be able to read JSON into a Temp-Table or ProDataSet. The read-json method will not load the JSON data into a ProDataSet.

    This session will provide examples on how to use ABL JSON classes to load in JSON data in a more generalized way, which can then be customized and loaded into Temp-Tables or ProDataSets. We call this Walking the JSON tree.

    Topics Covered:

    JSON Overview
    oJson Data types
    Simple Data Types
    Complex Data Types

    Reading and Writing JSON to/From Temp-tables and ProdataSets
    oUse Read-JSON() method to load data into a Static ProDataSet
    oUse Read-JSON() method to load data into a Dynamic ProDataSet
    oShow how to use Write-JSON() method to a JSON String, JSONObject or JSONArray

    Use Built-in JSON classes to convert into customized ProDataSets
    oUsing RequestBuilder and ClientBuider Objects to read PASOE statistics
    oUsing the Credentials Object to authenticate a login
    oWalk the JSON Tree Examples

    At the end of this presentation, the attendee will have a much better understanding on how to pass data back and forth from an external JSON application and an OpenEdge application.

    This presentation is for experienced OpenEdge Developers.

  • 479: Blockchain Technology: Fad or Forecast?
    Michael Solomon, Solomon Consulting Inc.

    By now, pretty much everyone knows something about blockchain technology. It makes Bitcoin possible and is supposed to change how commerce works. But there's more to it than just that. Blockchain isn't just the latest techno-fad. It will likely be a big part of IT's future. In this session, we'll talk about what blockchain really is, how is relates to what you probably already know, and why it is such a big deal. We'll cover some use cases where blockchain shines and how you could integrate blockchain with OpenEdge environments. After attending this session, you'll have a clearer picture of how blockchain could fit into your organization and where it makes sense.

Complementary Technologies

  • 210: Reduce Downtime with Progress Application Server for OpenEdge HealthScanner
    David Cleary, Progress

    New in OpenEdge 12.0, the PAS for OpenEdge HealthScanner will monitor your server health, allowing you to address issues before your customers notice. Like the check engine light in your car, the HealthScanner will monitor a number of different probes and assign a health score based on their data. This health score can be used to remove servers from service before they fail and bring replacements up with no interruption of service. We will explore the HealthScanner and show how you can use it to keep your customers happy.

  • 215: Doing More With the Spring Framework in Progress Application Server for OpenEdge
    Chad Thomson, Progress Software, Inc.

    One of the strengths of Progress Application Server for OpenEdge (PASOE) is that it leverages the best-of-breed Spring Security framework. But security isn't the only thing that Spring offers. In this session, you will learn that, with minimal effort, there is a great deal more you can leverage within the Spring framework that can accelerate your own development needs and unlock more value as you adopt PASOE.

  • 326: OpenEdge Applications on AWS Public Cloud
    Oleg Kupershmidt, Peter Buonora, Amazon

    In this joint session co-presented by Progress and AWS we will share with you our experiences helping real customers move their OpenEdge applications to run on AWS public cloud. We will cover cloud resources provisioning, securing, monitoring, disaster recovery and more. The session will conclude with some insights into ongoing research by Progress and AWS aiming to advance your ability to benefit from running OpenEdge in public cloud.

  • 328: Continuous Integration and Automation with Roundtable TSMS and Jenkins?
    Thomas Hansen, nodeable limited


    Thomas Hansen, Director - nodeable
    Jeff Ledbetter, Roundtable Product Architect Roundtable Software

    Current Roundtable users and anyone interested in learning about continuous integration techniques

    Find out how many of the SCM processes in Roundtable can now be automated with the use of a set if secure REST APIs and advanced Jenkins pipelines that wrapper the existing APIs and proxies. In this session, we will discuss continuous integration tools, strategies, and how Roundtable TSMS can be extended beyond its normal scope while adding extra layers of auditability, security and opening up for integration with other tools and technologies.

  • 441: Introduction to GIT
    Gilles Querret, Riverside Software

    When it comes to version control systems, Git is now absolutely everywhere. But why did Git become so popular? This session will answer this question, first by introducing the concepts of Git, then by providing examples of Git daily usage. No need to be an expert in any other VCS, but you'll definitely know a lot more about Git after having attended this session!

  • 462: SonarQube in Action
    Gilles Querret, Riverside Software

    Wondering what source code analysis could provide to your team? This session will first explain you the basic concepts of code analysis and technical debt, and will then introduce the open-source version of the OpenEdge plugin for SonarQube, and the best practices when configuring this kind of tool on small or large projects. Whether you are new to code analysis or have already used it, you'll learn a lot on what can be analysed from ABL code!

  • 477: DevOps with OpenEdge
    Thomas Hansen, nodeable limited

    DevOps, CI/CD, Automation, pipelines, Infrastructure as Code - what do all these buzz words mean? And how do they apply to OpenEdge shops?

    An introduction level presentation on the concepts of DevOps and why this is important for OpenEdge and beyond.

    In addition to the basic concepts of DevOps and CI/CD, we will cover topics like:
    Jenkins and other DevOps tools
    Build services
    Pipelines : Homegrown vs cloud based
    Using containers for DevOps

    Takeaways from this presentation will be a basic understanding of what DevOps is and why it matters to your OpenEdge team.

  • 499: Wireless Networking A Modern Primer
    Bob Brennan,

    Wireless networking is now considered a modern day business requirement. In this session we will review the existing standards and those about to gain traction like 5G adoption. We will discuss how this medium operates and some best practices in terms of configuration and deployment. It is very easy to setup a network these days. It is quite a bit harder to setup a durable, high speed network that integrates into the surrounding environment. We will demonstrate a number of modern devices used to design, deploy and support business quality networks. No matter how good you code, if the network is bad, so is your product.

  • 520: Pen Testing for OpenEdge Environments - How Penetration Testing techniques can help secure your OpenEdge environment
    Michael Solomon, Solomon Consulting Inc.

    Organizations of all sizes are choosing, or are required, to leverage penetration testing and Red Teams to validate their cyber attack readiness. A Red Team is similar to a penetration tester, but isn't really focused on finding a range of vulnerabilities. The team "wins" if it finds just one way to break in. Red Team games and penetration testing can both evaluate how well your organization can detect, resist, respond, and recover from today's cyber attacks. In this session you'll learn how to set up penetration tests and form your own Red Team, and you'll see demos of some of the techniques used to compromise an insecure OpenEdge environment.

  • 534: SQL for an OpenEdge DBA
    Bob Brennan, Integrated Manufacturing Inc

    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
    - Best Practices Discussion

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

Development Tools

  • 320: 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 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.

  • 496: Eliminate Dead Code (and More) Using Automated Call Graph Analysis
    Greg Shah, Golden Code Development

    Large applications build up substantial amounts of dead code over the decades in which they are developed. Dead code commonly comprises between 25% and 40% of a mature application's source code.

    Eliminating dead code reduces the future effort needed to enhance and maintain the application. When dead code is mixed together with a larger application, all efforts to analyze, enhance, rework and refactor the code must consider that code. This is unnecessary effort at best. In a worse case, the result can be more complicated code when changes are modified in order to match requirements from that dead code.

    Using automation for process the call graph is the only practical way to do this for large projects. The FWD open source technology provides an automated call-graph analyzer that allows one to create and explore the call graph for the entire application. One common usage is to drop dead code out of a project. Being able to explore the call graph is invaluable in a refactoring or modernization project, because some questions can only be answered by knowing what code can call a particular target entry point. The call graph is visualized and explored using a web interface.

    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.

  • 511: Modernize ABL Source Code Using Fully Automated Transformation
    Greg Shah, Golden Code Development

    Modernization is hard. Many companies want to separate user interface from business logic so that a modern UI can be built. This is very time consuming. On large projects with thousands of files, it will take many years of effort to achieve any substantial percentage of the code successfully refactored. Organizations are finding that manual refactoring of a non-trivial application is impractical. Don't despair! The answer is automation.

    FWD Transform is an open source toolkit that allows anyone to analyze and transform ABL source code into better, modernized ABL source code. This is based on the same proven FWD technology that has been used for fully automated conversion of entire ABL applications into Java based drop-in replacements. However, in this case there is no conversion to Java. The resulting transformed code is anti-parsed into ABL source code and can be executed in OpenEdge.

    Although there are other tools that provide a limited "starting point" for a modernization project, these do not really address the problem. The core effort will still take too many years to be practical. FWD Transform is the only technology that provides a fully automated solution. It enables the transformation of entire applications, no matter the size. The technology on which it is built has been used on projects well over 10 million lines of code. There is no practical limit on the size of projects which can be handled.

    Multiple example transformations will be shown, including a preview of fully automated separation of user interface from business logic resulting in an API for the existing code.

    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.


  • 213: Workshop: Implementing and Securing OpenEdge REST Service Interfaces
    David Atkins, Dan Mitchell, Progress

    This hands-on workshop provides step-by-step guidance on how to create:
    - Low-code/no-code Data Object Services
    Exposing JSON catalogs files, exposing database data directly, and delegating to existing ABL logic for validation and data access
    - Flexible JSON-defined DataObjectHandler Service Interfaces
    Providing a high degree of control over the exposed REST API without deep ABL expertise needed
    - Maximum control ABL WebHandler Service Interfaces showing how to write ABL code to read/write the body, headers and parameters of inbound REST requests to map that data to/from ABL data types and to invoke appropriate existing ABL data access logic
    -Property-based Spring Security
    Configuring for authentication and authorization of users to access these REST APIs

  • 379: Workshop: Index Maintenance Utilities Tips and Tricks
    Paul Koufalis, White Star Software

    Do your indexes need a little love and attention? If your answer is "Uhh...maybe?" then this hands-on DBA workshop is for you.

    We will explore the various index utilities (idxbuild, idxcompact, idxfix, idxactivate, etc...) and discuss when and how to use each utility to improve query performance or troubleshoot and correct index-related issues. We will also benchmark the various startup parameters to determine which optimal values should be used under various operating conditions.

    Overall, expect to walk out of this workshop knowing more than you ever thought possible about indexes and their maintenance.

  • 488: Workshop: Introduction to Docker Containers
    Thomas Hansen, nodeable limited

    Morning Outline:
    Introduction to Docker
    Getting setup up with server access and Docker (hands on)
    Docker basics
    - Images, volumes, networking, containers
    - Hands on exercises
    Introduction to Docker Compose
    Using Docker Compose recipes for fast container stacks

  • 489: Workshop: Docker Containers for OpenEdge
    Thomas Hansen, nodeable

    Introduction to OpenEdge and Docker
    Databases and PASOE in containers getting started (hands on)
    Introduction to Kubernetes
    OpenEdge on Kubernetes anyone? (hands on)
    Wrapping up and next steps
    - Use cases
    - Tools
    - DevOps & CI/CD with Docker and OpenEdge
    - Docker and OpenEdge in the Cloud

  • 501: Workshop: OOABL Patterns and Practises for OpenEdge
    Mike Fechner, Peter Judge, Consultingwerk

  • 507: Workshop: Getting Started With OpenEdge, DBA Basics
    Tom Bascom, White Star Software LLC

    People often ask what tasks a newly minted OpenEdge DBA should be performing? What should my daily, weekly, monthly etc checklist have on it? What's good? What's BAD? Where do I even look to find out? What do I need to pay attention to? What can I ignore? What should I lose sleep over? When should I update my resume? Who can help me? In this hands-on workshop we will show you the way through the challenges that lie in front of you and help bring peace to your weekends and evenings!

  • 523: Workshop: Tips & Tricks for Success with Progress Application Server for OpenEdge, Including 12.0!
    Roy Ellis, Peter Judge, Progress

    Progress Application Server for OpenEdge is an enterprise-class application server that connects your application business logic to a variety of client technologies in a highly-efficient and scalable way. In this workshop, we will introduce tips and tricks, with hands-on examples using the latest features in OpenEdge 12.0 to help you be successful with PASOE.

Roadmaps and Info Exchanges

  • 225: The OpenEdge Roadmap
    Oleg Kupershmidt, Progress

    Technology continues to change at a rapid pace, and OpenEdge is changing in response. Learn about the market trends that are shaping the future of business applications, and how Progress is planning to address these trends with new capabilities supporting continuous operations, continuous integration and deployment, availability, performance, scalability and more.

  • 402: Powerful. Available. Exceptional: OpenEdge 12.x
    Rodney Sassaman, Progress

    OpenEdge 12 is packed with new features and enhancements that help developers to meet the escalating demands for performance and scale, continuous operations, agile development and deployment, and advanced security.

  • 482: Customer Validation Program - Together We Win!
    Rob Straight, Progress Software

    If new features are something that you both care about and want to influence, this is the session for you!

    Since mid-2018, the Customer Validation Program (CVP) has been engaging with our ecosystem to gain feedback and to allow for course-corrections as early in the new feature development process as possible. Ultimately the goal is to ensure that Progress is building the features that meet your needs.

    Come learn what the program has to offer, the results we have achieved in the last year, where we see it going over the next year, and how you can get involved. Working together, our ability to deliver quality features that meet your business and technical needs is greatly enhanced!

  • 542: Let's Talk: Five 9's
    Tim Sargent, Raghu Rangan, Progress

    Reaching the five nines threshold of high availability is challenging, but Progress is committed to helping you achieve it. In this session we will review enhancements recently delivered and currently planned in the OpenEdge 12.x series followed by an open mic discussion where you can share what uptime issues plague you most. Moderated by the OpenEdge team, this open discussion provides you with the opportunity to influence the OpenEdge product roadmap features that will help to keep your apps up and running.

  • 558: Privacy, Confidentiality, and Security. (What's the difference?)
    Michael Solomon, Solomon Consulting Inc.

    What is the difference between privacy and security? And why do we really care? Today's compliance regulations, including GDPR, often mention both privacy and confidentiality (and security), but then blur the distinction between the different concepts. In this session we will unpack the real definitions of each term, and learn how to implement controls in real systems to satisfy each goal. Perhaps more importantly, we'll discuss how to interact with regulators and auditors in an intelligent dialog to justify the need for individual controls deployed in your application.

  • 567: Lets Talk Application Performance
    Tim Sargent, Raghu Rangan, Progress

    You want your application to run more efficiently and respond more quickly. In this session, youll learn about the collaborative work Progress has been doing with some of you, how we are approaching the problem of ABL Application Performance, and how you can get in on the fun. You will hear about updates to existing tools and what new tools we are using to get a handle on improving application performance.

  • 577: Route 66 to OpenEdge 12
    Susan Houniet, Progress

    Get your learners' permit as we map out your best business route to get to the reliable, hyper-performant, and sleek model OpenEdge 12. Gain an understanding of the various license models to understand which model maps best to your business, bundled offerings to save you money, upgrade paths and more. Understanding the “rules of the road” is the best way to get to where you need to go in this "new world". Learn all the tricks to keep your wheels on the ground and the wind in your hair and make your journey a smooth one.

  • 216: Application Modernization Case Study
    Alex Oliveri, Havard Danielson, Curtis Schroer, Progress and Precision Strip

    What does it mean to modernize an application? The term modernize can take on many different meanings. This session will explore the modernization journey for a legacy ADM2 GUI and WebSpeed application to a modern, responsive web implementation. This includes an effective, thoughtful roadmap, creating engaging UI, building an effective API strategy, and refactoring existing business logic. The result is a browser-based user experience driven by Kendo UI and Angular using Progress Application Server for OpenEdge and OpenEdge APIs. This includes an-indepth look at how existing business logic was refactored to drive those APIs. Topics include:
    Project Planning
    UX Design
    Building framework to support development
    Repeatable Patterns
    URL Strategy
    UI Development
    Refactor Business Logic

  • 254: Beautiful Native Mobile Apps with NativeScript and OpenEdge
    Edsel Garcia, Progress

    In this session, you will learn how to use the new DataSource component to access the OpenEdge backend. Internally, the DataSource uses the Progress JavaScript Data Object (JSDO) so that your mobile apps can use the same Progress Data Service used in OpenEdge applications. We will use a starter template based on NativeScript with Angular, and show CRUD operations, and server-side filtering and sorting with a table on the OpenEdge database.

  • 331: Implementing Custom REST API with ABL WebHandler
    David Atkins, Chris Riddell, Progress and SIT

    Join us in this session for a high-level introduction and overview of WebHandler as a best practice approach to custom OpenEdge REST APIs. Chris Riddell from SIT will discuss his real-world API design and implementation experiences, describe SITs approach, what they learned, and their recommendations to others on the same API modernization journey.

  • 364: Progress System Tables
    Dan Foreman, White Star Software

    Virtual System Tables offer a very flexible and powerful way of monitoring Progress databases activity, record locking, user I/O, and more for both local and remote databases. Unfortunately the lack of adequate documentation makes it difficult to do serious work with VSTs. This session covers what you won't find in the Progress documentation such as performance issues with VSTs, undocumented VST characteristics, the VST Schema, and how VSTs work.
    There are other tables in the Progress Database that are not virtual and serve a variety of functions such as the MetaSchema, Query Optimizer, SQL permissions, and much more. This session will also give an overview of these tables and show how they can be useful to developers and database administrators.

  • 377: Moving to OpenEdge 12: Lessons Learned and Best Practices
    Edsel Garcia, Shelley Chase, Progress

    Come and learn from Progress early adopter success team about lessons learned helping customers move they deployments to OpenEdge 12.0

  • 385: Deploying Applications with the Docker Container for Progress Application Server for OpenEdge
    Roy Ellis, Progress

    Docker Containers provide a convenient way to package and deploy applications in a repeatable manner. In this session, you will learn how to use the new Docker Container for the Progress Application Server for OpenEdge to package a Progress Data Service and deploy to a Kubernetes environment. We will also take a look at how to manage log files using Elasticsearch, Fluent Bit and Kibana.

  • 398: Data Integration: The REST of the Story
    Tony Lavinio, Progress

    Progress Autonomous REST Connector is an intelligent, customizable data connectivity solution enabling businesses to build and deploy enterprise-grade data connectors in minutes without coding. Customers are leveraging this new technology to translate API data into a format that can be accessed in real-time from any SQL-based BI/analytics tool. This session illustrates a step-by-step process to use Autonomous REST Connector to connect ANY application to any REST API--most notably OpenEdge data exposed via the Rest services.

  • 405: Beyond the Code: Profile and Monitor Your Application in Progress Application Server for OpenEdge
    Peter Judge, Progress

    The high performing PASOE has proven to be an excellent tool for locating loose coding practices. Learn how to observe particular metrics during code execution and how to automatically track and graph results for easier consumption. As part of the results interpretation, we'll explore how various PASOE options can affect system resources in both on-premises and hosted environments. Topics include:

    Defining the role of OpenEdge Manager
    How to locate possible memory leaks
    How to use test results to properly size resources, such as memory

  • 410: Modernizing OpenEdge for the Web with Sitefinity
    Brendan Cameron, Americaneagle.com

    In this session, Progress and Americaneagle.com discuss how your Sitefinity content management solution can enable your OpenEdge applications on the web. Attendees will see how to reap all benefits of OpenEdge to create an online experience that not only looks professional and integrates with Sitefinity, but also delivers successful results. They will discuss the technical requirements for both platforms, as well as talk about real-world examples where this integration is already happening. A portion of the presentation will also be dedicated to showcasing a prototype/accelerator that can be used to connect a Sitefinity CMS instance to an OpenEdge API.

  • 430: Beyond the Code: Implementing DevOps and CI/CD Techniques for Cloud Apps
    Edsel Garcia, Progress

    "Continuous Integration/Continuous Delivery (CI/CD) is an automated process where code is merged, built, quality tested and published with the ability to deploy. Continuous Deployment (CD) is the ability to automatically deploy to a production environment. In this session, we will discuss how CI/CD can be applied in the OpenEdge environment. We'll explore standard CI/CD practices that ease software delivery and help to achieve high availability. Topics include:
    - An explanation of pipeline tools, including GitHub, Ant, Ansible and TeamCity
    - How to introduce a pipeline into your organization
    - Best practices for versioning
    - Utilization of containerization in the OpenEdge environment"

  • 468: Downtime is Money: Reduce Application Maintenance Downtime with PAS for OpenEdge
    David Cleary, Progress

    Updating your application is a business requirement, whether it is patching bugs or releasing new features. In the past, this was done during maintenance windows late at night or on the weekend, to try an eliminate any downtime for your customers. The latest PAS for Openedge has a number of new features that will allow you to update your application with no downtime for your customers. See how PAS for OpenEdge can help you perform application maintenance during regular business hours without your customers noticing. See also related workshop.

  • 483: Master of Parameters
    Dan Foreman, White Star Software

    Startup parameters might sound like a boring topic but our goal is to make this presentation very interesting and useful. We will discuss a wide range of OpenEdge startup parameters for client connections, the database, AppServers, OpenEdge utilities, and more. Some of the already-documented parameters need additional clarification. Many useful parameters are totally undocumented. A number of parameters could even be called dangerous! But all parameters discussed in this session are valuable and worthy of being added to your personal knowledgebase.

  • 516: Beyond the Code: Defining and Packaging ABL Services for Progress Application Server for OpenEdge
    Peter Judge, Progress

    Learn how to build ABL Services with the intention of deploying packages to the Progress Application Server for OpenEdge. In this session, we'll share foundations for a solid, yet extensible application architecture, an exploration of various deployment packages, and best practices for API definitions and versioning.

  • 666: See How the Managed Database Service Can Help You Run Lean
    Mike Furgal, Progress

    More and more people are re-evaluating their OpenEdge deployments. Is the cloud the right place to go? Should I stay on-premises? Do I have the experience and resources to operate in a highly available application environment? The Progress Managed Database Admin (MDBA) Service can help answer these questions and more. The service continues to grow year-over-year. Come see what other customers are doing, what benefit they see, and how they are saving operational costs. Whether you are an Application Partner, an End USer of a Partner, or a Direct End User of OpenEdge, this service can help cut costs and increase performance, reliability, and availability of your OpenEdge application.

  • Commercial

    • 275: OpenEdge Legacy Application Modernization – A Foundational 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 provide the solid foundation in building your web development and deployment infrastructure.

    • 321: Twenty years with OpenEdge and still going strong!
      Mike Main, CyberScience

      With powerful new functionality, Cyberquery remains the most compelling BI solution for OpenEdge. Thousands of OE users depend on Cyberquery every day for insight into their data. Come see what you are missing.

    • 378: Your Current Monitoring is Not Enough: the Business Benefits of Proactive Monitoring with ProTop
      Paul Koufalis, White Star Software LLC

      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.

    • 386: A Better 4GL: Web UI, Reporting Engine, Direct Java Access and Much More
      Greg Shah, Golden Code

      The FWD Project (pronounced, "forward") is an independently developed, open source implementation of the 4GL language. It features a Java-based engine that replaces OpenEdge. This executes 4GL applications using a compatibility framework which ensures that it replaces the functionality of OpenEdge, while not using OpenEdge in any way.

      More importantly, FWD is an enhanced implementation of the Progress 4GL language. In addition to the compatible implementation of 4GL language features, FWD includes a large number of enhancements that are not available in OpenEdge. This session will explore these powerful improvements to the 4GL language that you love.

      Entire GUI applications (including ADM/ADM2) can be executed with complete fidelity as WEB applications. 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 implementations of familiar 4GL widgets such as BROWSE have been enhanced to include upgraded features such as user-defined sorting, filtering, export to PDF/XLS/CSV. New 4GL widgets have been added such as TREEVIEW, TAB-SET and HTML-BROWSER. Other unique UI features are provided such as dynamic layout of screens and fully customizable themes/drawing control over every widget. This allows one to move past the legacy Windows Desktop approach and achieve a modern UI without leaving the 4GL language and without discarding existing 4GL screens!

      FWD includes an integrated reporting engine (based on JasperReports). Design reports as .jrxml files, use 4GL syntax enhancements, attach queries and ProDataSets as data sources, then generate PDF, XLS, DOC and other outputs directly from 4GL code!

      4GL code can be written to run on multiple threads (very useful for batch systems). Any Java technology can be called/integrated directly from 4GL code. Directly call 4GL appserver code from a Javascript client, with parameters automatically converted to/from JSON.

      FWD is the most strategic platform on which to continue your 4GL application investment.

    • 391: Roundtable TSMS 12 Tips, Tricks, and What's New
      Jeff Ledbetter, Roundtable Software

      Roundtable TSMS 12 is available from Progress Software for OpenEdge development environments 11.0 and higher. Are you taking advantage of the latest features and improvements? Do you know how to use Labs? Do you have the Backup feature enabled? Have see the Smart Compilation improvements? If you want to learn about these features and more, or are just investigating your SCM options for OpenEdge development, then this is the session for you.

    • 397: SmartComponent Library The OpenEdge Modernization Framework
      Mike Fechner, Consultingwerk Software Services Ltd.

      The SmartComponent Library is the developer framework designed to modernize existing OpenEdge applications using technologies such as OpenEdge GUI for .NET, Angular web applications, Kendo UI, mobile devices, RESTful clients, OpenEdge BPM and Progress Corticon. It is the foundation for new projects in the cloud and on-premises. In this session, we will demonstrate how the SmartComponent Library complements the OpenEdge developer experience and how the tooling simplifies the development of state of the art Angular web frontends, NativeScript based mobile app and desktop applications all onto a single future-proof OpenEdge backend.