<<

Magic xpa 4.7.1 Release Notes

Contents

Contents...... i Studio Enhancements ...... 1 Runtime Enhancements ...... 1 Git Connectivity and Support Enhancements ...... 2 Web Client Enhancements ...... 3 Mobile Enhancements ...... 3 Known Issues: ...... 4 Fixed Issues ...... 4 Magic xpa 4.7 ...... 12 Studio Enhancements ...... 12 Enhanced Git Connectivity and Support ...... 13 General Enhancements ...... 16 UI Enhancements ...... 16 Migration Enhancements ...... 16 RIA Enhancement ...... 17 Runtime Enhancement ...... 17 Database Enhancements ...... 17 Web Client Enhancements ...... 18 Mobile Enhancements ...... 21 GigaSpaces Enhancements ...... 22 Behavioral Change ...... 22 New Special Flags ...... 22 Known Issue ...... 23 Fixed Issues ...... 23 Magic xpa 4.6.3 ...... 32 Database Enhancement ...... 32 Fixed Issues ...... 32 i

Magic xpa 4.6.2 ...... 34 General Enhancements ...... 34 Fixed Issues ...... 35 Magic xpa 4.6.1 ...... 36 General Enhancements ...... 36 UI Enhancements ...... 37 Database Enhancements ...... 37 Web Client Enhancements ...... 38 Mobile Enhancements ...... 38 Backward Compatibility Enhancement ...... 38 Fixed Issues ...... 39 Magic xpa 4.6 ...... 40 UI Enhancements ...... 40 Studio Enhancements ...... 42 General Enhancements ...... 42 Web Client Enhancements ...... 43 Database Enhancements ...... 43 GigaSpaces Enhancements ...... 44 RIA Enhancements ...... 45 Mobile Enhancements ...... 45 Browser Client Deprecated ...... 46 Fixed Issues ...... 46 Magic xpa 4.5a ...... 49 Web Client New Features ...... 49 Web Client Enhancements ...... 49 64-bit Runtime Features ...... 50 General ...... 50 Fixed Issues ...... 51 Magic xpa 4.5 ...... 52 Support for 64-bit Server Engine ...... 52

ii

Web Client New Features ...... 53 Web Client Enhancements ...... 56 Non-Web Client New Features ...... 59 Non-Web Client Enhancements ...... 59 Non-Web Client Removed Features ...... 60 Magic xpa 4.1 ...... 61 New Features and Enhancements ...... 61 Fixed Issue ...... 62 Magic xpa 4.0 ...... 63 The Magic Web Application Framework...... 63 About Magic Software Enterprises...... 66

iii

We are delighted to present Magic xpa 4.7.1 with new features and enhancements.

Studio Enhancements The following enhancements are added with respect to Magic xpa Studio.

GigaSpaces with Magic xpa 32-bit Server Discontinued

Provision of GigaSpaces with Magic xpa 32-bit Server was discontinued since Magic xpa 4.7 due to unavailability of 32-bit executables in GigaSpaces version 15.

Note: GigaSpaces option was removed from both the Magic xpa Studio and the 32bit Server installation. Runtime Enhancements The following enhancements are added with respect to Magic xpa Runtime. New Property: Use Default Width A property named Use Default Width is introduced for Edit control’s Zoom , which upon setting to ‘True’ sets the width of the Image to be identical to the width of the Zoom Push Button. New Value for SpecialKeyboardBuffering: X The special flag SpecialKeyboardBuffering is now provided with the new value ‘X’. Upon setting the flag to ‘X’, it behaves identical to Extended buffering (E), but disregards Ctrl and Shift keys while keyboard buffering. New Flag: SpecialComboShowBorder The special flag SpecialComboShowBorder decides whether or not the 2-D or Windows style Combo Box will have a border when it is not in focus.

On setting to N, the Combo Box appears without border (as per previous behavior) and on setting to Y, the Combo Box appears with border.

Valid values: Y, N

Default value: N

1

New Flag: SpecialShowLastOrphanInFrame A special flag named SpecialShowLastOrphanInFrame is introduced, which always stores the last Orphan in Frame and displays it after closing the current task in Frame if it is evaluated to be a non-Orphan window.

When set to Y, Magic xpa displays the previous Orphan task in Frame in the following scenarios:

After an Online task with Close Task Window property set to Y is terminated. After a Batch task with Close Task Window property set to Y calls an Online task with Close Task Window property set to N is terminated. Valid values: Y, N

Default value: N

Note:

The behavior on setting the flag to Y is not applicable to Subform. If the flag is set to Y and if the Main Program has Destination Frame set, then the Main Program is used as a Destination Subform for Online tasks. New Flag: SpecialDotNetAllowZeroDate This special flag when set ‘Y’, retains the older behavior of allowing .Net DateTime object to be initialized with 0.

Valid values: Y, N

Default value: N Git Connectivity and Support Enhancements

The following Git-related enhancements are added to Magic xpa. Optimized Git Connectivity If you want to register yourself with Git and when you start the process of registration, Magic xpa issues a dialog informing that the registration process might take a while to complete. Also, if you have already registered yourself with Git, Magic xpa opens your project promptly.

2

Branch ID Optimization The file branchIDs_x.txt will not be tracked by Git now. The file .gitignore residing at repository level will now contain the entry MagicIDs/branchIDs*.*. Web Client Enhancements The following Web Client enhancements are added to Magic xpa. Support to Avail Third-party Time Picker Magic xpa now enables you to add an OS-independent third-party Time Picker (for instance: ngx- material-timepicker) to support 12-hours and 24-hours’ time format in Web Client Applications. Please visit the relevant help topic at Home > Mastering Magic xpa > Web Client Application Development > How Do I Use a Third-party Time Picker?.

Note: The third party Time Picker ngx-material-timepicker does not support seconds. Smooth Navigation of Records in Table The server can proactively load records in to the client’s table when the client is idle to give you a smooth records navigation experience. Magic xpa introduces a property named Server Read Ahead which upon setting to 'Yes', the client informs the server to fetch all records from the database chunk-by-chunk and send them back to the client.

Note: The property is available for Table controls that have Web Style of Material Design Grid. Support for ISAM Database as Data Source Magic xpa update supports ISAM Database as a linked Data Source only in Linked Query operations, for paginated tables. Mobile Enhancements The following Mobile-related enhancements are added to Magic xpa. iOS: Support for Dark Mode: iOS Client now supports dark mode of iOS 13.

Support for iOS 14: Rich Internet Applications running on iOS can now be executed on iOS 14.

3

New Flag: SpecialShowKeyboardOnReadonlyEdit A special flag named SpecialShowKeyboardOnReadonlyEdit is introduced to determine whether or not to invoke the soft keyboard after parking on a read-only Edit control.

When the flag is set to Y, the keyboard is invoked and you can copy the Edit control's contents.

When the flag is set to N, the keyboard is not invoked and no copy mechanism is allowed.

Valid values: Y, N

Default value: Y

Note: This behavior is valid for iOS only. Known Issues: User Interface We have upgraded our binaries to be compiled using .Net framework 4.7.2, which brought the following side effects:

1. The System event Ctrl+A is not raised for the Edit controls, which have their Multiline Edit property is set to ‘True’. It is considered by .Net as though you selected all lines in the Edit control. 2. When the Form’s Window Type property is set to ‘Fit to MDI’, then height of the Title Bar increases by 10 pixels. Fixed Issues

# Description

MXPA-750 When a project was added into TFS version control and when the Checkout button on Web Application Settings dialog was clicked, then the error, 'Critical error of Source Control Provider, Please restart IDE.' occurred if the Application Properties were not checked out.

MXPA-19918 The BG color of the image was getting displayed when the Display Settings > Scale and layout setting was increased from 100% to 125%.

MXPA-20762 If a Tree control was placed on a Subform and if the program execution control was parked on the parent form, then while trying to expand a node of the Tree control it didn't expand and the first node of the Tree was shown highlighted.

4

# Description

MXPA-21011 When the title of the Class-1 Form was scrolled down with Vertical Scroll Bar to move it to be just behind the Horizontal Scroll Bar, then the Horizontal scroll bar stopped functioning.

MXPA-21105 The Logon displayed Question Marks (????) in the place of application name in Hebrew if the application was invoked as StartApplication using Runtime.

MXPA-21248 When Help File parameter was set to blank in Magic.ini and Help was invoked by pressing F1 while executing an Online program, the error, '\[Error ] - \[MgGui.dll] Help URL '' is not valid.' was getting logged in mgerror.log file.

MXPA-21332 On migrating an application from uniPaaS to Magic xpa, it was found that the Class 0 Form's Window Type property that was set to 'ApplicationModal' in uniPaaS did not get converted to 'Modal' in Magic xpa.

MXPA-21370 A customer’s specific mobile app took 3 minutes to open on iPhone 11 device when the images were packed with IPA (Assets Folder). Also, on a specific iPhone8 Plus device, the same app took 3 minutes to open.

MXPA-21532 If there was a preceding space character before the ‘task var names’ parameter of DataViewToText() function, Magic xpa issued an error, 'DataViewToText - Illegal task variables specified :'.

MXPA-21740 In a program when 'Title Bar' property of the GUI Display form was set to 'False', the Minimize and Maximize buttons were getting displayed momentarily before terminating the program execution.

MXPA-22230 On Hebrew machine, when an Online application was executed on xpa 3.3x and when a .rtf file was tried to open in a Rich Edit Control, it was found that the Table columns were displayed in reversed order with the data inside them aligned to left instead of right as against uniPaaS 2.0.

5

# Description

MXPA-22454 While executing RIA Offline application for the second time, if User Functionality component was present in the application and when 'ConnectOnStartup' was set to 'No', then the error, 'Metadata files are not synchronized. (-271)' was issued.

MXPA-22669 When a GUI Output form was printed as a PDF, it was found that the BMP images higher than 16-bit did not appear on the printed document.

MXPA-22744 While adding records in an empty Table, the Table’s DataGridView was not getting refreshed immediately and showed only one record, which was entered last.

MXPA-22791 When HTTPCall() function was invoked with option GET, the header part 'Content-Type: application/json; charset=utf-8' was getting removed from the message header.

MXPA-22806 If an Edit control's Show Zoom Button property was set to ‘Yes' and Button Style was set to 'Image button', the zoom button’s width was getting altered.

MXPA-22835 When a Push button event was raised using an ‘Enter’ key, the function LastClicked() returned blank instead of returning the Push button’s control name.

