Tech Articles


PowerBuilder 2017 R2 New Feature: Subversion (SVN) source control support


PowerBuilder's initial support for version control systems required drivers for specific vendors (e.g., PVCS) and often for specific versions of that vendor's products.  It was not unusual to find that you needed to wait to upgrade your source control product until PowerBuilder released an updated driver for it.  And if your source control provider wasn't supported by PowerBuilder you were simply out of luck.

 

 

That changed with PowerBuilder 6.  With that release, PowerBuilder abandoned the vendor specific drivers in favor of the recently introduced Microsoft Source Code Control Interface (MSSCCI).  Essentially an ODBC for version control, it freed the IDE from vendor lock-in.  Provide the source control provide provides an MSSCCI complaint interface, or there was a 'bridge' product available that could convert MSSCCI calls into the source control providers native API calls, PowerBuilder could use the product.

Read more

PowerBuilder 2017 R2 New Feature: REST


One of the new features added to PowerBuilder 2017 R2 is support for REST web services.  This feature isn't 100% complete, as additional REST functionality is planned for 2017 R3.  There's still a lot in the R2 release to look at though.

To make things simple for the demo, we're going to use a online REST web service called JSONPlaceHolder..  The service doesn't require creating an account or user authentication.  While the GET (retrieve) methods are fully functional the POST ( insert ), PUT/PATCH ( update ) and DELETE (delete) methods are placeholders.  They return result codes or in the case of POST the id value of the inserted row, but they don't actually modify the data.

Note that while REST web services can return data in any internet mime encodable format, the vast majority of them use JSON  and JSON is the only data format supported by the REST client object in PowerBuilder 2017.

Read more

PowerBuilder 2017 R2 New Feature: Stand Alone Compiler Enhancements


The stand alone compiler was first introduced in PowerBuilder 2017.  It's primarily of interest for shops who perform routine (perhaps daily) builds of their PowerBuilder based applications, usually in order to perform manual and/or automated testing in order to capture bugs as soon as possible after they are introduced into the code base.

While you could perform command line compiles using the PowerBuilder IDE (and still can) it does require an additional license for the IDE, and it has a few drawbacks (e.g., stopping and displaying a messagebox nobody can see on some error rather than exiting with an error code).

One issue with the initial version of the command line compiler introduced in PowerBuilder 2017 is that it didn't support every option available in the PowerBuilder project painter.  Therefore, if there was some particular feature that use used in the project painter (e.g., generating an external manifest or no manifest at all) it wasn't possible to use the stand alone compiler and get the results you needed.

Read more

PowerBuilder 2017 R2 New Feature: PostgreSQL support


One of the new features in PowerBuilder 2017 R2 is support for PostgreSQL.  We're going to take a look at using this new (to PowerBuilder) database.

Installing PostgreSQL and ODBC driver

PostgreSQL is an open source database licensed under the PostgreSQL license, similar to the MIT license.  Downloads for the Windows operating system are available from here.  PowerBuilder uses ODBC to access PostgreSQL, so you'll need to get an ODBC driver as well.  The one from PostgreSQL is available here, although there are third party ODBC drivers as well.  When I was testing out this new feature I used the BookTown sample database from O'Reilly Media.

Creating an ODBC database profile

After importing the booktown data using pgAdmin (the admin tool for PostgreSQL), I defined the a system ODBC profile for the database as follows:

Read more

Revisiting Continuous Integration with PowerBuilder 2017, Bonobo Git and Jenkins


In a previous blog post I ran through a example of how to use the new command line compiler feature of PowerBuilder 2017 to perform continuous integration using Jenkins and a Git repository.  One of the "next steps" I referenced in the close of that post was the creation of a plug-in for Jenkins that would make creating the build steps for the project much simpler.

Well, I've created such a plugin.  Or more specifically what I did was take the existing MSBuild plugin and customize it to create a number of plugins to do PowerBuilder compiles instead.

In this post I'm going to look at how we can use those plugins, plus some additional changes I've made to the project in Jenkins to make better use of the capability of Jenkins and other Jenkin plugins.

Read more

Configuration Process for PB 12.6 and TFS 2017 Using Team Explorer 2013/2015


This article presents the configuration process of PowerBuilder 12.6 with TFS 2017 (server) using Team Explorer 2013/2015

This article has four sections:

  • Prerequisites.
  • Setup Team Explorer 2013/2015.
  • PowerBuilder Configuration.
  • Complementary Information

 

1. Prerequisites

  1. Verify that the DPI font is 96 (100%) .
  2. Create a new folder on C: drive (C:\MyApp is my example) and copy your application on it.

IMPORTANT: See Numeral 1 of PowerBuilder Configuration section, about folders structure.

Read more

How to get the application path


This example shows how to get the application path for development and deployment environments. This is compatible with PB 12.6.

I recommend to use a NVO to develop this functionality.

1. First declare the Local External Functions:

FUNCTION int GetModuleFileNameW(&
           ulong hinstModule, &
           REF string lpszPath, &
           ulong cchPath) LIBRARY "KERNEL32.DLL"

FUNCTION ulong GetCurrentDirectoryW (&
  ulong textlen, &
  REF string dirtext) LIBRARY "KERNEL32.DLL"

 

Read more

Find Articles by Tag

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