Tech Articles


HTTP QUERY: the immediate future of API queries


HTTP QUERY: the immediate future of API queries

A new way to carry complex queries without turning the URL into a puzzle or presenting a read operation as if it were a write.

What happens when a query needs filters, rules, lists, and pagination, but must not change anything at all?

For years, the usual answer involved choosing between two imperfect paths. The first was to place every criterion in the URL of a GET request. The second was to send a request body with POST, even though the real intention was only to retrieve information. HTTP QUERY is designed to fill that gap: a query can carry structured content while explicitly declaring that it is safe and idempotent.

This is not a replacement for GET. GET remains an excellent choice for simple searches, shareable addresses, and clearly identifiable resources. QUERY is aimed at a different situation: advanced filters, configurable reports, catalog exploration, analytics, enterprise search, and requests whose criteria no longer fit comfortably in a URL.

IETF · RFC 10008 · STANDARDS TRACK · JUNE 2026
Read more

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

Find Articles by Tag

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