MXPA-24086 If Control Hit handler was used with Propagate property set to ‘No’ and values were tried to select using Space Bar, then they were not getting selected.

MXPA-24133 When an Online application containing a Subform with Placement property was set to execute in Full Screen mode, and when an Edit control was in an out of the focus repeatedly, then the Subform was found to increase its size and the Check Box on the Subform changed its position.

MXPA-24163 Magic xpa runtime crashed while debugging a specific customer application using GFlags.

MXPA-24165 In Web Client tasks, if an Edit control had a data expression attached to it and when the control was clicked on during runtime, an error occurred: 'Control either has an expression or has parent task variable attached to it. Failed to park on

6

# Description

control with name: '. The bug is fixed and the error is now logged into the console for more clarity.

MXPA-24219 If the picture format of an Alpha type variable was set as ‘1 A’ (where 1 is size and A is auto-skip), then the application did not allow to enter a character in an Edit control.

MXPA-24244 When a comment was entered for any item from the repositories, the color of the serial number of that item changed to default color (blue), but it did not change to the original color (black) when the same comment was deleted.

MXPA-24246 The focus was shifting to incorrect Radio control after pressing the key when both the Radio controls were attached to the same Data variable.

MXPA-24247 When HttpFramework was set to 'J', and the header 'Content-Type: application/json; charset=utf-8' was tried to send through HTTPGet() function, then the header was not getting displayed in the header list.

MXPA-24294 On iOS devices, the soft keyboard was getting opened when the Edit control’s Modifiable property was set to ‘False’. Please see SpecialShowKeyboardOnReadonlyEdit in this Release Notes document.

MXPA-24295 In a particular customer’s application scenario, memory leak was observed on the RIA server.

MXPA-24297 The User Functions defined in the Main Program of a Web Client project were not getting executed.

MXPA-24298 When an expression number is set to the Data property of an Edit control by typing the expression number and then zooming into the Expression editor, if another expression is selected, then the previously typed expression number stays on the property instead of the newly selected one.

7

# Description

MXPA-24303 When Invoke OS Command operation was executed for launching apps on Android client, the string between the two percentage symbols (%string%) was found to be getting disappeared.

MXPA-24308 The options ‘Open in Visual Studio Code', ‘Generate Form Component’, and ‘Generate Controls Accessors’ were found disabled in the Form Editor of Web Client program if the project was under version control and program was not checked-out.

MXPA-24341 When MailFramework was set to 'J', while reading some specific mails, it was found that MailMsg functions had returned blank body. In case of some other specific mails, when MailFramework was set to either 'L' or 'J', the functions returned blank header.

MXPA-24464 The time taken to insert records into DB2400 Table via EASYCOM gateway was found to be considerably more than to insert the same number of records via ODBC gateway and IBM Client Access driver when the transaction was executed before Task Prefix.

MXPA-24471 On a German machine, when an application was created and the Form Designer was opened, a Visual Studio error occured, '"XamlDesignerPackage" package was not loaded properly’.

MXPA-24504 When a 2-D or Windows style Combo Box was placed inside a Table control and when the Combo Box was not in focus, it still appeared with a border. Please see SpecialComboShowBorder in Release Notes.

MXPA-24506 When SpecialKeyboardBuffering flag was set to 'E' and when a Batch task called from an Online task was being executed, the behavior of pressing Ctrl/Shift+Click key(s) was still effective after changing the focus to the parent task. Please see New Value for SpecialKeyboardBuffering in this Release Notes document.

8

# Description

MXPA-24516 On iOS devices, a Combo Box was found to expand on opening and closing it few times.

MXPA-24565 On iOS devices, when switching to Dark Mode, the text on the Title Bar was not clearly visible.

MXPA-24571 When an application with a Batch task containing a DSQL having Link Query operation on Memory table was executed on both Magic xpa 3.2d and Magic xpa 4.7; it was found that the performance of the latter had reduced in terms of speed.

MXPA-24588 In a particular scenario, a RIA task had a Table control with its Scroll Bar Thumb property set to ‘Absolute’ and a few thousand records in it. When the task was executed, the xpa Runtime engine was found to crash.

MXPA-24596 The information regarding return value of FileListGet() function in xpa help documentation was not in accordance with the function’s actual return value.

MXPA-24651 When an application was executed in Screen mode, a Phantom Subtask was expected to display the same data that was entered in its parent task in an Edit Control, but the Phantom Subtask's Edit Control was found to be empty.

MXPA-24660 While working on the projects under Git, it was found that for each module added in the project, the batch file 'ProjectUnderGit.bat' was getting executed multiple times causing delays in opening projects under Git having multiple modules.

MXPA-24661 If two projects under a solution were tried to open in two different instances of Magic xpa, then error occurred in either of the two projects and .edp project files were getting deleted.

MXPA-24681 When the flag SpecialDisableGITFunctionality was set to 'Y', Magic xpa erroneously checked if the project was under Git or not.

9

# Description

MXPA-24952 In a particular scenario, MgxpaRuntime crashed while reading the contents of Binary/ANSI vector using the function VecGet().

MXPA-25003 .Net Snippet Code was not getting executed if Date attribute was passed as an argument with the default value 00/00/0000. Please see SpecialDotNetAllowZeroDate in this Release Notes document.

MXPA-25023 Memory leak was observed on Linux and Windows machines while executing a Batch task and sending a few thousand requests to the Server.

MXPA-25073 In a Web Client application when the Internal Event 'ViewRefresh' was used without the first parameter then the error, 'TypeError: Cannot read property 'substr' of null' occurred in the Browser Console and the client stopped responding.

10

Past Release Notes

11

Magic xpa 4.7

We are excited to present Magic xpa 4.7 with new features and enhancements.

Studio Enhancements

The following Studio-related enhancements are added in Magic xpa.

Enhanced APG (Ctrl+R) The existing APG utility is enhanced to create Browse programs quickly when Data Source has relationships defined for Table linking. The programs are created with the following:

Multiple and multi-level Subforms (for 1:N relationships) Linked Tables (for 1:1 and N:1 multiple and multi-level relationships) The programs are created based on the selected relationship(s) from the APG Relationship Tree.

For creating the Browse programs, you need to set a Relationship Criteria to link the Tables.

If you have linked two tables in 1:1 relationship, then with the enhanced APG, a program is created with a Link Query in it. Confirmation while Deleting a Data Source before Overwrite While overwriting a Data Source, Magic xpa issues a confirmation message for deleting the Data Source from the SQL-type and ISAM-type databases. Enhanced Block Operations Magic xpa supports expanding (+) and collapsing (-) the Block operations in Program Logic.

Note: In case of nested Block operations, expand/collapse state for the inner blocks is retained. Debugging: Variable Values Available in Magic xpa provides runtime values of the variables in the tooltips while debugging programs. Searching Program using Source File Name Magic xpa enables you to find a desired program from the entire repository when you enter the program’s source file name in Find Text dialog box. Magic xpa optimizes search by providing a

12

named Search source file name only, which on clicking searches the text only in the source file name of the program. Customizing Colors of Columns in Link Operations Magic xpa enables you to customize the foreground (FG) and background (BG) colors of Columns in Link operations. Automatic Installation of Visual Studio 2015 Shell Magic xpa automatically installs Visual Studio 2015 Shell. Please see Known Issue. Enhanced Git Connectivity and Support Magic xpa brings up a number of enhancements to enable you to work with Git version control effortlessly. With the 4.7 update, Magic xpa deprecates the use of PushOk Git plugin and supports TortoiseGit plugin as a default for connecting to Git.

The following features are provided to enhance working with Git:

Automatic Identification of Project under Git Magic xpa identifies whether a project is under a Git repository or not. Note: Irrespective of whether a project is under Git or not, the three flags VCActive, WorkOffline, and VCUseGitPlugin are set to ‘N’ by default in the .edp file. Automatic Identification of Change of Working Branch from Outside Studio If the working branch is changed from outside Magic xpa, it identifies the changed branch and loads the contents of the project repositories with the branch’s name reflected in the Title bar. Automatic Generation of Unique Version Control ID While working with Git, Magic xpa takes the responsibility of generating developer IDs, so uniqueness of ISNs is guaranteed. Magic xpa creates developer IDs to assign unique ISNs to all the developers. It records these developer IDs in the file named devids.txt, which is created inside the folder in the uniqueness branch named magicids.

When you connect a project to Git for the first time, Magic xpa adds the following information into devids.txt file:

13

Developer's ID Developer's Name Developer's eMail When you open a Git project via xpa Studio, Magic xpa reads the uniqueness file and sets the developer's ID and Branch ID to create the ISN for that particular Developer for that specific project. Automatic Identification of a Unique Branch Similar to devids.txt file, Magic xpa maintains a branch ID file named branchids_x.txt in which it stores the active branch names and numbers to be able to identify a branch uniquely. The file is maintained in the uniqueness branch named magicids of the Git repository.

When you create a branch for the first time, Magic xpa creates branchids_x.txt file and pushes it to the uniqueness branch in the Git repository.

Note: You can work on at the most 64 branches. Prerequisites for Working with Git You will find a new option named ‘Git Connectivity’ under the menu File > Version Control. On selecting this option Magic xpa will check if:

3. TortoiseGit is installed 4. Compare and Merge is installed and configured 5. Developer eMail ID is configured 6. Developer ID is allocated for the current developer 7. A Branch ID is allocated for the current branch

If anything from the above was not done then Magic xpa informs you.

While adding a new project to Git repository, by default Magic xpa launches a Git connectivity check dialog to verify all required plugins, configurations, and settings. Once the project is added into Git, you can avail verification from Version Control > Git connectivity check when required. Removal of Source Control Plugin Setting Now that Magic xpa supports TortoiseGit by default, the Environment setting Source Control Plugin is removed, thereby relieving you from setting the type of Git Plug-in.

14

Overriding xpa Git Functionality Magic xpa introduces a special flag named SpecialDisableGITFunctionality, which upon setting to ‘Y’ in Magic.ini disables all the Git-related icons and all the menu options under File > Version Control for a project added in Git version control.

This flag enables you to treat a Git project as a non-Git project and allows you to work with your project as though it were not in the Git repository. Git Flow Commands Magic xpa provides Git Flow commands as a recommended branching model. The Git Flow entries in the File > Version Control > Git Flow menu provide the following options:

