Pre-Release Notes for Alpha Anywhere (Alpha Five Version 12)

IMPORTANT: The pre-release builds are only available to customers with a valid Alpha Anywhere subscription. If your subscription has expired you will not be able to use the pre-release build.

If your subscription is valid and you download and use the pre-release build please keep in mind that if you do not renew your subscription after it expires your eligibility to use pre-release builds will end.

 

 

 

 

 


 

Build 5729-5266 18-MAR-2019 - 8:05 AM

 

The Features and Bugs Listed Below are for the current pre-release build. These features/fixes will be included in the next official Version 12 Update. These notes are for users who are testing the pre-release update.
 

This is not an official patch, so you should not deploy this update to a production environment.

 

This pre-release build is our internal, nightly build and it is made available to you for the sole purpose of testing the new features that have been added and the bug fixes that have been made since the last official release. We are making this pre-release available to you so that you can provide us with feedback on whether the changes we are making are working correctly and have not introduced new issues.

 

If you encounter any type of bug while using this pre-release build, please send information about the bug (including full instructions on how to duplicate the issue, and a test case that we can run on our own machines) to a5v12bugs@alphasoftware.com.

 

Please do NOT post bug reports concerning the pre-release build on the message board. Alpha Software engineers do NOT routinely monitor the message board and there is a good chance that your posting will be overlooked. Also, since your posting will be referencing unreleased code, it will only serve to confuse other users.

 

This pre-release build is not intended to be used in a production environment.

 

You can download the pre-release update using these links:

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_full_patch.exe

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_full_DL.exe

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_AppServer.exe

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_AppServer_patch.exe

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_RTPLUS_patch.exe

 

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_ApplicationServerIIS.exe

https://aapatches.s3.amazonaws.com/build5729/a5v12_build5729_ApplicationServerIIS_Patch.exe

 

 

https://msgboard.alphasoftware.com/alphaforum/showthread.php?112148-New-OpenSSL-and-SSLv3-Vulnerabilities

 

 

 

Videos

     
     

 

 

Features

Build 5723

Reports - PDF - Remote Images - A common practice is to store images on a remote server (such as Amazon S3) and then include a reference to the image in a database table. When creating PDF reports from a table that has remote images, the report would take a long time to complete because the images were fetched from the remote location sequentially.

Now, a new optimization is used for creating these types of reports. All remote images referenced in the report are now pre-fetched (using a highly optimized parallel operation) and are stored in a temporary local folder. As a result, the report creation is now substantially faster.

IMPORTANT: In order for the optimization to work, the field must be marked as an Image Reference Field. This is done when defining the report data source. This is done by clicking the Advanced Options button in the Data Source builder.

 

 

Build5717

Grid and UX component - Date Format - Culture - You can now specify that the date format, day names and month names for a component should be automatically selected based on the 'Accept-language' property in the request header when the browser makes a request. This makes it easier to build applications that seamlessly adapt based on the user's locale setting.

To use culture settings, set the date format to

<cultureDateFormal>

or

<cultureDateFormat> <cultureTimeFormat> (if you want the default format to include a time portion)

 

Set the day names to <cultureDayNames> and set the month names to <cultureMonthNames>.

 

 

 

 

UX Component - List - Check-box Select Control - Customization - You can customize the appearance of the checkbox-select control by clicking the smart field for the Check-box select control customization property.

 

 

When you click the smart field, a builder is opened.

 

 

You can control whether the icons used are SVG or bitmaps (bitmaps would be preferable if you are using a legacy style such as GrBlue). You can choose custom icon.

If you use the default SVG icon you can set the size, fill and stroke color of the SVG icons

 

 

Check-box select control using bitmap icons

 

Check-box select control using SVG icons with customized stroke and fill colors.

 

You can also control whether an icon appears in the column header to allow the user to check or un-check all rows in the list at once.

Build 5709

Xbasic - AlphaDAO - If a SQL commands fails because the database is in a deadlocked state, Alpha Anywhere will automatically retry the command.

Build 5704

OpenSSL - New version of OpenSSL. Version 1.0.2r.

 

UX Component - List Control - Checkbox Selector - You can now add a checkbox select control to List to allow the user to select rows. This is particularly useful if your List has a Detail View because you cannot turn on the multi-select option which allows the user to select multiple rows.

 

 

