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

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