Git Flow Init - Initialize a directory as a Git Flow repository. Git Flow Feature Start - Start a Git Flow feature Git Flow Feature Finish - Finish a Git Flow feature For more details regarding Git Flow, please see https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow or other references to Git Flow. Logging Git Commands from Magic xpa You can log the commands generated by Git from Magic xpa. A special flag named SpecialGITLog Is introduced in order to log them. The flag when entered under [MAGIC_SPECIALS] with the value SpecialGITLog=, all the direct Git commands executed in Magic xpa studio are logged in the given file.

Note: When developing with Git, Magic’s Compare and Merge tool is mandatory. The tool is external to Magic xpa installation. It is available at Downloads Area (downloads.magicsoftware.com). The tool is licensed separately. Please contact your local branch/representative regarding its license.

15

General Enhancements The following general enhancements are added in Magic xpa. Support of HTML Format in Mail In addition to Plain Text format, Magic xpa now enables you to send and receive mails in HTML format. You can set the mode of the format to 1 (Plain Text) or 2 (HTML) using a function named MailFormatSet(mode).

Note: The support for HTML format is applicable only on Java mail framework. Support for New Functions: FileOpenDlg and FileSaveDlg Magic xpa introduces two new functions named FileOpenDlg and FileSaveDlg, thereby enabling you to upload and download the selected file(s) respectively.

Note: FileOpenDlg and FileSaveDlg functions are available in Online tasks only. 32-bit/64-bit Open JDK with Magic xpa Installation Magic xpa now provides 32-bit and 64-bit Open JDK version 1.8 along with xpa installation. Support to Handle SUPERVISOR_GROUP as SUPERVISOR GROUP While working with LDAP/AD you can create SUPERVISOR_GROUP (underscore in between) instead of SUPERVISOR GROUP (space in between) and while validating against the security file, Magic xpa treats it as SUPERVISOR GROUP in order to assign supervisor rights to the users. UI Enhancements The following user interface enhancement is added in Magic xpa. Scaling of RIA Forms, Frames, and Controls Magic xpa now supports scaling of Forms, Frames, and Controls in RIA executing on desktops. Migration Enhancements The following migration enhancements are added in Magic xpa. Control Border A 2D Label control will be migrated from UniPaaS to Magic xpa with its borders as follows:

16

Thick => 2D Thin => Windows No Border => No Border Conversion of Edit Controls to Label Controls While migrating an application from UniPaaS, Magic xpa enables you to convert an Edit control with Data set as an Expression and located outside the container control to a Label control with the same Expression as its Text. A new Command Line Option UpEditWithExpToLabel is introduced, which upon setting to ‘Yes’ enables this conversion. RIA Enhancement The following RIA enhancement is added in Magic xpa. Enhanced Scroll Bar In RIA, using Scroll Here option you can jump directly to the clicked position when Scroll Bar Thumb is set to Absolute. Magic xpa supports Scroll Here functionality for Preload View also. Runtime Enhancement The following runtime enhancement is added in Magic xpa. New Event: Create Line Above An Editing event named Create Line Above is introduced, which creates a record above the current record during Runtime. This event is supported in Online, Rich Client, and Web Client applications. Database Enhancements The following database enhancements are added in Magic xpa. Enhanced Support for MySQL ODBC Gateway Magic xpa’s MySQL ODBC gateway now supports MySQL 8.x. Support to Define Table Relationships

Magic xpa now enables you to define One-to-One (1:1), One-to-Many (1:N), and Many-to-One (N:1) relationships among the tables created in Magic Data Repository. Once the table relationships are defined, you can use the new APG (triggered by Ctrl+R) to generate programs based on those relationships. 17

Note: Defining relations is not supported on XML table. Binding Support in Oracle Database You can now use the binding (~) for the statements that do not return a result set.

Microsoft® SQL Server 2019 Support Magic xpa was tested and is compatible to work with Microsoft SQL Server 2019. Web Client Enhancements The following Web Client enhancements are added in Magic xpa. Re-initialization of the Context on Abnormal Termination of Sessions Magic xpa introduces an Environment setting to handle re-initialization of the context when sessions terminate abnormally. The setting named Reinitialize Web Client sessions on abnormal terminations offers three options:

Yes: Reinitialize the context by default.

No: Do not re-initialize the context.

Alert: Issue an alert message to let the user decide whether they wish to reinitialize the context or not. New Keyword: ‘WebClientReInitSession’ You can use the keyword named WebClientReInitSession, which upon setting to 'A' in Magic.ini issues the same Alert message. The setting is effective on restarting Magic xpa Studio. New Function: ‘IsContextReInitializing()’ Magic xpa introduces a function named to indicate whether the context has been reinitialized after abnormal termination of application. The function when called from Main Program/Task Prefix returns ‘TRUE’ when the context is being reinitialized after crash. Issuing Warning Message before Context Inactivity Timeout Magic xpa introduces an Environment setting named Context Inactivity Warning Time. This setting enables you to set how much time before terminating the session you want Magic xpa to issue a warning message about termination of the session. 18

Note: For some Chromium browsers, the warning message is shown when the current browser tab is in focus. New Keyword: ‘ContextInactivityWarningTime’ You can use the keyword named ContextInactivityWarningTime to set the time in Magic.ini. Support for Blank 'Zero fill’ Characters in Numeric Pictures The Directive for Numeric pictures is supported with blank ‘Zero fill’ characters. With this directive, Magic xpa fills the variable value with blanks if the variable value was zero.

Note: The characters other than blanks are not permitted in Directive of Numeric pictures. Support for Blank Date and Time When Date or Time is zero, or Time Picker will display it blank respectively. Customizable Date and Time Formats Defined on Magic xpa’s Form You can change Date and Time formats to be different than that defined on Magic xpa’s Form. Please refer to Magic xpa help for more information. CallJS() Supported in Web Client Magic xpa now supports CallJS() function in Web Client tasks to let you call a JavaScript method of Magic Angular component. Support for Character-level Binding

Magic xpa now enables you to define the level of binding between Edit control and variables. A property named Binding Level is introduced which lets you define binding option either as Control (where a variable receives a control’s value on leaving the control), or as Character (where a variable receives a control’s value on each character typed).

Support for Lazy Loading in Overlay Programs

You can now call Overlay programs from Load on Demand folder without Route.

19

Support for Client-Side Logging A log level named RequestInfo is introduced, which upon setting in Web Client Application Execution Properties, the requests sent to server and their corresponding responses received from the server are logged on the console. Notification of Change in Custom Properties Property A method named PropertyChanged() is introduced, which on writing in the .ts file of the component notifies you about change in the value of Custom Properties property in Magic xpa. The method is invoked whenever value of any custom property changes. Closure of Active Web Application’s Browser Tab When you change the contents of a Web page and attempt to close it without saving the changed contents, means when the transaction cache is not empty, Magic xpa raises a warning about the pending changes.

Note: On all browsers except Chrome the context is terminated after the context-inactivity timeout. On Chrome the context is terminated immediately.

When you do not change the contents of the Web page and attempt to close it, means when the transaction cache is empty, Magic xpa terminates the context immediately without issuing any warning. No Confirm Update Dialog on Using Record Flush Magic xpa does not issue Confirmation update dialog box on using Record Flush event. Provision of Enum for Accessing Custom Properties Magic xpa now provides Enum for Custom Properties so that you can access them easily. Location Changed of displayedColumns[]Array Earlier on generating an application containing Table control(s), the array displayedColumns[] used to be entered into .component.ts file. The array is now entered into mg.controls.g.ts file to avoid updating the .component.ts file each time a new column is added into the array.

20

Provision of Choice to Make Tasks non-Interactive You have an option to make the Web Client tasks non-interactive. Debugging Client Side Error Messages

Magic xpa now identifies the runtime path of the error message that might appear in Client-side browser console while debugging Web Client applications.

Microsoft® Visual Code IntelliSense Enabled Microsoft® Visual Studio Code now identifies the binding and shows the drop down box of IntelliSense. Mobile Enhancements The following enhancements are added with respect to mobile. Android ZBar SDK is no longer supported in Android. Barcode is not supported via Zbar and sample project has been modified to use Pic2Shop on Android. Android 10 Support Magic xpa was tested and is compatible to work with Android 10.

Android Specific Functionality Update the project target SDK and compatibility libraries to API 29: You need to upgrade Android SDK compatibility libraries to API 29 so that your custom applications developed for higher versions will work smoothly on your latest Android devices. iOS Replacing deprecated UIWebview with WKWebview Sample projects and previously missed-out references are updated as per WKWebview implementation. ZBar SDK is no longer supported in iOS. Barcode is not supported via Zbar and sample project has been modified to use Pic2Shop on iOS.

21

GigaSpaces Enhancements The following enhancement related to GigaSpaces is added in Magic xpa. GigaSpaces Version 15 with xpa Installation The underlying GigaSpaces infrastructure is updated to version 15.

Behavioral Change

The following behavioral change is implemented.

Backward Compatibility for Virtual Values Rollback

In version 3.3e, Quit and Cancel events changed their behavior and rolled-back virtual variables to their initial values. This turned out challenging in the existing applications where xpa programmers required the changed values of the virtual variables after raising a Cancel event. To facilitate the previous behavior a flag named SpecialKeepVirtualsOnQuitOrCancel is provided.

SpecialKeepVirtualsOnQuitOrCancel When set to Y, this flag facilitates the previous behavior of virtual variables retaining their modified values.

Note: In case Quit event is raised, Task suffix will receive the modified values for virtual variables.

Valid values: Y, N

Default value: N New Special Flags

The following special flags are added in Magic xpa.

SpecialUnicodeDefaultExpressionArgument

This flag was introduced for default return type while converting string parameters used in expressions. Magic xpa has some expression evaluations where the returned string could be of type ‘Alpha’ (ANSI) though all the function parameters are Unicode as in EvalStr('a'&'b'). Upto xpa versions 3.2d, the default value of this flag was N. Means by default ANSI string was considered as return type. This was problematic to xpi because it converted Unicode strings to ANSI

22

and lost the characters thereby getting ‘?’ instead of characters. So from xpa version 3.2e onward, the default was changed to Y. Means, by default Unicode string was considered as return type.

Valid values: Y, N

Default value: N till version 3.2d, Y 3.2e onward

Since version: 3.2d SpecialValNewPolicy

If the flag is set to ‘Y’, the following rules apply for the Val() function:

1. If the picture is too small for the digits after the decimal separator: cut. 2. For digits before the decimal separator: never cut.

If the flag is set to 'N' or it is nonexistent, then the previous behavior is retained.

Valid values: Y, N

Default value: N Known Issue

