Table of Contents
- What's New
-
- PowerServer 2022 R3
-
- New Features
-
- Supporting .NET 8.0
- Changing Web API URL when configuring to deploy to IIS
- Selecting whether to deploy and package Web APIs
- Configuring timeout and MaxSPCache before deployment
- Importing/Exporting the launcher profile
- Importing/Exporting the server profile
- Signing improvements
- Loading images via URL
- commandline argument saving option (in pbapp.ini)
- Getting the deployment version via CloudAppGet
- Supporting more image formats for custom launcher
- PowerBuilder features
- Upgrade Guide
- Bug Fixes & Known Issues
- PowerServer 2022 R2
- PowerServer 2022
-
- New Features
-
- Cloud App Launcher refactoring
- PowerServer project painter refactoring
- PowerServer performance enhancements
- PowerServerLabel and PowerServerResult
- Unsupported feature detection enhancements
- PowerServer project debugging
- PowerServer toolbar changes
- HTTP/2 support
- TLS 1.3 support
- Ignoring PowerServer certificate errors
- Enhanced PowerScript features
- .NET 6.0 support
- Authentication template for AzureAD
- Web API default port changes
- PowerServer log level changes
- Licensing server backup
- Upgrade Guide
- Bug Fixes & Known Issues
- PowerServer 2021
- Installation
- Quick Start
-
- Guide 1: Deploying to local environment (built-in Kestrel)
- Guide 2: Deploying to local IIS
- Guide 3: Deploying to remote IIS
- Guide 4: Deploying multiple apps to one site
- Guide 5: Deploying the client app separately
- Installable cloud app
-
- Installable cloud app
-
- Overview
- Config & deploy
-
- Compilation concepts
- Create the PowerServer project
- Configure the PowerServer project
- Configure a server for deployment
- Configure the Web API settings
- Import and deploy license
- Configure the database connection
- Analyze the unsupported features
- Build the PowerServer project
- Upgrade the PowerServer project
- Walkthrough: Deploying your PowerServer project to remote servers
- Walkthrough: Applying a production license to an existing PowerServer project
- Run & manage
- Package & distribute
- Cloud app launcher
- PowerServer Web APIs
- Server Setup
-
- Overview
- Kestrel
- IIS (in-process hosting)
- Docker
- Kubernetes
- Azure App Service
- Azure Container Instances
- AWS Elastic Beanstalk
- File server
- Load-balancer
- Appendix: FTP server
- Database Connections
-
- Concept differences
- Database type & driver
- Caches
- Connection techniques
- Walkthrough: Connecting to the database
-
- Overview
- Accessing the Database Configuration dialog
- Connecting with the DB2 database
- Connecting with the Informix database
- Connecting with the MySQL database
- Connecting with the Oracle database
- Connecting with the PostgreSQL database
- Connecting with the SQL Anywhere database
- Connecting with the SQL Server database
- Connecting with the Adaptive Server Enterprise database
- Troubleshooting
- Security
- Unsupported Features & Workarounds
-
- How to detect unsupported features
- Unsupported features & workarounds
- Discrepancies & workarounds
-
- Discrepancies that cannot be detected
-
- DB connection
- Alias name
- rowsupdated value
- DisableBind parameter
- TableBlob retrieval
- Dynamic DataWindow
- TransactionName
- Data type in Dynamic SQL Format 4
- Decimal data type in static SQL or DataWindow
- Timing of transaction rollback
- Oracle AutoCommit and Lock
- Stored procedure parameter
- Transaction commit
- Use Describe in Dynamic SQL Format 4
- Bit data field
- SelectBlob/UpdateBlob supports UTF8 only
- SQLNRows property (with Cursor)
- SQLCode property (with SP)
- Column name from view
- Incompatible coding styles
-
- PBLs contain DataWindows with the same name
- Object name using C# reserved words
- DataWindow name containing special characters
- Editing SQL
- Column order in data source and Column Specification
- One compute expression containing multiple computed columns
- Cursor syntax
- Syntax after UNION
- Custom DataWindows from InfoMaker
- Troubleshooting
-
- Configuring and deploying PowerServer projects
-
- Permission errors when configuring the Web server profile
- Syntax error during the build process
- DB driver error during the build process
- Error in the Unsupported (DWs) window
- Failed to generate the PowerServer Web APIs project
- Error uploading application files to FTP
- Changed PBL list
- "The string 'xxx' was not recognized as a valid DateTime" when converting DataWindow to data model
- "Invalid object name 'xxx'" when converting DataWindow to data model
- Failed to load database driver for PowerServer project
- Failed to load database driver when building/deploying PowerServer project
- Running installable cloud apps
-
- Cloud app launcher and application executable
- Models and controls
- Server
-
- PowerServer Web APIs failed to start
- How to figure out if the deployed Web APIs can run at all
- Session errors
- Transaction errors
- IIS-related errors
- Failed to connect to the license server: No such host is known
- Version of PowerServer Nuget packages does not match that of PowerBuilder
- Unauthorized error
- Database
-
- Different results returned from an ASE stored procedure
- SelectBlob data truncated
- Garbage letters display when retrieving multibyte data
- Slow app performance with SQL Anywhere
- 64-bit database cannot be connected from IIS
- SQLHandle not found
- "Invalid object name 'xxx'" when executing ESQL
- Inconsistent information with set_context and sys_context
- Others
- License errors
- PowerServer solution errors
- Runtime error numbers
- Performance Tuning
-
- Introduction
- Performance suggestions on project compilation and deployment
- Performance suggestions on loading installable cloud apps for the first time
- Performance suggestions on running installable cloud apps
-
- Debugging the performance
- Working against the impact of Internet and slow networks on runtime performance
- Hosting Web APIs and database on the same LAN
- Web API publishing method
- Optimizing database server performance
- Tuning excessive server calls
-
- Overview
- Technique #1: grouping multiple server calls with PowerServerLabel
- Technique #2: partitioning transactions via stored procedures
- Technique #3: partitioning non-visual logic via server-side REST APIs
- Technique #4: eliminating recursive embedded SQLs
- Technique #5: eliminating DW computed fields calling user functions that have ESQL
- Minimizing large data transmissions
- Testing, Debugging, & Error Handling