Tech Articles


Hermes: an autonomous agent connected to PowerBuilder


Hermes: an autonomous agent connected to PowerBuilder

A technical demo where AI does more than converse: it observes the current DataWindow, selects tools, executes real PowerBuilder operations, evaluates their results, and decides what to do next.

Hermes demonstrates the difference between a chatbot and an agent: the model retains context, reasons about a goal, selects a capability published by PowerBuilder, receives the actual execution result, and can chain new decisions until the request is complete.

Introduction

Enterprise applications developed with PowerBuilder concentrate business processes, rules, and large volumes of information that are normally accessed through predefined screens and commands. Adding an artificial intelligence agent introduces a new interaction layer: the user describes the desired outcome in natural language, and the agent translates that intent into a controlled sequence of operations performed by the application.

This demo introduces Hermes, an agent connected to PowerBuilder 2025 R2 through Ollama and the minimax-m3:cloud model. Its purpose is not to replace existing application logic, but to use it: Hermes obtains report context, selects tools published by PowerBuilder, evaluates each response, and decides what to do next. A single request can therefore generate a DataWindow, apply filters or conditional formatting, calculate indicators, produce an executive summary, export the result, and prepare an email while preserving human confirmation before it is sent.

Read more

PowerBuilder 2025 R2 AES-GCM: Native Authenticated Encryption and Tamper Detection


PowerBuilder 2025 R2 AES-GCM: Native Authenticated Encryption and Tamper Detection

A technical demo of the new cryptographic capabilities in PowerBuilder 2025 R2 using CrypterObjectCoderObject, AES-256-GCM, hexadecimal payloads, and Auth Tag validation.

 

Introduction

PowerBuilder 2025 R2 introduces a major security improvement for business applications: native support for modern cryptographic operations through CrypterObject and CoderObject. This demo project focuses on one of the most relevant additions for enterprise systems: AES-GCM authenticated encryption.

AES-GCM is not just encryption. It is authenticated encryption, meaning the receiver can detect whether the encrypted payload was altered after it left the sender. For payment files, tax documents, ERP messages, API payloads, banking instructions, and any sensitive JSON exchange, this changes the security model: confidentiality and integrity are handled as one operation.

This article uses the demo project Demo_AES-GCM_pb, implemented in the window w_demo_security.srw. The user encrypts a fiscal JSON payload, transmits it as hexadecimal text, simulates reception, and then intentionally modifies one character to prove that tampering is rejected.
Read more

PyPb in Action: PowerBuilder and Python Building Executive Sales Charts


PyPb in Action: PowerBuilder and Python Building Executive Sales Charts

A technical demo of direct integration between PowerBuilder 2025 R2, PyPb, Python, Plotly, and Excel.

Introduction

This demo shows how a PowerBuilder window can execute Python code directly to build interactive visualizations, analyze sales data, and export reports to Excel without turning the application into a web solution or depending on an external API.

The integration is based on PyPb, the project published by Appeon at https://github.com/Appeon/PyPb. According to the official repository documentation, PyPb is a library that wraps Python.NET so PowerBuilder can interact with Python code: import modules, instantiate classes, invoke methods, read properties, and use popular libraries such as pandas, numpy, OpenCV, and openpyxl. In this demo, that concept is used to consume custom Python modules directly from PowerScript.

Demo objective: keep PowerBuilder as the business interface and use Python as the analytical engine to generate Plotly charts, detect outliers, calculate trends, display volatility bands, and produce formatted Excel files.
Read more

PowerBuilder 2025 R2: Runtime DataWindow Inspection with GetDWObject


PowerBuilder 2025 R2: Runtime DataWindow Inspection with GetDWObject

How to build a runtime metadata inspector by combining DescribeGetDWObjectDWObjectModify, a shared DataStore, and UTF-8 JSON export.

 

Introduction

A DataWindow is not merely a row container. Its definition contains a tree of visual and functional objects: columns, text labels, computed fields, buttons, and other controls. Each element has an identity, type, band, geometry, visibility, and specialized properties. That information is usually implicit in the DataWindow Painter, but PowerBuilder can also inspect and modify it at runtime.

