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.
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 PPJ Framework. 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. Get in touch! 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 project structure.
Functions
SAL and SQL 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:
May have been ported to:
All Visual Toolchest and most of the XSal2 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:
Is the same as:
Dynamic arrays are kind of special in Gupta but are also fully supported.
SalContext for hWnd* variables
hWndForm and hWndItem are widely used in SAL applications and are converted with using a SalContext construct to handle all the different usages.
SqlContext for Binding
Similar to the SalContext, the SqlContext is used to support bind variables at runtime.
LINQ Support
Once ported to the PPJ, Arrays and TableWindows can be queried easily using LINQ.
SalCompileAndEvaluate
SalCompileAndEvaluate uses the interpreter to evaluate expressions. These are parsed in C# by default but Custom Parsers are also supported.
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.
Unqualified references. Can be problematic in the original application already, need to be reviewed and fixed eventually.
When SQLError. Can be managed in 2 ways depending on your personal preferences.
Late Bind Calls. Are handled by additional virtual functions.
Multiple Inheritance. In general not available in .NET but isfully covered by IP and the PPJ framework.
Porting QRP reports
Gupta reports can be migrated to 4 different reporting engines:
Last updated