The following Javascript method can be used with Lists that have a checkbox-select control

  • <listObject>.getCheckedRows() - returns an array of row number (zero based) of rows that were checked.
  • <listObject>.getCheckedValues() - returns an array of values for the rows that were checked.
  • <listObject>.setCheckedRows(array) - takes an array or zero based row numbers and checks the specified rows.
  • <listObject>.setCheckedValues(array) - takes an array of values and checks the rows with the specified values.  For example, if a List based on the Northwind Customers table is set to return the CustomerID, then you could use this method to check the rows for 'ALFKI' and 'BOLID'.
  • <listObject>.checkAllRows() - checks all of the rows in the List.
  • <listObject>.unCheckAllRows() - un-checks all rows in the List.

To turn on the checkbox select feature, check the Has check-box select control property.

 

 

Then, add the <CheckBoxSelect> control to your List.

 

 

 

ps

 

 

 

 

Build 5675

Xbasic Editors - Functions - A common error when editing Xbasic functions is to forget to return a value from the function. All functions (other than those of type v) should return a value.

There are two ways to return a value from a function

  1. Use the return statement
  2. Set the function name to the return variable.

Now, if you define a function (that is not of type v) and the function does not return a value, the Xbasic syntax checker will report an error.

 

 

TabbedUI - Login Feature - Chrome 72 and Above - In Chrome 72 and above Google made changes to the way password fields are handled. As a result of this change the first input control in a component shown in the TabbedUI was getting pre-filled with data. This issue is resolved in the build by wrapping the login controls in a dummy <form> element.

Build 5673

Xbasic Function Libraries - Compiled AEX files - You can now add a special directive into an Xbasic Function Library file that will cause the file to be compiled into an .aex file at publish time.

Add the

'compileaex

 

comment anywhere in the Xbasic Function Library file.

At publish time, any Xbasic Function Library file in the Web Project that contains this directive will be compiled into an .aex file. The .aex filename will be

__AAFunctionLibrary_<Xbasic function library name>.aex

 

NOTE: It is not necessary to add the name of the .aex file to the list of AEX files in Web Project Properties

 

At run-time, if a component specifies that a Xbasic Function Library should be loaded, the function library will only be loaded if an associated .aex file is not found.

The benefit of this is minimal for small function library files. However, very large Xbasic function library files can take a noticeable amount of time to load and compile. By eliminating this step and loading an .aex file instead you will get a small performance boost.

 

UX Component - Client-side Date Format - PhoneGap Applications - When you render a UX component in a Web Application, the client-side date format is set at runtime based on the setting stored in the component. This value can be overwritten, however, by setting a special session variable (__protected__clientSideDateFormat) so that a user in the UK (for example) can set a preference for their client side date format as dd/MM/yyyy while a user in the USA can set their preference to MM/dd/yyyy.

PhoneGap applications are different in that when the app is launched it is loaded directly from the device (i.e. the component is not served up by the AA server). As a result, it is not possible to change the client-side date format at run-time when the component is loaded (since the component is not loaded by making a call to the server). Therefore, in a PhoneGap application that is designed for use in both the US (when the date format is MM/dd/yyyy) and the rest of the world (where the date format is likely dd/MM/yyyy) it is necessary for the user to be able to set their date format preference at run-time after the app has been loaded. This preference can then be persisted to local storage so that there is no need to set it again.

The {dialog.object}.setClientSideDateFormat() method can be used to set the client-side date format for the component (used, for example when formatting date fields in a list control). This method, however, will not set the date format used by date pickers.

In order to set the date format for a date picker, you must get a pointer to the control and then call the .setFormat() method. For example, assume you have a control called 'DOB'. To set the date format for this control's date picker:

var obj = {dialog.object}.fieldHelpers('DOB');

obj.setFormat('dd/MM/yyyy');

 

Bugs

UX Component - .UpdateTableRow() Method - Fixes an issue when using this method on a child List. The parent List was not getting marked as dirty.

Reports - International Characters - Improvements have been made in the way international characters in reports are rendered.

Web Applications - APIs - Fixed bug when publishing API - The host name in the <serviceName>.json file was getting hard coded to the Live Preview URL if you had done a live test of the API while developing the API subsequently to the last time you edited the API.

Grid Component - Advanced Search Control - Failed if the Grid was opened on an Ajax callback.

Grid Component - Arguments - Page Variables - The option to bind an argument to a Page Variable was missing.

Tips