The Demo_GetDWObject project turns this capability into a visible tool. Users can enumerate the objects in a DataWindow, filter them by type, select one by name, retrieve its properties, locate it through temporary highlighting, export the result to JSON, and run basic design validation. The entire demo uses local data and requires no database connection.

The technical value of the demo is not a single method call. It presents a complete pipeline: Describe("DataWindow.Objects") discovers names, GetDWObject obtains a typed object, the NVO normalizes its properties, Modify applies a reversible visual change, and FileWriteEx produces a UTF-8 JSON artifact.
Read more

Building an AI Text-to-SQL Translator in PowerBuilder (Text to SQL)


Introduction

Artificial Intelligence can greatly facilitate access to data, allowing non-technical users to query information naturally. PowerBuilder developers can integrate "Text-to-SQL" capabilities directly into their applications, enabling a dynamic query system powered by Large Language Models (LLMs).

This article demonstrates how to build a smart client in PowerBuilder (w_text_to_sql) that allows users to select a view structure, ask a question in natural language, and receive the results in a DataWindow, interacting in real-time with Google's Gemini 2.5 Flash Lite model via its REST API.

Read more

Building a Web RibbonBar with the WebBrowser Control in PowerBuilder


Introduction

The native RibbonBar control in PowerBuilder, although functional, presents significant limitations regarding visual customization, dynamic themes, and extensibility. With the arrival of the Chromium WebBrowser (WebView2) control in PowerBuilder 2019 R3+, the possibility opens up to build a Ribbon-type toolbar completely rendered in HTML/CSS/JavaScript, achieving a modern, responsive, and fully customizable appearance.

This article demonstrates how to build a reusable Web RibbonBar encapsulated in a User Object (u_wb_ribbon) that inherits from webbrowser. The component allows defining TabsGroups, and Buttons from pure PowerScript, serializing the structure to JSON, injecting it into the web DOM, and receiving back user click events — all using the native bidirectional communication of WebView2.

Read more

Building a RAG (Retrieval-Augmented Generation) System with PowerBuilder


Introduction

Artificial Intelligence is transforming enterprise software development. PowerBuilder developers can now integrate Retrieval-Augmented Generation (RAG) capabilities directly into their applications, enabling an intelligent question-and-answer system based on documents, powered by Large Language Models (LLMs).

This article demonstrates how to build a complete RAG client in PowerBuilder that connects to a Python-based backend with FastAPI. The system allows users to ingest documents, query them using natural language, and receive AI-generated responses with citations to the sources — all rendered in a professional HTML interface using the Chromium WebBrowser control.

Read more

Find Articles by Tag

Import JSON Installation Messagging SnapDevelop PowerBuilder Source Control Debug Visual Studio Database Validation Error Stored Procedure Oracle C# RibbonBar Event DevOps Database Table Schema PowerServer Mobile PowerBuilder Compiler Git Model DragDrop XML .NET Assembly Debugger TreeView License HTTPClient MessageBox SVN DataWindow Charts Web API iOS SOAP Interface JSONGenerator Script Design PDF PowerScript (PS) PostgreSQL ODBC driver Window BLOB CI/CD Event Handling Mobile Encryption RibbonBar Builder Android WinAPI Text DataType GhostScript Testing SQL Export PostgreSQL RichTextEdit Control PBDOM ActiveX Open Source SQL Server PowerBuilder (Appeon) IDE SqlExecutor OrcaScript PFC .NET DataStore DataWindow JSON Export JSON Encoding Filter ODBC Import TLS/SSL JSON SqlModelMapper .NET Std Framework Database Connection Trial Array Platform CoderObject UI Themes Database Painter Performance Database Table Debugging Service RESTClient REST Outlook TFS Bug InfoMaker COM NativePDF WebBrowser API Menu Elevate Conference Excel Linux OS 64-bit Event Handler PowerServer Web OAuth 2.0 OLE Expression Deployment File Database Profile SnapObjects Jenkins Authorization Icon Application Transaction Variable Migration UI Modernization Configuration JSONParser CrypterObject Branch & Merge Repository Database Table Data DLL UI TortoiseGit SDK Authentication Windows 10 Icons Graph Source Code Data Web Service Proxy PBNI PDFlib Windows OS Class OAuth PBVM Azure Database Object Automated Testing 32-bit External Functions Syntax Sort Resize