Welcome to the Appeon Community!

Learn, share knowledge, and get help.

 

Featured Blogs

Featured Articles

REST Enhancements in PowerBuilder 2019

REST support was added to PowerBuilder in 2017 R2 and enhanced in 2017 R3.  PowerBuilder 2019 contains additional significant enhancements to REST support, including the following:

  • RetrieveOne method – For REST methods return one row
  • Submit method - sends request and returns data in one operation
  • SetRequestHeader behavior modified
  • GZIP compression handled automatically
  • Send[Method]Request, where method can be Get, Put, Post, Patch, Delete
  • Get and Set OAuth token methods
  • Get and set JWT token methods

 

Read more

JSON Enhancements in PowerBuilder 2019

 

Support for the JSON format was added in the PowerBuilder 2017 R2 release and then enhanced in 2017 R3.  PowerBuilder 2019 contains even more enhancements in this area, particularly with regard to:

  1. Enhanced JSONParser
  2. Enhanced JSONPackage
  3. DataWindows Row Level Import/Export
  4. New ModelStore JSON Format

 

Read more

Two Factor Authentication using PowerBuilder

Two factor authentication is a way of increasing the security of an application by requiring the user to provide more than a simple password (one factor authentication).  Two factor authentication utilizes two of the following factors to identify the user:

1.  Knowledge - something you know - for example, your password

2.  Possession - something you have - for example, your cell phone or access to your email account

3.  Inherent - something you are - for example, fingerprints or eye iris

The third factor is out of scope for this particular article We're going to look at adding the second form (possession) to a PowerBuilder application. Specifically, we're What going to use Google Authenticator, an application for mobile devices (and the desktop) that generates time based one time temporary passwords (TOTP) for use with 2FA.

The sample code for this article is available on CodeXchange.

 

Read more

PowerBuilder 2019 New Feature: Applying a New UI Theme to Your Application

In PowerBuilder 2019, 3 new UI themes are provided to control how PowerBuilder’s commonly-used controls render in runtime applications. These new UI themes adopt a “Windows 10” style to enhance the appearances of applications. For detailed description of the themes, see Understanding system themes and Details on the theme settings and their effects.

You can directly control whether an application applies a new UI theme, or provide users with the ability to select a preferred theme by themselves. For details, see Applying a theme.

It is possible for you to modify a system theme through changing the theme template files, or to copy a system theme to create a custom theme. This way, you can further tune the color settings in the theme to your personal preference. For details, see Creating a custom theme.  

You may want to use the UI theme settings together with the PowerBuilder IDE settings and scripting techniques to achieve optimum UI effects. For samples on how to start the work, see Several useful techniques to further adjust your user interface.

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

New Articles

Working with Transactions in .NET DataStore

This document will describe how to work with transactions for CRUD operations (create, read, update and delete) in .NET DataStore.

For the full content of the document, see https://www.appeon.com/support/documents/appeon_online_help/powerbuilder/Working_with_Transactions_in_.NET_DataStore_and_ModelStore/

CRUD Operations with .NET DataStore

This tutorial demonstrates the basics of creating, in SnapDevelop, a Web API with ASP.NET Core that will use .NET DataStore as its data manipulation component.

In this tutorial, you will learn to:

  • Create a Web API Project
  • Test the API
  • Add a Database Context
  • Register the Database Context
  • Add a .NET DataStore Model
  • Add a Service
  • Perform CRUD Operations Using the Web API
  • Call the Web API from PowerBuilder

To view the full content of the tutorial, see https://www.appeon.com/support/documents/appeon_online_help/powerbuilder/CRUD_Operations_with_.NET_DataStore/index.html

Tracking Actions with SqlModelMapper

This document will describe how to track actions with SqlModelMapper. SqlModelMapper enables you to track database table operations, as well as actions which encapsulate customized methods. These actions will be called when the SaveChanges() method of the SqlModelMapper is called. This enables you to perform several different tasks and operations on the data before the transaction is committed.

To view the full content of the document, see: https://www.appeon.com/support/documents/appeon_online_help/snapobjects/Tracking_Actions_in_SqlModelMapper/index.html

Using Nested Models in SqlModelMapper (multi level cascading for dependent models)

This document describes how to use Nested Models with SqlModelMapper. SnapObjects provides an object (SqlModelMapper) that simplifies the usage of nested models in multiple cascading dependent levels. SnapObjects provides APIs to manage the operations performed on these nested models.

Nested Models can represent complex relationships, such as Master-Detail-Detail. The Master-Detail relationship can be of cardinality types: one-to-one and one-to-many. The Master-Detail-Detail relationship can be of cardinality types: one-to-one-to-one and one-to-one-to-many. However, under certain circumstances, you can also manage N-Level relationships for single SQL Insert, Update or Delete operations.

To view the full content of the document, see: https://www.appeon.com/support/documents/appeon_online_help/snapobjects/Using_Nested_Models_in_SqlModelMapper/index.html.