Tech Articles


How to create an application from object source code files using PowerBuilder


PowerBuilder can create an entire application from the object source files stored in a source code control system without relying on existing PBLs. This has been public knowledge for years, but since I cannot find the article anymore where I read about this for the first time, and since I still see people saying the opposite, I decided to put together this short how-to guide hoping that this information will become searchable.

If someone knows the link to the original article, I will be happy to include it here or even replace this article with the link.

Read more

Communication with a smart card from PowerBuilder


12/26/2021 Update:  A PowerBuilder 2021 sample app that includes all of the following code is available in CodeXchange at: https://community.appeon.com/index.php/codeexchange/powerbuilder/306-reading-a-smard-card-from-powerbuilder

We’re going to look at using the Smart Card SDK provided in more recent versions of Windows (XP and later).  Earlier versions of Windows had an ActiveX installed called CAPICOM which could be accessed from PowerBuilder through OLE Automation, but that control was removed as of Windows Vista because of security issues.

We’re going to look at a number of operations:

·         Communication with the card

·         Validating the user’s PIN

·         Reading the certificate Subject Name

·         Reading other certificate data

 
Note:  This post was updated on December 8th, 2021 to support 64 bit compilation.  Thanks to Jason Schultz for pointing out the problem and to John Fauss and others for pointing out the necessary changes.

 

Communicating with the card

The first step is establish a context for the API calls.  To do that, we need to declare the following local external function for SCardEstablishContext:

Function ulong SCardEstablishContext  ( &

  ulong dwScope, &

  longptr pvReserved1, &

  longptr pvReserved2, &

  REF longptr phContext &

  ) Library "winscard.dll"

 

And call it as follows:

ulong    rc

rc = scardestablishcontext( SCARD_SCOPE_USER, 0, 0, context )

IF rc = SCARD_S_SUCCESS THEN

    Return SUCCESS

ELSE

    Return FAILURE

END IF

 

Read more

Using Autoincrementing Columns from a PowerBuilder DataWindow


Note:  This blog entry is basically the written version of a video I did for the SAP Database and Technology Academy.  You can either watch the video or read the blog entry, or both if you're so inclined.

 

 

Read more

Merging PDF files using PoDoFo


One PDF capability that still hasn't been introduced as a native feature in PowerBuilder is the ability to merge PDF files. We're going to look at how we can easily add that capability using the open source (LGPL) PoDoFo library.

Read more

Create Multiple DSNs from a single PostgreSQL Driver


FYI -

Summary:
   You can create multiple databases from a single PostgreSQL driver.

Details:
PowerBuilder R2019R3
PostgreSQL 12
Windows 10


These instructions assume that at least one PostgreSQL driver has been successfully installed onto the Windows 10 platform.

Read more

Defining a PostgreSQL Database Profile in PB2019R3


PB2019R3
PostgreSQL v12 database


Summary:
   Ensure that the database properties are defined correctly for the PostgreSQL database in the DB Painter.

   If those properties are not defined correctly, the PB2019R3 IDE automatically creates the PB Catalog tables in the "public" schema every time it connects to the PostgreSQL (PG) database even if the catalog tables are already defined in the named "PowerBuilder Catalog Table Owner" schema.

 

Read more

Call SOAP Web Services Using HTTPClient Object


Since PowerBuilder 2017 R2, we have a new HTTPClient object, which is a base object for sending HTTP requests and receiving HTTP responses from a resource identified by a URI. Compared to the Inet object, the HTTPClient object is easier to use and supports more methods (Get/Post/Put/Delete) and more SSL protocols (TLS 1.0, TLS 1.1, TLS 1.2, SSL 2.0, and SSL 3.0).

Among other things, the HTTPClient can be also used to consume SOAP Web services. This is particularly useful as the Web Service Proxy has many limitations and defects calling SOAP Web services such as not supporting TLS 1.2. This article is to show how you can use the new HTTPClient to call your existing SOAP Web services instead. 

Read more

Find Articles by Tag

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