Tech Articles


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

Using PowerBuilder 2017 with TFS source control


This article is a guide to connect Powerbuilder 2017 with TFS. It is important to follow the steps in the order listed in the article.

The prerequisite includes

  • PB17 installed on a local machine.
  • TFS server running with access to the user. A collection is required where the code will be checked in. 

Next follow the below points:

  1. Team explorer 2013 : Yes the first thing needed is to install Visual studio team explorer. I know the first question pop ups in mind is if Visual studio needs to be installed on every machine !! Well the answer is NO. All you need is Team explorer 2013 to access the TFS. Second question is why 2013 ? Well there comes the 32 bit and 64 bit compatibility issues, moreover there is no standalone installer for Team explorer 2015. If you figured out a way to do it with later versions, then mention it in the comments. 
Read more

Elevate 2017 session: Frogpond


Frogpond – A study in game design

By: Matt Balent

Presented at the Elevate 2017 conference.

 

This project began as an exercise with two goals: improve my knowledge of the datawindow ‘modify’ method and provide a simple computer ‘game’ for my four year old to use to improve her mouse skills.  When I was thrust into the role of PowerBuilder consultant in 2007 I knew I had to improve my overall skill level with PB in order to be successful.  An area I had not done much prior work was using the ‘describe’ and ‘modify’ methods to alter a datawindow when the application was running.

Over the years I have demonstrated this application at a variety of user group meetings and conference sessions, often as  a way to pass time.  One near universal reaction is ‘I never knew you could do that in PowerBuilder!’  The source code is provided for this (PB2017 format) application.

Read more

PBDOM with PowerBuilder


​You might think, why should I bother using PBDOM? You can use PDOM to manipulate elements in an XML document. That means you can move elements within a document or from one document to another. You can add elements to a document or delete elements from a document. Moreover, with some coding it is even possible to import nested XML data into a DataWindow.

With the XML capabilities of the DataWindow introduced with PowerBuilder 9 it is possible to import and export data very fast and easily. You might have given a short look at the PBDOM definition in the PowerBuilder help but at the first sight, it looks quite difficult to handle. In the following article, I introduce PBDOM accompanied by some code samples.

Read more

Continuous Integration with PowerBuilder 2017, Bonobo Git and Jenkins


Note:  While the techniques described here still work, custom Jenkins plugins are now available which are easier to use.  They are described in this article.

 

In a previous blog post I examined how we could use the Git MSSCCI provider from PB Software in order to use GitHub as a source code provider for PowerBuilder.

In this blog post we're going to take that to the next step, in that we're going to create a build machine separate from our PowerBuilder development machine and then set it up to perform continuous integration.  The term "continuous integration" has a somewhat ambiguous definition, but generally it means that:

  • developers check in changes frequently (at least daily) and
  • that build are done on a regular basis (at least daily, but can be as frequently as after each check-in)

Ideally, automated testing routines would be run on each build to ensure that feedback on any functionality that was broken by the latest code changes are returned to the developers as soon as possible.  Automated testing is outside the scope of this particular article

One of the new features added in PowerBuilder 2017 is a license free stand alone compiler and we're going to use that for this article.   If you are using a older version of PowerBuilder you could use the same approach using the command line argument feature of the PowerBuilder IDE, but it would require installing the full PowerBuilder IDE (including a license) on the build machine.  Alternatively, regardless of which version of PowerBuilder you're using you could use PowerGen in scripted mode.

Read more

Find Articles by Tag

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