Wisej.NET Migration
  • Introduction
  • WinForms to Wisej.NET
    • WinForms Migration First Steps
    • Advanced Topics
      • Statics vs. Session Variables
      • Reporting
      • Office Automation
      • Modal Dialogs
      • Registry Access
      • File Access
    • Optimizations After Migration
      • Alert Boxes
      • Watermarks
      • Tool Buttons
      • Enhanced TabControl
      • Enhanced DataGridView
      • AllowHtml
      • Label Wrapper
      • VirtualScroll
      • Theming
      • Responsive Properties
  • VB6 to Wisej.NET
    • VB6 Migration First Steps
  • Gupta to Wisej.NET
    • SAL Migration First Steps
  • Visual WebGUI to Wisej.NET
    • VWG Migration First Steps
    • VWG Advanced Migration
Powered by GitBook
On this page
  • General Approach
  • Porting SAL applications
  • Porting QRP reports

Was this helpful?

  1. Gupta to Wisej.NET

SAL Migration First Steps

The following steps describe a basic migration of a Gupta/Centura/OpenText Application to a Web Application based on Wisej.NET.

PreviousVB6 Migration First StepsNextVWG Migration First Steps

Last updated 2 years ago

Was this helpful?

General Approach

Migrating your Gupta/Centura/OpenText application to a Wisej.NET web application can be achieved by utilizing our porting tool Ice Porter and our powerful support library . The SQLWindows Application Language (SAL) is converted to C# or VB.NET, turning the existing legacy client/server application into a native browser-based solution.

File in the qrp format, that were developed using ReportBuilder, can be migrated and reused in widely used reporting frameworks such as SAP Crystal Reports, Microsoft's Reporting Services, combit List & Label, or Stimulsoft.

Professional services and turn-key migration solutions are available from the makers of Wisej.NET and a number of international partners. We have the knowledge, tools, and libraries to support you in the porting process.

Porting SAL applications

Project Structure

All ported applications will be organized in a well defined .

Functions

are fully supported, while some of them are renamed for consistency. Depending on the porting settings function calls can be transfored to a more object oriented style:

For example:

SalStrLeftX(strName, 5, strName)

May have been ported to:

strName = strName.Left(5);

All and most of the functions are fully supported, too.

Data Types

All PPJ framework basic types support automatic casting to their equivalent .NET types allowing for a very smooth integration with .NET libraries.

For example:

string name = strName;

Is the same as:

string name = (string)strName;
string name = strName.ToString();
string name = strName.Value;

SalContext for hWnd* variables

SqlContext for Binding

LINQ Support

SalCompileAndEvaluate

Special considerations

SAL applications usually contain a couple of "special" constructs that mostly stem from SAL being an interpreted language. Ice Porter and the PPJ framework offer great support in migrating these concepts to the .NET world.

You might want to pay special attention to these features and tasks. All of them are described in full details in our PPJ documentation.

Porting QRP reports

are kind of special in Gupta but are also fully supported.

hWndForm and hWndItem are widely used in SAL applications and are converted with using a construct to handle all the different usages.

Similar to the SalContext, the is used to support bind variables at runtime.

Once ported to the PPJ, Arrays and TableWindows can be queried easily using .

uses the interpreter to evaluate expressions. These are parsed in C# by default but are also supported.

. Can be problematic in the original application already, need to be reviewed and fixed eventually.

. Can be managed in 2 ways depending on your personal preferences.

. Are handled by additional virtual functions.

. In general not available in .NET but isfully covered by IP and the PPJ framework.

Gupta reports can be to 4 different reporting engines:

PPJ Framework
Get in touch!
project structure
SAL and SQL functions
Visual Toolchest
XSal2
Dynamic arrays
SalContext
SqlContext
LINQ
SalCompileAndEvaluate
Custom Parsers
Unqualified references
When SQLError
Late Bind Calls
Multiple Inheritance
migrated
Crystal Reports
List & Label
Reporting Services
Stimulsoft Reports