As a consequence of upgrading to Visual Studio Isolated Shell 2015, there is a problem with the Form Designer ONLY while using mgconstw.heb. The scroll bars are displayed on incorrect side in the Form Designer for Forms and for Table controls. Despite this incorrect display, they behave properly at runtime. Fixed Issues

# Description

MXPA-88 A newly-defined Logical variable’s ‘Default value' property is displayed as ‘True’ instead of ‘False’ by default, when the ‘Default value’ property of the previously defined Logical variable was changed from 'False' to 'True’ using mouse double click.

MXPA-128 The Edit controls in the Filter Box were not displayed properly when Font was applied to the Table’s Column and Set Allow Filtering property of Column was set to ‘True’.

23

# Description

MXPA-212 In a particular scenario, a Table definition done in MSSQL was applied on Magic xpa Data Repository where a Table was already present with one Index entry, then if a new Index was attempted to add above the existing Index, the Position index value was not getting recorded in Datasources.xml file, which resulted in Magic xpa Runtime crash.

MXPA-425 The function Val() did not return correct value according to the 2nd parameter if the number of characters in the 2nd parameter were less than the number of characters in the 1st parameter and ‘N' was part of the 2nd parameter as in Val(’1234', ‘N3’) erroneously returned1234. Please see SpecialValNewPolicy in Release Notes.

MXPA-429 Magic xpa Component Interface Builder takes a long time (up to 2 sec) to open if a substantial number of Logical names were present.

MXPA-537 Magic xpa Help is updated with the information on the maximum number of Blobs allowed in various databases.

MXPA-2719 When an invalid number was entered in a numeric field and a User Event was raised on a Button click, both Online and RC programs displayed an error on and reset value to original. But when the same programs were executed on uniPaaS 2.0 onward, the expected event was raised in RC and was not raised in Online program.

MXPA-19628 When a Batch task was called from Main program multiple times, Menu flickered.

MXPA-19751 While using function DataViewToJSON(), some unwanted characters ‘’ were displayed in Blob variable.

MXPA-19896 A program having multiple query names after WITH clause in SQL command and the Result Database set as MSSQL, issued a DB error and discontinued execution.

MXPA-19912 Edit Control Zoom Button was found visible when Show Zoom Button was set to 'True', and Visible and Enable properties were set to 'False' for Image Button type, and was seen enabled although Enable was set to 'False' for any Button type.

MXPA-19928 An error ‘\[MgGui.dll] Property.RefreshDisplay(): Property 730 wasn't handled.’ was recorded in mgerror.log if Owner Drawn property of Checkbox was set to True in Online task.

24

# Description

MXPA-19938 Magic xpa studio crashed when trying to select Simba Athena ODBC driver. Also, DB error ‘Driver is not supported by the gateway' was displayed when clicking on ‘Cancel’ button in ‘Select data source’ window to select DSN name.

MXPA-19946 In UniPaaS the 'Mark Previous Char' event marked the selected characters in an Edit box whereas in Magic xpa, the event did not mark the selected characters.

MXPA-19967 The behavior of Magic xpa 4.5 and Magic xpa 4.6x was found different when a .Net decimal variable was updated with a decimal number. In Magic xpa 4.6x the decimal value was getting treated as a whole value.

MXPA-19979 When a RIA deployed on Broker as well as on GigaSpaces generated an error, it was found that on Broker the error was logged in detail whereas on GigaSpaces, the same error was logged briefly.

MXPA-20015 In case of a header detail scenario, if the header record was deleted, then instead of deleting its corresponding detail records, some other detail records were getting deleted. The header task used the condition stat(0,'D'MODE).

MXPA-20019 When you selected 'Magic Xpa Deployment Client' installation, Magic xpa help files used to get installed by default. Now you have a choice whether to install or not to install the help files.

MXPA-20024 In some specific environments, Studio performance was found degraded when performing actions like opening Program Repository or zooming into a program, or executing a program from Program Repository.

MXPA-20056 In RIA tasks, when cancelling a record which is connected to a subform, 'Record lost' error occurred. In such a scenario, moving to a new record created an empty record on the form as well as in the database.

MXPA-20068 On executing a Web Client application, when the browser was closed, the context remained opened. The context was released only when the ‘ContextInactivityTimeout’ was expired. This erroneous behavior was observed only on Google Chrome browser.

MXPA-20143 The function Len() returned incorrect value when Unicode type parameter was passed to it.

25

# Description

MXPA-20271 If the function ClientFileRename(origin, target) contained only the filename (without its path) as the Target parameter, it previously worked like a Move operation on the current working directory. Now in such a case, it will perform the operation on the source directory itself.

MXPA-20441 In Web Client tasks, MLS translation did not work when logical names were used in Language File path of Language Repository.

MXPA-20479 A redundant confirmation dialog box was getting displayed in Version Control with the message 'Entering read-only mode', when attempted to open a program that was not checked-out at first place.

MXPA-20550 While executing an SQL Stored Procedure in an MSSQL Database application, a blank dialog box was getting displayed and the error 'Error in executing SQL command...' was getting recorded in mgerror.log.

MXPA-20620 In case of Online tasks, the focus was unduly getting shifted to Parent task from Child task when a Timer handler having Raise event (View Refresh/Screen Refresh) or Verify operation was getting executed.

MXPA-20645 The information regarding 32-bit and 64-bit Server and Database Client combination was not found in xpa help documentation.

MXPA-20648 When a Web Client application was executed from Studio with Deployment Mode set to ‘Runtime’, RunMode() function returned incorrect value.

MXPA-20652 While working with multiple Class 1 GUI Output forms, when a reference from Find Results pane was clicked, the control did not jump to its corresponding matching result. The same behavior was found in case of Checker error.

MXPA-20674 An Online application was found to crash at runtime when its Parent window was set as ‘Task in focus’ and a button was clicked in the Parent window after a Subtask having Control Hit event with Propagate property set to ‘No’ was called.

MXPA-20675 Print Data functionality did not display all existing files in the directory when ‘All Files' (i.e. *.*) option was selected in File Open dialog.

MXPA-20715 In a particular scenario on iPad devices, an iOS application was found to crash.

26

# Description

MXPA-20717 When Transparent colors were applied to Label, Edit, or Line controls and when they were placed into the Table control's Column Header, the controls were displayed neither during Form design time nor during runtime. Also, the same controls when placed inside the Table were not getting displayed during design time.

MXPA-20743 The Magic xpa Studio was getting stuck during ECF creation activity using Tools Infrastructure when AutomaticProcessingMode was set to 'B'.

MXPA-20784 In a particular scenario, when a Windows application such as Notepad, Excel, etc. and Magic xpa were co-running, and when Magic xpa invoked a Batch task with Open task window set to ‘Yes’ and Window type set to ‘Child’, then Magic xpa Batch task kept appearing intermittently while working on that Windows application.

MXPA-20798 The behavior of uniPaaS and Magic xpa 3.3 (both Japanese versions) were different with respect to displaying logon window when it was given as a command line argument. In uniPaaS the logon window was displayed with Username and Password whereas in Magic xpa 3.3, the logon window was displayed with only Username. The issue is fixed now.

MXPA-20799 In a particular scenario on iPad devices, an iOS application was found to crash while performing a general search.

MXPA-20832 In MSSQL gateway, when the function CndRange() was used on DateTime column, it failed at Runtime and threw the error 'Incorrect syntax near the keyword ‘AND'’.

MXPA-20866 XMLInsert() returned error -6 “Attribute already defined for element” while adding an Attribute to an Element in an existing XML, even though the Attribute was not defined.

MXPA-20922 A Table with Checkbox/Button controls was found to get loaded slower than the Table without Checkbox/Button controls in it.

MXPA-20955 In a particular scenario on the Japanese environment migrating the application, two Radio buttons having different height and same Y value placed on a Form in uniPaaS were found to have changed their positions in Magic xpa 4.6.

27

# Description

MXPA-20960 was getting slightly cut when Radio control’s Vertical Alignment property was set to ‘Top’, Multiline property was set to ‘False’, and Font Size was inherited from the Radio control’s default Font size.

MXPA-20964 If an Expression ('False''log) was attached to Confirm Update property and a record was attempted to delete, then the Confirmation Dialog was appearing in RIA unlike in Online task. This erroneous behavior taking place in RIA task is now fixed.

MXPA-20983 When a Magic 9.40 application was migrated to uniPaaS or Magic xpa, some of the default images of Menu icons were observed to be incorrect in uniPaaS 1.9p and some default icons were missing from Magic xpa 4.7.

MXPA-21004 In Create mode, it was impossible to enter a value in an Edit control when a User event was executed with Force Exit set to Post Record Update, and a Batch program was called to update a variable in Record Prefix.

MXPA-21012 When an application was migrated from uniPaaS 1.9 to Magic xpa 4.6 and when a .Net Object for Date was used, then while setting Date ‘00/00/0000’ to .Net Month Calendar Control, uniPaaS issued an exception whereas Magic xpa did Uninot issue any exception.

MXPA-21061 When Cache Strategy was set to 'Position' for parent program to ‘None’ for child program, then the control was getting parked on an undesired column in the Table while trying to park it on a particular column.

MXPA-21118 When 'VCProjectID' was changed in the project, it was found that the node_id and parent_id on loading the XSD file were different than the node_id and parent_id after reloading the same XSD file.

MXPA-21180 The value of the next record was getting displayed momentarily and intermittently in the field of the previous record while navigating through the records in a Table, when Record Prefix had Wait property (Invoke Operation) in GUI. It was observed that the delay was apparently caused due to calling several Online Phantom tasks from Record Prefix.

MXPA-21182 The Parallel Batch programs did not execute when tried them using GigaSpaces middleware.

28

# Description

MXPA-21254 When SpecialFirstRangeOnEmptyField was set to 'Y', Range property was set for an Edit control, and the value in the Edit control was deleted, then the Edit control displayed a blank instead of the first value defined in the Range property.

MXPA-21280 In a particular scenario, an application crashed. The reason is identified and fixed now.

MXPA-21301 In RIA, on opening a project from uniPaaS 1.9 to Magic xpa 2.3 or a version latter, the Edit controls were getting displayed with Vertical Alignment as 'Center' instead of as 'Top'.

MXPA-21310 On migrating an application from uniPaaS to Magic xpa, the value of Edit control was getting trimmed by one pixel from the left-side when the Edit control’s Style property was set to 3D-Sunken and the Horizontal Alignment property was set to Right.

MXPA-21313 If MLS was used, then the label controls displayed in a PDF did not change according to the MLS language selected.

MXPA-21319 When a Label control's Style was set to any style (other than 'No Border') and when it was placed in a Table control with Alternating BG Color defined, the Label control Border did not appear in the Table.

MXPA-21349 In Web Client tasks, when APG was performed on a Program with Form Size option set to 'As Content', the Form was not getting created large enough to accommodate all its contents without a Horizontal Scroll Bar.

MXPA-21373 In a particular scenario, an Internal Event used on a Button worked fine but a User Event, which in turn raised a Cancel event on a Button, did not work.

MXPA-21379 The value of the next record was getting displayed momentarily and intermittently in the field of previous record while navigating through the records in a Table.

MXPA-21465 After migrating RIA and Online projects from uniPaaS to Magic xpa, the Control Hit event handler which was not getting executed in uniPaaS was found to get executed in Magic xpa, when clicked on the Table's Scroll Bar.

MXPA-21491 In a particular scenario, an Android mobile application crashed. The reason is identified and fixed now.

29

# Description

MXPA-21494 While using the SQL statements UPDATE or INSERT on Japanese machines, the '\n' (Newline) characters were getting replaced with white-spaces.

MXPA-21499 If HTTPCall(Post) was invoked for a specific URL, an error 'invalid_request' was issued.

MXPA-21578 On migrating an application from uniPaaS to XPA 4.6, it was observed that the query ‘SELECT VERSION FROM V$INSTANCE' was being sent to Oracle DB although the flag 'LimitLinkToSingleFetch’ was set to 'No'.

MXPA-21616 Magic xpa Help is updated with the information about MySQL & SQLite databases being supported with MGXTK, MGXRT, and MGXSRV license types.

MXPA-21697 On deleting any record(s) barring the last record from the Table, the Button control or Checkbox control were found to be present on the last record's row, when the last record itself was absent.

MXPA-21710 If two Link Write operations were executed to write data in a Table, then the second Link Write operation failed to write the data if it was performed in a RIA Non-Interactive task.

MXPA-21743 When a Batch program was being executed on setting the special flag ‘SpecialKeyboardBuffering’ to 'E' in Magic.ini, the Runtime window being in focus did not close on pressing the Esc key upon switching to some other program window and returning back to it.

MXPA-21791 Files of size 0-bytes were found left in Linux TMPDIR after an xpa process was finished in case TMPDIR was set to a non-default location. Also, MgxpaTempClasses subdirectory was found left in TMPDIR.

MXPA-22467 In Magic xpa Studio, the controls like .Net, Edit, and Label were impossible to bring in front of the Subform control.

MXPA-22715 If either of ‘DATA' or 'SESSION’ strings were used as a parameter in GetParam() function, then the function returned Null.

MXPA-22751 While executing Online and RC programs when an Edit control's 'Show Zoom Button' property was set to 'True', the Edit control's zoom button placed on the

30

# Description

Subform appeared narrower than the Edit control's zoom button placed on the parent form.

MXPA-22759 Magic xpa Help is updated with the information about the reasons why requester reset the connection to xpa server.

MXPA-22765 Magic xpa Help is updated with the information about the reason why is visible even when there are less number of records than the view size.

MXPA-22779 While executing Online and RC tasks when an Edit control's 'Show Zoom Button' property was set to 'True', the Edit control appeared without its zoom button on the Subform.

MXPA-22804 On iOS devices while executing a RIA program using HTTPS protocol, it was found to issue an error, 'This session was closed by the server (-197)'.

MXPA-22906 During runtime, the password that was defined as a Secret Name in the database was erroneously remaining readable and available in the memory via dumps of the Runtime engine.

31

Magic xpa 4.6.3

We are delighted to present Magic xpa 4.6.3 with enhancements. Database Enhancement

The following general enhancement is added in Magic xpa.

Oracle - Ability to Determine SQL type for DSQL String Binding

Since Magic xpa version 3.3a, the expressions used to bind Direct SQL parameters for Oracle are bound as NVARCHAR instead of VARCHAR2.

A DBMS flag named DSQL_STRING_BIND_VARCHAR is introduced in order to allow you to use VARCHAR as the type for binding. This brings back the behavior before Magic xpa version 3.3a. Upon setting it to ‘Y’, binding of string values using expressions is done as VARCHAR2 instead of NVARCHAR. This is relevant for Direct SQL commands using ‘~’ for Oracle binding.

Fixed Issues # Description

MXPA-21360 In a Rich Internet Samples program, when a record of a Table having a multi- segment index on numeric fields was attempted to update, Magic xpa issued an error 'Operation failed. Record has been changed by another user or process'.

MXPA-21409 Calling a User-Defined Function defined in the Main program took more time as compared to previous xpa version i.e. xpa 3.x.

MXPA-21413 The text in an Edit control was aligned incorrectly when an expression was used in the Format property.

MXPA-21573 While trying to close a Phantom task, it reappeared at a different position when called from Record Prefix, Task Prefix, or from a Button Handler. This happened if Call Task was done using a Destination.

32

33

Magic xpa 4.6.2

We are delighted to present Magic xpa 4.6.2 with new features and enhancements. General Enhancements

The following general enhancements are added in Magic xpa.

Support of RC5 Methods in Cipher() DeCipher() Functions

Magic xpa now supports the use of RC5 Encryption method in Cipher() and DeCipher() functions.

Removal of Component Logging

You can now customize the behavior of component logging while loading a Magic component (ECF) at the time of opening a host application. A special flag named SpecialComponentLogging is introduced in order to customize the behavior of component logging.

SpecialComponentLogging The flag upon setting to 'N' prohibits the following two lines to be displayed in the engine log:

Starts loading component Ends loading component Valid values: Y, N

Default value: Y

Removal of ANSI Blob NULL Check

You can now customize the display of the warning message about presence of a NULL in an ANSI Blob. A special flag named SpecialAnsiBlobCheckNull is introduced to customize the behavior.

SpecialAnsiBlobCheckNull The flag upon setting to ‘N’, disables the functionality of showing the warning message that informs about presence of a Null character in an ANSI blob. When this special flag is set to ‘Y’, the Null Blob check is performed and as a consequence, the warning message, "Null in an ANSI blob, possible loss of data" is displayed; if a Null character was found.

34

Valid values: Y, N

Default value: Y Fixed Issues

In this update we addressed performance-related issues and carried out some internal optimization.

35

Magic xpa 4.6.1

We are delighted to present Magic xpa 4.6.1 with new features and enhancements. General Enhancements

The following general enhancements are added in Magic xpa.

New Function UserRightGet()

A function named UserRightGet() is introduced to retrieve the rights of the logged-in user.

New INI Parameter: MailFramework

A new INI parameter named MailFramework is introduced, which specifies the underlying framework used for mail functions.

When set to 'J' (Java), the mail functionality will be based on Java and when set to ‘L’ (Legacy), it will be based on the legacy technology.

Valid Values: J, L

Default Value: L

The setting is not available via Settings > Environment interface.

Magic.ini and Command Line name: MailFramework

Support for TLS and SSL for Mail Functions over Java Framework

TLS and SSL mail functionality is supported only over Java framework. To enable you to choose among SSL, TLS, or Plain, a new argument named ‘protocol’ is introduced in MailConnect() function, which is regarded when MailFramework=J. The argument protocol can accept either of the three values: 0 (Plain), 1 (TLS), and 2 (SSL).

Note: The existing applications will not be affected, as protocol is an optional argument. If the protocol argument is not mentioned in an existing call to MailConnect() function, then the value 0 (Plain) is regarded.

36

Removal of Special Flag ‘SpecialRIAEncryptAES’

The special flag SpecialRIAEncryptAES is removed from Magic xpa Help. UI Enhancements

The following user interface enhancements are added in Magic xpa.

Enhanced Form Scaling Options

The Combo box on the Status Line provided for scaling the active form during Runtime now presents enhanced scaling options such as 110%, 120%, 130%, 140%, 150%, 175%, and 200%.

Scaling of GUI Frames Forms

Allow Scaling property which was previously present in GUI Display forms is now also added for GUI Frames forms. Scaling of GUI Frames forms is now exactly same as the scaling of GUI Display forms.

Database Enhancements

The following database enhancements are added in Magic xpa.

64-bit Gateway for AS/400

Magic xpa now provides 64-bit gateway for AS/400. The name of the dll file for AS/400 gateway is changed from mgeac32.dll to mgeac.dll.

32-bit Gateway Users: 3. All Invoke UDP operations related to this DLL will have to be modified from mgeac32 to mgeac. 4. The MGDB16=mgeac32.dll entry in the Magic.ini file will have to be changed to mgeac.dll in case of upgrade installation. 64-bit Gateway for DB2/400

Magic xpa now provides 64-bit gateway for DB2/400.

37

Web Client Enhancements

The following enhancements related to Web Client are added in Magic xpa.

Control Verification in Web Client

Control Verification is now supported for Web Client tasks.

Note: Magic xpa executes all Control Verification handlers in the current task just before executing Record Suffix. Control Verification handlers are executed in the order of their definition in the task.

New Property: Custom Validators

Custom Validators property is introduced to enable you to define a set of validators. If the condition in an expression against a validator is evaluated to ‘True’, then an error message is displayed.

Mobile Enhancements

The following mobile enhancements are added in Magic xpa. iOS

Support for iOS 13: Rich Internet Applications can now be executed on iOS 13.

Support for XCode 11: Magic xpa 4.6.1 is compatible to work with Xcode 11.x. Backward Compatibility Enhancement

The following backward compatibility enhancement is added in Magic xpa.

Flag for Space between Radio Button and its Label

To maintain the appearance of Radio button compatible with its appearance in version V9.4, the flag SpecialRadioSpacingV9Compatibility is introduced.

SpecialRadioSpacingV9Compatibility The special flag SpecialRadioSpacingV9Compatibility when set to Y, creates an adequate space between Radio button and its Label.

Valid values: Y, N

Default value: N

38

Since version: 3.3g

Fixed Issues

# Description

MXPA-143 In Magic xpa help, an incorrect license token was displayed for Web Client.

MXPA-215 Magic xpa was found to crash with an error message, "The folder (set by the environment variable JAVA_HOME) is missing mandatory sub folders: 'jre' and 'bin\\server'.", if the executing program had Java functions such as JCall() or JCreate().

MXPA-224 In xpa installation, the option 'WinRunner Support' was renamed to 'Support Test Automation Frameworks/Tools'.

MXPA-251 The help pages named 'Java Environment' and 'Java Integration with Unix Platforms' were found to be missing in the Help of latest xpa versions.

MXPA-18681 Not all the user-defined .NET events for user controls were visible in the event list with a specific DLL of the customer.

MXPA-19433 An unknown screen was displayed in the upper-left corner on minimizing or maximizing the called in case a program was called from a non- interactive task with Raise event's Wait property set to 'No'.

MXPA-19442 When some multiline text was sent via MailSend() function, the text lost its format.

MXPA-19476 Mgerror.log displayed the error, ‘There is a mismatch in return attribute of function’, on executing a user-defined function having return type as Java variable which was the part of Data View.

39

Magic xpa 4.6

We are delighted to present Magic xpa 4.6 with new features and enhancements. UI Enhancements

The following UI features and enhancements are added in Magic xpa 4.6. Form Scaling

You can scale the client area of an active form of the type SDI, MDI, and child window during runtime to different sizes such as 200%, 300%, 400%, and 500% by using a combo box provided on the Status bar. You can set the flag SpecialFormScalingByDefault to ‘Y’ to set the value of Allow Scaling property for all the GUI Display forms in the project by default.

SpecialFormScalingByDefault If this flag is set to ‘Y’, then the default value of Allow Scaling property will be ‘True’ and the form will be scalable. This means if Allow Scaling property is not broken, its value will be ‘True’. If the property is broken, the broken value will be used.

If this flag is set to ‘N’ (or is nonexistent in Magic.ini), then the default value of Allow Scaling property will be ‘False’ and the form will not be scalable. This means if Allow Scaling property is not broken, its value will be ‘False’. If the property is broken, the broken value will be used.

Valid values: Y, N

Default value: N

Note: The use of Runtime Form Designer is not supported for the forms that allow scaling.

Freezing Table Columns

Now you can set the desired number of columns in a Table control to remain frozen while scrolling the Table horizontally. The frozen columns are marked by a dark grey-colored divider by default. You can choose a color to demarcate the frozen columns from the rest. When you save a task containing tables with frozen columns and reopen it, the frozen columns that you saved last time are retained. 40

Note: There is no support to freeze table columns in RTL tables.

Zoom Button for Edit Control

You can add a Zoom button [...] next to the Edit control, which on clicking raises Zoom event. You can also customize the Zoom button’s .

Autocomplete for Edit Control

You can autocomplete the text while typing, using a new property named Autocomplete Mode available for Edit control.

Flag for 3D-Sunken Radio Button Colors

In order to provide backward compatibility with uniPaaS and retain the current behavior of 3D- Sunken Radio button’s background and foreground colors in xpa, a special flag named SpecialUseColorForRadio is added.

SpecialUseColorForRadio If this flag is set to N, the background and foreground colors are disregarded.

Valid value: Y, N

Default value: Y Flag for Owner-Drawn Checkbox

In order to provide backward compatibility and mark the as owner-drawn, a new property named Owner Drawn and a special flag named SpecialCheckBoxOwnerDraw are added.

SpecialCheckBoxOwnerDraw When this flag is set to Y, all the checkboxes with their Appearance property set to Box in all the applications will be owner drawn.

Valid values: Y, N

Default value: N

41

Auto Drop-down for Combo Box Control

You can make the Combo Box in focus drop-down automatically and view its items immediately using a new property Auto Drop-down.

Setting Color for Disabled Edit Control

You can set a color of your choice for the disabled Edit control. Controlling Border Property of 3D-Sunken Edit Controls

While migrating your uniPaaS applications to Magic xpa, you have an option for controlling the Border property setting for 3D-Sunken Edit Controls in the Migration wizard.

Setting Table Control Title's Background Color

While migrating applications from uniPaaS to Magic xpa, you can set the Table control title's background color.

Studio Enhancements

The following enhancements related to studio are added in Magic xpa 4.6. Copy-Paste Logic Lines across Tasks

You can copy and paste Logic, Data View, and Header lines across tasks located within the same program or outside it.

Long Names for Tasks, Programs, and Forms

You can enter Task Name, Program name, and Form name as long as 100 characters. General Enhancements

The following general enhancements are added in Magic xpa 4.6. Unicode Arguments for Mail Functions

Mail functions of Magic xpa support Unicode arguments.

Apache Tomcat Installation Upgraded

Apache Tomcat is upgraded from 7.0.62 to 9.0.20. The previously deployed Web Services should be copied to "%tomcat_home%\webapps\axis2\WEB-INF\services\". 42

Web Client Enhancements

The following enhancements related to Web Client are added in Magic xpa 4.6. Display of

You can display spinner on the page(s) of your Web Client application when the server processes lengthy requests. You can also customize the spinner.

Accessing Form Controls from HTML

A new Controls Accessor component named .mg.controls.g.ts is introduced to enable you to access Form controls and their properties from the relevant HTML file. The Controls Accessor component implements easy validation for Form controls in html.

Enhanced Web Application Generation Dialog Box

You can see the list of programs you select to generate a Web application along with the folder names in which they are created.

New Concept Paper

The following concept paper is added in the help: Using Magic Components in Web Client Applications You can find it under the link Home > Concept Papers > Developing Web Client Applications. Database Enhancements

The following enhancements related to databases are added in Magic xpa 4.6. Native PostgreSQL Database Gateway

PostgreSQL database gateway is supported natively, which is compatible with PostgreSQL 11.5. You need to procure its license separately.

Support for Physical Locking in MySQL Gateway

Magic xpa now supports physical locking in MySQL gateway. The physical locking works with MySQL server version 8.0. It can be enabled using the flag SQL_PHYSICAL_LOCKING=Y.

43

Support Oracle 18 and 19

Magic xpa was tested and is compatible to work with Oracle 18 and 19.

Scrolling to the Desired Record

It is now possible to jump directly to the desired record using Table scrollbar. For more details, please refer to Magic xpa help.

WITH Clause

You can use 'WITH' clause in Direct SQL statements.

Temporary SQLite Database Files

Now SQLite database also can be used as a Temporary database in the Environment setting 'Database for Sort/Temporary' under the Preferences tab.

A database information flag named TEMP_DB is introduced in order to define a Temporary SQLite database. For more details, please refer to Magic xpa help.

New Keyword: ‘DataTypeCompatibility’

A keyword named DataTypeCompatibility is introduced in DB Information, which upon setting to ‘Y’ in the database properties of MSSQL database makes the new MSOLEDB driver handle the data in the same way the legacy SQLOLEDB driver handles it. GigaSpaces Enhancements

The following enhancements related to GigaSpaces are added in Magic xpa 4.6. Determining Status Update Rate SpecialGSWorkerStatusUpdateRate This special flag determines the number of seconds at which the worker updates its last modification time periodically.

For example, if N = 5, then the worker will update its Last modification time every 5 seconds.

Valid values: >= 1

Default value: 10

44

This special keyword can assist in distinguishing between non-responsive workers and genuinely busy workers engaged in executing long requests. Provision of Workers Dynamically

The NumberOfWorkers element in the ProjectsStartup.xml file is now enhanced. According to this enhancement, the Server will create additional Workers if the current Workers count is less than (NumberofWorkers + AdditionalOnDemand), and a request waited longer than 'LoadOnDemandTimeout' seconds before processing it, even with available licenses.

Workers Pane

It is now easy for you to distinguish non-responsive workers from the workers busy executing long duration programs while using GS middleware. A pane is provided to display the workers of the selected server.

RIA Enhancements

The following enhancement related to RIA is added to Magic xpa 4.6.

Client-side Cache Clearing

A function named ClientClearCache() is introduced, which on passing a logical argument ‘True’ clears the local cache of Rich Client tasks immediately.

Mobile Enhancements

The following enhancements related to Mobile are added in Magic xpa 4.6. Android 64-bit Compliance Magic xpa Android client is now 64-bit compliant. Android and iOS Client-side Cache Clearing A function named ClientClearCache() is introduced, which on passing a logical argument ‘True’ clears the local cache of Rich Client tasks immediately.

45

Keeping the Device Awake A property Keep Awake is provided for Rich Client Display forms to facilitate keeping the device awake. When the property is set to ‘True’ and when the current form is active, the device remains awake.

Browser Client Deprecated

As of Magic xpa 4.6 Browser Client feature is declared as deprecated, it will be removed from the Magic xpa offering in a future release.

Fixed Issues # Description

77124 A Window Hit event defined in a subtask with Propagate set to 'No' caused the child window to move to the background while clicking on the parent Form or the title.

149898 In a particular scenario, a RIA crashed while sorting with UserFunctionality Ctrl+T.

152600 CndRange() function was found to be executed when the 'False' value was passed as its argument.

153045 When a Model was applied to an SQLite Table name and clicked on 'Inherit All Properties', DB Column name was found to be removed.

155980 The mls_bld.exe file was not getting converted properly according to the source file.

156805 Magic xpa Documentation updated for RIA License count.

157065 If there was a space at the beginning of the task variables, 'DataViewToText() - Illegal task variables specified' message was displayed.

157296 Magic xpa Studio crashed when Default Database with XML Data Source in Database was used and clicked on Data View of a program.

157309 Two Online programs behaved differently when Cnd was set to 'No' for a batch.

157499 When a Label control was placed on the Table header, the higher Z-order was displayed in the back instead of in the front.

46

# Description

157561 In an Online program, the message 'Valid control input range is: ' was displayed when Range was not set.

157659 When control verification had an Internal event 'Subform Refresh', the cursor was found to be parked on the second Edit control of the called program.

157969 In a specific scenario, Magic xpa Runtime engine crashes in the host application.

158486 DBErr() function returned only 255 characters when a custom error message was longer than 255 characters.

158639 Decimal Parsing snippet returned an incorrect value.

158646 On an iOS device with the language set to Japanese, Null character appeared at the end of the fields automatically.

158742 In a particular scenario, Magic xpa Studio crashed when a user-defined function from the Main program was called in a Batch program using Evaluate operation.

158798 The Push Button was found in disabled state erroneously when an event was raised using GetParam() function.

158938 When a non-interactive program was called from an interactive program, WinMinimize() function on executing second time onwards did not work.

159054 Radio Button was found to have incorrect Vertical Alignment on migrating from UniPaaS to Magic xpa.

159055 The column title was found cut after migration.

159285 On a particular version of iOS, when the Japanese language was set, the data was not extracted.

159505 When the incremental update was set to 'Y', the variable Init was recomputed at the last record.

159534 Magic xpa Studio crashed while activating F8 on an RC program if 'Else Block' was disabled in the program.

47

# Description

159714 A Push Button on a phantom task having zero records was seen as disabled when its Enabled condition was set to 'True'.

159789 The Internal event 'Mark Previous Char' was found working incorrectly at the end of the first character in an Edit box.

159810 When the encrypted text in Blob was tried to save using function Blb2File(), garbage data was displayed.

159906 If Color property was set to GUI Display in Data View, and if a 3-D style was applied to a control on the form, a new color of the reference color was found to be created for it after migration.

160524 Data was not displayed on navigating among pages using Back and Forward buttons, a Route event was raised in parent program and it was invoked from one of the two sibling programs.

161179 An error "Uncaught Reference Error: global is not defined." was returned while executing Web Client programs due to the newly introduced Angular behavior.

161289 Space was getting selected in the text selection for a Virtual variable of picture size 'X10', when reparked on the Edit control using the Tab key.

161466 The function Rights() was found to return an incorrect value for 64-bit engine using Active Directory.

161704 On iOS device, CndRange() function was found to be executed in a particular scenario on Local DB tables although 'False' value was passed as its argument.

48

Magic xpa 4.5a

We are delighted to present Magic xpa 4.5a update with new features and enhancements. Web Client New Features

The following new features are added in Magic xpa 4.5a.

Support for Calling an Overlay Window Present in a Web Module Marked as Load on Demand

Now you can call an Overlay window present inside a Web module, when the Web module marked as 'Load on Demand' is loaded.

Note: If you have any projects generated in Magic xpa versions prior to 4.5a, you need to perform certain steps. Please refer the help topic Home > Reference Guide > Navigation and > Repository Manipulations > Web Module Properties.

For new projects generated in 4.5a, those steps are not required as the generation process handles them. Web Client Enhancements

The following features are enhanced in Magic xpa 4.5a. Support for Angular 8

Magic xpa 4.5a update supports Angular 8 for Web Client. You are required to use node.js version 10.9 or greater.

To upgrade your Magic xpa Web Client applications from Angular 7 to Angular 8, please refer the help topic Home > Mastering Magic xpa > Web Client Application Development > How Do I Upgrade Magic xpa Web Client Applications from Angular 7 to Angular 8?. Enhanced Table Row Editing

To enhance the functionality of row editing in a Table, in addition to the existing Angular function isRowInRowEditing(), a new Angular function mg.isCurrentInRowEditing() is introduced. The later enables you to edit a row in a table when the controls are part of the logical record but not inside the table.

You need to use this method only while using the controls outside the Table control and if the current row is in row editing status. 49

Support for Customizing Error Message

Magic xpa 4.5a update enables you to write a custom error message using mgError tag. Support for Web Application Generation from Inside a Program

You can generate a Web Client application while being inside a program. The program in working is automatically saved before application generation. 64-bit Runtime Features

The following features are provided in Magic xpa 4.5a Runtime.

Support of WMQSeries

WMQSeries is supported for 64-bit xpa Runtime Engine. XXLNumericSize Special Flag Set to ‘Yes’

For Magic xpa 64-bit Runtime Engine, the default value of the special flag XXLNumericSize is set to 'Yes' internally. If you set this flag to ‘No’ in Magic.ini, Magic xpa overrides your setting. For 32- bit Runtime Engine, the behavior remains unchanged. General

The following concept paper is added in the help and in the documentation:

Connecting Magic xpa with Git Repository.pdf.

50

Fixed Issues Defect Description

157537 In a Web Client task, 'Index out of bounds' error occured when the task had a Link Query, the number of records were less than a page, and the Create Line event was raised.

157839 While invoking an Overlay window, when the second record was attempted to create in a table, 'Duplicate index' error occurred.

158366 In SFDC project FactoryMaster(Access), the server requests in a Subtask triggered the server requests for parent task when the parent task had main source with Link Query/Locate and an Expression in Init of a Variable causing server-side operation.

158732 Studio crashed when 'vcgantt', a third-party control was dropped on a Form.

51

Magic xpa 4.5

We are delighted to present Magic xpa 4.5 with the addition of some interesting features and enhancements, as well as removal of some features. Support for 64-bit Server Engine

Magic xpa version 4.5 comes with 64-bit server engine supported in background mode in order to take utmost benefit of a 64-bit operating system. The following points are concerned with 64-bit server engine support:

In case of Studio product installation, the default selection for 64-bit engine support is according to the Operating System (OS). For 64-bit OS, both 32-bit and 64-bit xpa engines are installed. For 32-bit OS, only 32-bit xpa engine is installed. In case of Server product installation you can select either from 32-bit and 64-bit Server product installation. While adding 64-bit pointers to buffer you need to take care of adjusting positions of the next members in the buffer so that the application can be used with 32-bit and 64-bit xpa engines. Unsupported Gateways

All gateways except the below ones are supported:

AS400/Db400 gateway Gigaspaces gateway Web Service gateway Unsupported Runtime Features

MgComCreator DDE WMQ Discontinued Provision of Other Runtime Features

Java installation that earlier came bundled with Magic products installation is now discontinued. You need to install Java separately. o For Studio product installation: - Always set 32-bit Java in all configuration files (even Web Requester of GS is 32-bit). - In Magic.ini, set both JAVA_HOME_32 and JAVA_HOME_64 (if installed). 52

o For Server product installation: - 64-bit: Always set 64-bit Java in all configuration files. - 32-bit: Always set 32-bit Java in all configuration files. o For Desktop Client product installation: - Always set 32-bit Java in all relevant configuration files. - In Magic.ini, set only JAVA_HOME_32 (if installed). Once you install Java, you can use Magic's utility MagicJavaConfig to set a new/update the existing JAVA_HOME path in various configuration files of xpa.

Hardware Based Licensing (HASP) will be supported only in 32-bit products and components installation.

Web Client New Features

The following new features are added in Magic xpa 4.5. New Events

The following new internal events are introduced: Subform Close The Subform Close event explicitly closes the running task in the specified Subform control and returns the Subform to ‘None’ state. No Program Execution Right The No Program Execution Right event is raised when the user trying to execute the program did not have the program execution right. New Function mg.SimulateClick()

A new function mg.SimulateClick() is introduced for enabling you to raise Magic events from Angular. New Authentication Functions

Magic xpa 4.5 provides the following new functions to enable you to work in anonymous and authenticated sessions.

5. IsLoggedIn(): Checks if a user is logged in or not. 6. Logout(): Logs-out a user from the on-going session.

53

Sophisticated Web Application Generation

Magic xpa update brings you a sophisticated Web generation output dialog with the provision to display the generation progress. The dialog shows the progress of generation in the step-by-step manner in the order of the tasks completion. The generation output dialog box stays on the screen until you close it. You can press the image buttons next to each step of generation to view the filtered log for the desired task. Support for Sophisticated Functions under Web Menu Integration with Microsoft® Visual Code You can now open the generated project in Visual Studio Code by selecting the option Open in Visual Studio Code under Web menu. Support to View Recent Generation Log You can view the log of Web application generation recorded in the file nodejs.log file by selecting the option Show Recent Log under Web menu. One-click Minimization of Modals

Now you can minimize and restore multiple modal windows in a single click. Magic xpa update introduces a new flag named SpecialAllowMinimizeAllModals to provide minimization of modal windows. SpecialAllowMinimizeAllModals When you set this flag to ‘Y’ and when you have multiple modal windows open, then clicking on the minimize button of the modal window in focus minimizes all the windows in the runtime tree.

Valid values: Y, N

Default value: N Support for Ability to Modify the Code during Runtime

Now you can make changes to the Web Client project files while the runtime engine is executing in the background. All you need to do is set the value of the option 'Run project as' to 'Web Client' and set the 'Edit Project mode' on. Support for Ability to Change the Program during Runtime

Now you can select another startup program and execute it without the need to stop and start the runtime engine while one program is already executing.

54

Web Modules for Better Folder Management

Instead of the ngModule that includes all the Magic components, you can now create independent Web Modules per folder for your Web Client applications, which can be generated and loaded on demand. Utility to Check Availability of Required npm and node.js Packages

Magic xpa now provides a way to verify the Web environment on your computer. It determines if the npm and node.js Angular packages are installed and if they match the required versions. Provision of New Property: ConfirmUpdateForWebClient

In order to override the default value of Confirm Update for Web Client tasks, a new property named ConfirmUpdateForWebClient is introduced. It is added to Magic.ini to control the default value for Confirm Update on Web Client tasks. Provision of New Directives mgFormat Magic xpa 4.5 provides you a free hand to be able to implement masking of mobile number formatting, currency, etc., your way. Magic provides you a directive named mgFormat that replaces the Pattern attribute and the two earlier directives AlphaMagicDirective and BooleanMagicDirective. NonMagicControl You can assign a new directive NonMagicControl to a focusable non-Magic html element to intimate the Magic engine about a new html element in focus. If the previous control-in-focus was a Magic control, then this directive updates the variable attached to that Magic control. Support for Customization of Alert and Confirmation Messages

Magic xpa 4.5 allows you to use your own component to customize the alert and confirmation messages to the desired ones in your Web application in place of the default JavaScript alert and confirmation messages. All you need to do is to employ the service ConfirmationComponentsMagicProvider to customize the UI messages.

55

Web Client Enhancements

The following enhancements are done in Magic xpa 4.5. Support of Web Client for Single User Edition

The Single User Edition supports Web Client tasks. You can use the standard studio during development as in case of the other tasks. You need to set LicenseName=MGWEB during deployment in order to load the correct default license. Enhanced Table Display

The tables with empty records will not show default values in columns now when ‘Allow Empty DataView’ property is set to ‘Yes’ in Web Client tasks. Enhanced HTML Generation

With Magic xpa update, you can generate HTML code for the selected individual control, for the selected control with its child controls, and for the entire Web Client form.

You can also avail the generated HTML code for future use. You can press the Copy button and the generated HTML code is copied to Windows clipboard without having you to mark the code before copying. No Generation or Overriding of CSS Files per Component

Magic xpa does not generate separate CSS files for each component. If you already have a project in Magic xpa 4.1/4.0 and you upgrade to Magic xpa 4.5, you need to update the file Magic- style.css with the following styles:

.button_image_background_size{ background-size: 100% 100%; } .lable_overflow{ overflow: hidden; } .table_scrollBar{ height: 600px; overflow-y: scroll; } .container_border{ border: lightskyblue solid 1px;

56

} .selected { background: #F5F5F5; } .table_row:hover { background-color: #EEEEEE; }

Now onwards, when a program or a form will be generated, the css file will not be created inside the component. The common css file will be referred. Support to Generate Metadata Support to Maintain Identical Metadata between Magic and Angular Projects The Magic xpa update now copies the generated metadata files from the Magic project’s \input folder to the Angular folder \magic-metadata.

Thus, you can maintain the same versions of the metadata files between xpa and Angular projects.

57

Support to Maintain the Most Recent Metadata When you generate the same Web application second time onward, Magic xpa 4.5 clears the previously created \input folder. The Overlay Windows

An overlay window in Magic xpa 4.5 behaves identical to a Modal window. Means, all operations after the Call operation are executed only after the Called window is closed.

You can now control the properties of overlay windows from Angular/HTML/CSS. For more information, please see the concept paper Developing Web Client Applications. Support for Same Workspace for Multiple Projects

Magic xpa update now provides you the ability to have multiple applications or sites under one Angular (CLI) workspace. Additionally, you can create shared set of components, directives, and services for your applications within the same Angular workspace. New Concept Papers

The following concept papers are added in the help and in the \Support folder:

Developing Web Client Applications o Row Editing in Web Client o Routing in Web Client o Customizing Overlay Windows o Navigating Browser History o Customizing Alert and Confirmation Messages o Concepts of Login and Logout o Understanding Web Modules Deploying Web Client Applications

Removal of Mouse Events for Web Client

The support for two events ‘Mouse Over’ and ‘Mouse Out’ is removed for Web Client tasks.

58

Non-Web Client New Features

The following non-web client features are added in 4.5. Provision to Disconnect from SQLite Database

You can disable all the existing database connections to the SQLite database once the special flag SpecialPostRequestDBDisconnect is set to Y. SpecialPostRequestDBDisconnect The runtime engine disconnects all the existing connections to the connected SQLite databases when all of the following conditions are true:

This flag is set to Y. The runtime engine was executed via the xpa studio. The runtime engine is activated as an enterprise server (connected to a middleware). The runtime engine finished executing the request (the engine has just moved from available status) and is now returning control to the studio. This status can be seen when the engine is connected to a middleware. The connection is to a SQLite database. Valid values: Y, N

Default value: N

Non-Web Client Enhancements

The following non-web client features are enhanced in 4.5. Improve Git support

To overcome the limitations of PushOK Git and to enable you to work with Local and remote Git repositories, xpa integrated with TortoiseGit and work with repositories directly from the xpa studio interface.

With TortoiseGit, xpa makes it possible for you to:

Add project files to the repository, commit your changes, pull the changes from and push them to repositories, compare, and merge for individual project repository items; without leaving the studio. Cherry-pick instead of merging to have exact control over which commits are ported back to the master branch.

59

Session Hijacking Prevention for Web Client

The flag SpecialRIAGenerateAndValidateSessionID is renamed as SpecialClientGenerateAndValidateSessionID in Magic xpa 4.5. The latter is now effective for Web Client as well. In the previous versions (starting from Magic xpa 3.2d up until 3.3c), the flag retains its old name: SpecialRIAGenerateAndValidateSessionID. The flag SpecialClientGenerateAndValidateSessionID is not supported for Broker. Android: Migration to Android Jetpacks

Magic app now uses AndroidX for management of Android Support Library using Jetpacks. iOS: Support of iOS 10

Magic xpa Rich Client Applications now support minimum iOS 10.

Non-Web Client Removed Features

The following non-web client features is removed from Magic xpa 4.5. Support for Windows 10 Mobile

Support for Windows 10 Mobile is discontinued in Magic xpa 4.5. Support for FlexLM Licensing

Support for FlexLM License Server is discontinued from the installation of Magic 4.5 for all product types.

60

Magic xpa 4.1

New Features and Enhancements

We are delighted to present the Magic xpa 4.1 update with new features and enhancements. New Features

The following new features are added in Magic xpa 4.1. Magic xpa Needs Angular 7 Magic xpa 4.1 update now works with Angular 7. Support for Row Editing in Table Control Magic xpa now supports editing a row in Table control. The following new features are added to be able to achieve the row editing functionality.

A new internal event named ‘Enter Row Editing’ A new Magic function named ‘IsRowEditing()’ Support for Updating Magic Data View from Outside Magic xpa now adds the ability to update the variables defined in Data View from Angular code. Consider it to implement uploading files to the server. New Function DataViewToJSON() Magic xpa introduces a new function DataViewToJSON() to return the data from program Data View to JSON format to be able to read it from Angular code. Support for Date Field Using Form Control Magic xpa now supports editing Date field using Input Type = Date. This is applicable for Native theme. The Date value accessor is added to support editing Date field, which is inspired by angular- date-value-accessor: https://www.npmjs.com/package/angular-date-value-accessor. Enhancements

The following enhancements are added in Magic xpa 4.1. Easy Row Selection You can select a row by clicking anywhere on the desired row. If you click on the disabled controls placed on the desired row, the control does not select the desired row.

61

Provision for Better Clarity in Console Messages In order to bring more clarity with the source of errors in console, Magic xpa now marks the errors to indicate that they are distinctively from Magic. Record Flush Event - Control Re-fetching from DB An optional parameter named ‘Refetch Record’ is now added to the Internal Event ‘Record Flush’ to control whether the event will re-fetch the record from the database. Fixed Issue Defect Description

154736 In a particular case, not all records are displayed while calling a program using Route.

62

Magic xpa 4.0

The Magic Web Application Framework

We are delighted to introduce our most awaited offering of Magic xpa, the Magic Web Application Framework, to provide rapid business application development with modern UI development capabilities using Angular, HTML5, and CSS. Apps Powered by Angular You can now easily create modern business apps powered by Angular to provide a rich user experience and meet the increasingly complex enterprise business expectations for digital transformation.

You can now take your Magic xpa business logic for the back and the front end, and easily generate Angular code from it. The new Angular-based application can then work seamlessly with any Web presentation framework. The new Web application framework is beneficial in the following ways:

You are free to tap into the world of Angular. Your apps are client-free since the deployed application is pure JS, HTML5, and CSS3. You can outsource the screens design. The Web Client application generation can be viewed in the following illustration:

7. In the Magic Studio, you define your business logic. 8. In the Magic studio, with just a click of a button, you generate your Angular code using the Magic Converter, which is customizable by advanced users. 9. In Angular, your code is now ready-to-use, but you can also add additional Angular code that is pure client-side logic using some Magic tags. 10. Outside the Magic, you or a designer can update your screens using HTML and CSS.

63

In this way, you can develop highly-responsive Web applications in no time. You can use the structured, low-code Magic xpa development platform for creating the business logic together with an open platform for the presenting your screens including the UI and the UX. Why Do You Need Magic’s Web Application Framework?

Here is why you need Magic’s Web Application: Magic and Angular Fit Well Together Applications created with Magic’s Web application framework will be pure Angular applications, meaning they will be deployed and managed exactly like any Angular application. State-of-the-art Technology Magic’s Web application framework uses state-of-the-art client-side technologies including JavaScript, Angular, CSS3, HTML5, and TypeScript. You can create full-fledged business heavy- duty, transaction intensive web-based applications including data entry, enabling you to integrate your applications with Web Technology. Magic xpa’s Client-side Architecture All of the UI-related work, including the UI logic, is done by the browser (the client), which enables you to create fast and dynamic Web applications. In this architecture, the server only sends raw data to the client and the client generates the screen. Manageable Large Scale Angular Applications Over the years, the number of lines of code needed to develop functionality-intensive Web applications has been growing at a very rapid pace. As applications are evolving, the market keeps coming up with better ways to handle the ever-increasing lines of code. Advanced Customization of Your UIs The beauty of the decoupling of the UI and logic, which Magic’s Web application framework makes possible, is the flexibility to split the effort and time invested, between the business logic and the UI/UX. Less Code; More Versatility The Magic engine’s robust business logic paradigm can save a lot of code in Angular. It helps to set-up most of the behind-the-scenes logic for presenting the UI dynamically.

Magic offers a wide range of control and form properties, which are very simple to use and can save a lot of lines of coding in Angular. For example, validation, recompute, conditions, visible, enabled, tooltips, and more.

64

Expressions on any of the properties are very easy to use in Magic, which otherwise would take dozens of lines of codes to develop in Angular, to achieve dynamic behavior in apps.

The appearance properties, such as Font, were removed and the basic appearance is done in HTML/CSS/Angular. The remaining properties are for either binding or behavior and these are set in Magic with no need to code these functionalities in Angular. So, by adding a tag to Angular for one of these binding or behavior functionalities, you are basically linking Magic to Angular. Fully Compliant with Single-Page Applications (SPAs) Magic’s Web application framework is fully compliant with single-page applications (SPA), which provide a smoother and richer user experience. Cloud Enabler: The Sky’s the Limit Since the Web client is Web-enabled, running in the browser, the Web client is cloud enabled. This means that your apps can be deployed on any cloud. Cross Browser Support and Portability Your Web applications will be platform-agnostic. They will run on any browser and on any device with zero footprint. You do not need to install anything. Ease of Maintenance in the Future You can change your application logic from Magic and it will be reflected automatically in your Angular-based apps. Thus, there are less efforts to make changes in your application in future. Full Git Support Magic xpa is equipped to empower team development with its full Git support (including branching and merging).

65

About Magic Software Enterprises Magic Software Enterprises (NASDAQ: MGIC) empowers customers and partners around the globe with smarter technology that provides a multi-channel user experience of enterprise logic and data.

We draw on 30 years of experience, millions of installations worldwide, and strategic alliances with global IT leaders, including IBM, Microsoft, Oracle, Salesforce.com, and SAP, to enable our customers to seamlessly adopt new technologies and maximize business opportunities.

For more information, visit http://www.magicsoftware.com.

Disclaimer Magic® is the registered trademark of Magic Software Enterprises Ltd. All other product and company names mentioned herein are for identification purposes only and are the property of, and might be trademarks of, their respective owners.

Magic Software Enterprises has made every effort to ensure that the information contained in this document is accurate. However; there are no representations or warranties regarding this information, including warranties of merchantability or fitness for a particular purpose. In no event Magic Software Enterprises Ltd. will be liable for any loss of profit, business, or data, or any kind of indirect, incidental or consequential damages due to the use of this document. Magic Software Enterprises assumes no responsibility for errors or omissions that may occur in this document. The information in this document is subject to change without prior notice and does not represent a commitment by Magic Software Enterprises or its representatives.

Copyright © 1989-2020 Magic Software Enterprises. All rights reserved.

66