AMT Release Notes

AMT 57

Released: 19 Aug 2019.
For availability, please contact the Avanade Service Portal for information on downloading new releases.

Special attention items:

There are no special attention items for this release.

Product Cat Subcat Description Type Version Priority
AMT LION Developer Database 324284
Objects are now saved with lowercase names.

Index names were saved in the casing in which one had entered the name originally into the AMT Developer Studio. This would impact how names were to be sorted. In the past, all indexes were stored in uppercase, however, in newer releases Indexes could be created in lowercase as well. If you save something in lowercase this would be sorted at the bottom, apart from the old indexes that were created in uppercase.

Index names were incorrectly stored in lower case instead of in upper case as it should be. This has been corrected and items will now be saved correctly. Also, indices, created in lowercase, will be corrected in the Repository database when applying the Repository upgrade.
FIX AMT 57
AMT LION Developer Code Logic 324112 
Global DLL Routines have been updated to support multiple routines within an object.

There was a need for keeping business-logic grouped together per functionality, without sacrificing the ability to use parameters because, currently, the Main-routine determines the parameter set.
In AMT 28, multi routine support was already implemented for Global Performable Routines. Support for Global DLL Routines was still missing.

Multiple public functions are now allowed within the Global Routine DLL
NEW AMT 57
AMT LION | AMT COBOL Control Center Configuration 325570

The Combobox used to select the 'Database setting' in the Properties section of the Applications details, was not wide enough (found under 'System configuration > Architecture > Applications'). The selected database name Combobox was too small in cases where Microsoft SQLServer names with instances were used.

The selection dialogue has been expanded to enable users to view the full database name.
FIX AMT 57
AMT LION Runtime AmtScreens 327845
Improve memory usage for AmtScreens.

AmtScreens slowly uses more memory. The first improvements, were already made in change C1901-074.
Though memory management still needed to be improved. 

Memory management has been improved, please keep in mind that released memory is not necessarily released to the OS by the .Net framework
FIX AMT 57
AMT LION Runtime AmtScreens 327917
Macro from other application partly visible.

In AMTScreens, when a Macro was connected to a role and not to a user and this role is visible to others in other applications as well, the Macro could be seen in the other applications too.
The macro would only appear in the "advanced" overview.   

Macros assigned to roles are not visible anymore in other applications even if you are a member of that role.
FIX AMT 57
AMT LION Developer Various 327296
Improve Label Management Screen

The Label Management screen should get a more consistent look and feel that is comparable with the other screens of the AMT Development Studio like the Revision Control screen.
Currently, some options are being overlooked and missed. 

In this release, the layout is updated to be more consistent with the rest of the AMT Development Studio.
Now the buttons and context menu items will have better and descriptive names, like for instance, remove instead of Delete, and Assign move instead of "move to generation set". 
Also, The context menu (the menu that does get opened with a right-click) and buttons at the bottom now contain the same actions.
Finally, a few minor bugs are fixed, like for instance, the fact that the three-view should update when a new label is created. 
FIX AMT 57
AMT LION | AMT COBOL Runtime Jobs/Batches 327366

If only a filename was defined instead of the entire path and the printer was set to to be a file printer, prints would be created in the root of C:\Windows\System32, because the file was copied to the default root of the service. Additionally, using %APPNAME% in the 'Print file' path, found in the printer section, did not work either if a file printer was used.

In cases where only the print file is configured, without a path, the file is now printed in the configured \AMTFilePrint directory.
Additionally, informational messages are stored in the Print Controller log.
CHANGE AMT 57
AMT LION | AMT COBOL Developer Code Logic 328034
Developer would crash large chunks of code were commented out.

Our testers had discovered that the AMT Developer Studio could crash in cases where most of the source-code was commented out. 
This would invoke a Stackoverflow error when the source would be validated. This would only occur in cases where large objects would have most of the code commented out.

The Parsing of the code has been refactored to prevent a recursive loop, thus fixing the stack overflow

FIX AMT 57
AMT LION Developer Forms 326066, 328192

Internal tests revealed that the Pagecontrol item couldn't be moved if a clear area next to the tabs was clicked, although it could be moved by using the move cursor.

Page control can now also be moved when the clear area next to the tabs is clicked.
FIX AMT 57
AMT LION Runtime Web Client 326756
Disable timer in Timer Event does not work on the web client

When a timer is disabled on the web client, the Timer Event caused the client to end. 

The timer will now be stopped correctly , and works as expected.
FIX AMT 57
AMT LION Runtime AmtScreens 318021
Allow Filter by User in Macro Editor.

When you look at the macro editor in AMTScreens and look at the list of all the Macro's in advanced mode, all users are shown, and you cannot select a user to see what is visible for that specific user.

Macro's for a specific user can now be shown when in advanced mode and all Macros visible for that user are shown.
NEW AMT 57
AMT COBOL Runtime Various C1906-111
Added automatic start of transactions.

This change adds the ability, in the Control Center, to specify which transactions should be started automatically when the Transaction Server is started. In cases where more than one transaction should be started automatically, the priority can be used to determine the order in which the transactions should be started. The Transaction that has the highest priority will be started first. The automatic start option can be found in the Control Center under "System Configuration" --> "Transactions" --> "Transaction Control".
NEW AMT 57
AMT LION Runtime AmtScreens 327752
RTQuery: Row number is not a fixed column

In RTQuery within AMTScreens, row number headers were not correctly displayed. Row numbers were shown like normal data from the table while this is not the case. This would be the case in both the Table Query overview as Free Query overview. 

Row numbers will now appear as fixed headers as they would appear in LionScreens.
FIX AMT 57
AMT LION Runtime AmtScreens C1907-045
AMTScreens: Ordering RTQuery would work unpredictably. 

The ordering of RTQuery list in AMTScreens worked out to be unpredictable and did not match how LionScreens operated.
If one would decide to order the records descending, one would see that the first list would appear ordered, though,  after selecting "Get more data" the list would not be ordered any more.

Fixes in C1906-117 , together with improvements of the ordering system in this ticket solved this issue.
FIX AMT 57
AMT LION AmtTools Debugger 326059
Debug of Web Client with manager does not work

When Debugging a Web Client with an application server, the Debugger was not able to find the client in all cases, as could connect to one of the other applications servers which did not run the Debug Client for the Web Application. Supposing, one would start the Debugger Web Client and the Debugger would connect the incorrect server, the following error would appear. "Error Message: session fire-up error: Error with processing client data: No debugger client found."

The Web client will now be directed to connect to the same application server as the Debugger, so, they can see each other.
FIX AMT 57
AMT COBOL Developer Database C1907-065
Implementation of COMS INSTALLATION_DATA in AMT

COBOL programs that are migrated from former A-Series Mainframes,  very often used the COMS INSTALLATION_DATA to retrieve (static) data on the Mainframe.
To mimic the usage of COMS INSTALLATION_DATA in AMT we have added new tabel called AMTSYSCOMSINSTALLATIONDATA to the application database.
This table will only be added for A-Series AMT COBOL applications.
NEW AMT 57
AMT LION | AMT COBOL Developer Database C1907-072
User triggers are now supported.

Developers were requesting to be granted the ability to create triggers in a Database, because, up to this release, Developers couldn't add their triggers to a table. This was not possible because the REO would remove the inserted triggers. Additionally, defining triggers could impact the behaviour of the AMT Framework negatively.  
From this Release onward, Developers can define their own triggers in the AMT Developer Studio on Tables. However, it should be noted that this will not work for views and it will also not work for applications migrated from an OS2200. Triggers are meant to perform the following actions: insert/update/delete and act based on the limitations of the target database (before/after and/or row/statement). 

The following note is import: Only the new Reorganize is capable of creating these triggers
NEW AMT 57
AMT LION Runtime AmtScreens C1907-074
RtQuery Issues

Array data is not aligned correctly, the loaded data is not refreshed when switching back to table.

Font has been changed to fixed width for the displayed data and the data is refreshed when switching to the Table tab.
FIX AMT 57
AMT LION | AMT COBOL AmtTools Reo 326384

The old REO loaded the Database DLL only once for every application. If, in the meanwhile, the application was regenerated this newly generated Database DLL would not be picked up again. In that case, the old REO had to be reloaded.

The new Amt Reorganize reloads after every analysis of the current state of the Database DLL. Therefore, its no longer necessary to restart the AmtReorganize or AmtReorganizeService.

Note: This functionality has not been added to the old REO.
FIX AMT 57
AMT COBOL Control Center Various C1907-077
Implemented Restart At parameter for starting scripts.

For new converted JCL scripts it is now possible to specify a restart point. In the Control Center, Start Job a parameter "Restart At" is now visible when starting a script. When running converted JCL scripts it is possible to provide the 'step' or 'step.procstep' to restart at here. The script then skips all steps before the specified step. It is an AMT implementation of the JCL RESTART parameter.

Existing customers planning to use this parameter can do this by writing their own restart mechanism in the (powershell) script library and scripts. The Restart parameter is provided as a string by the ComScript Job object: 

$global:Com = New-Object Asysco.Amt.Scripting.Comscript
some init code
$global:Com.Connect()
$global:AmtJob = $global:Com.GetMyself()
$global:AmtJob.RestartAt
NEW AMT 57
AMT LION | AMT COBOL Runtime Web Client 328067

In cases where multiple users had multiple applications open (in multiple tabs or browsers), these users could cause an exception if they opened a new connection at the same time, due to the fact that the browser logged all applications automatically after a restart or reconnect.
This happened because the connection, made per station, was shared without being locked.

The initial connection is now unique per session and the locking mechanism has been fixed.
FIX AMT 57
AMT COBOL Runtime Various C1907-086

The sorting functionality did not know how records in a file were stored. This information is needed because in sequential files all records are stored as one chunk of data without any separators, whereas in other files records can end with a Carriage Return and a Line Feed.

This information is now stored in the alternate data stream of a file which enables the sort functionality to determine the file record ending.
CHANGE AMT 57
AMT LION | AMT COBOL AmtTools Reo C1907-090

In the event where an application had already been analyzed, it was possible to run the AMT Reorganize process again, which resulted in unnecessary errors.

If an application has been reorganized, the application has to be reanalyzed before it can be reorganized again.
FIX AMT 57
AMT LION Developer Code Logic 328322
No warning/error when variable does not exist in structure

A fully qualified member within a structure was validated without errors even if the parent is not the real structure parent of the member.

Corrected the check when the member is found that the parent is also the one we expect.
FIX AMT 57
AMT LION Developer Database 328323
Opening new indexes result in error

Some new indexes could not be opened, only by clicking the index directly within the table could it be opened.

Index names were incorrectly saved (should be upper cased), corrected the saving and corrected the database with a repository upgrade
FIX AMT 57
AMT LION Runtime AmtScreens 328329
Editbox in AMTScreens truncating 0's after decimal

Value was being truncated due to changes made for overwrite.

Editbox is no longer truncating 0's after the decimal.
FIX AMT 57
AMT LION Runtime AmtScreens 328330
A thousand separator set to period would take place of character.

In AMTScreens, values were being truncated due to changes made for overwrite.
The thousand separator set to a period would take the space of character. 
Eg. a numeric editbox with the length 6 and decimal 0, with the thousand separator set to a period, would ignore the last digit when one would type in '123456'.
In this case it takes "12345," and seems to take the space for the thousand separator. 

The formatted value will no longer be corrected, fixing this issue.
FIX AMT 57
AMT LION Runtime AmtScreens 328331
Editbox with type String does not allow any input

Editbox with type String did not allow input, due to changes made for overwrite.

Editbox of type string now accepts input again.
FIX AMT 57
AMT COBOL Runtime Various C1907-098
Ability to store COMS program title and name information in AMT.

COBOL programs, migrated from A-Series Mainframes, are defined in COMS with a program name and a program title. The COMS program title reflects the "Program name" (actually the assembly name) as currently being defined in the AMTSYSPROGRAMCONTROL table. For storing the COMS program name information an additional field called "Program alias" is added to the AMTSYSPROGRAMCONTROL table.
Note that this change will only concern former A-Series customers.
NEW AMT 57
AMT COBOL Generator Various C1907-099
The parser didn't handle CICS statements where the RESP() was used not at the end a statement.

For migrated IBM COBOL applications, the parser didn't always handle CICS statements correctly.
Especially in cases, where the RESP() was not at the end of a EXEC CICS block. For example in "EXEC CICS READQ  TS"

All CICS/VSAMDB commands are now updated to allow RESP() and HANDLE() to be anywhere in the EXEC CICS block.
FIX AMT 57
AMT COBOL Generator Various C1907-100
Generator crashed on an error when generating AMT COBOL with certain jumps between sections.

This was a specific case found in a migration project that crashed the generator. At least 3 sections, 1 performs 2, 2 performs 3, 3 jumps back to 2, 2 jumps back to 1. One of the sections is the last one in the program.

This problem was fixed with this change.
FIX AMT 57
AMT COBOL Runtime Various C1907-101
MOVE LOW-VALUES TO  VARALPHA statement didn't work as supposed.

The following  did not work correctly:

MOVE LOW-VALUES TO  VARALPHA(10:2)

When executing statement above, a hex 0 character was moved in position 10 but a space was moved in position 11. This only happened for sub strings (using a reference modifier like 10:2) in combination with LOW-VALUES, HIGH-VALUES, ZEROS.

With this fix position 10 and 11 get a hex 0 value.
FIX AMT 57
AMT COBOL Generator Various C1907-102
Writing a working storage item without a name.

Writing a working storage item without a name cause a crash.

It was already allowed when after the level a "PIC|VALUE|REDEFINE" was found and now also directly a dot. In these cases the name will be "FILLER" automatically.
FIX AMT 57
AMT COBOL Generator Various C1907-103
The CICS send option ERASEAUP is not supported.

The CICS send option ERASEAUP is not supported and gives syntax errors.

Now the option is supported which clears all the unprotected fields on the bms map.
FIX AMT 57
AMT COBOL Generator Various C1907-107
For IBM AMT COBOL - Cics start did not support reqid().

The Cics start instruction did not support reqid() also the offset/at/after/time where ignored.

Implemented Cics start with an offset/time/after/at with reqid().
FIX AMT 57
AMT COBOL Generator Various C1907-108
The CICS CANCEL instruction is not supported.

The CICS CANCEL instruction is now supported where an earlier CICS START with a delay can be cancelled before its started.
FIX AMT 57
AMT COBOL Runtime Various C1907-109
Transaction Server Hook for pre/post-processing of transaction data.

AMT Transaction Server Hook is implemented for pre- and postprocessing (manipulation) of transaction data.
The hook is called twice, right before executing the transaction program, and right after the execution of the transaction program.
NEW AMT 57
AMT COBOL Runtime Various C1907-110
Implementation of COMS Conversation Area

For migrated COBOL A-Series applications, we needed to implement the COMS Conversation Area (a data-communication-oriented function).

The COMS Conversation Area has now been implemented in AMT COBOL.
NEW AMT 57
AMT LION Developer Code Logic C1907-111
Within AMT Developer Studio are the routine parameters not shown within code completion (Performable, DLL)

The routines parameters of a public routine are not shown only the parameters of the main routine are shown.

The code completion within AMT Developer Studio does now show the routine parameters of a public routine.
FIX AMT 57
AMT LION Runtime AmtScreens 328354
Blank accepts for report

Blank was not accepted as input for accepts in AMTScreens.

Blank is now accepted as input.
FIX AMT 57
AMT COBOL Runtime Various C1907-116
Implementation of shared programs (SHAREDBYALL)

Migrated COBOL programs  that were using the compiler option SHARING=SHAREDBYALL were running as a single shared instance on the Mainframe.
This means that all transactions/Program, that were calling this program, were using the same instance.
To mimic this behavior within the AMT-Framework, a program can now be defined as a shared program by setting the program type to "Shared".
This feature is currently only working when using a single Transaction Server and Transaction Agent.
This is a specific option for former A-Series Programs.
NEW AMT 57
AMT LION | AMT COBOL Runtime Various C1907-119
Comscript, FTP from script now uses file controller for local file.

When calling the Comscript FTP functionality from a script, like a download, the remote file was just downloaded into a local file without using the file controller. This caused locking errors when the file already existed and was locked by the script. 

With this change, the local file is accessed through the FileController connection the comscript already has. FileController takes care of any locking issues. 
Implemented for Upload, Download and AppendFile while these functions need access to a local file.

AMT COBOL also see C1908-007 
CHANGE AMT 57
AMT COBOL Runtime Various C1908-001
Add support for [CRLF] parameter in CMD SET command.

Added support for [CRLF] parameter in CMD SET command. This is translated by the CMD converter to an extra parameter called Option in the Amt-SetVariable call. This causes the value of the option to be added to the filename being set in the AMTSYSENVIRONMENTVALUE system table. The value of the option is added after adding a "|" as separator. This is then handled in the AMT runtime when the file is opened. This feature is added only for MicroFocus COBOL applications.
FIX AMT 57
AMT COBOL Generator Various C1908-002
Working storage(level 01) double defined should throw error. 

When a working storage item on level 01 is double defined a syntax error should occur.
Now a syntax error is produced which needs to be corrected first before it can be generated.
FIX AMT 57
AMT COBOL Developer Code Logic C1908-004 
Added support for EXEC DB2 TRUNCATE TABLE.

In this Release, support has been added for the COBOL statement "EXEC DB2 TRUNCATE TABLE".
In COBOL, the DB2 TRUNCATE statement deletes all rows for either base tables or declared global temporary tables. 
This statement can now be utilized inside COBOL Programs.
FIX AMT 57
AMT LION Runtime AmtScreens C1908-006
Station cannot be overruled in AMTScreens
Option /S: (Override station) missing in AMTScreens

Option /S: Is added to AMTScreens
FIX AMT 57
AMT LION | AMT COBOL Runtime Scripts C1908-007
Update on C1907-119, Comscript, FTP from script now uses FileController for local file.

When calling the Comscript FTP functionality from a script, like a download, local file access was not using the FileController. This caused locking errors in some situations.

With this change, the local file is accessed using the FileController when there is a FileController connection.
CHANGE AMT 57
AMT LION Runtime Various C1908-009
The identity option in a table needed to replace LIONRECNO with the specified field.

For the moment, under a switch this can be enabled. When the old REO program is phased out this new style will be made permanent. When identity is set on a table no LIONRECNO field will be added any more. The "RECNO_" index will only be created when there is no other index with the specified identity field and no logic. This might cause some syntax error when LIONRECNO or "RECNO_" is used but only when you have identity set on a user field.
CHANGE AMT 57
AMT LION | AMT COBOL AmtTools Reo C1908-015

In case a table is rebuilt after a change, for instance a change in columns, all indexes, triggers and foreign keys need to be re-created.

This has been implemented.
FIX AMT 57
AMT LION AmtTools Reo C1908-016
Amt Reorganize foreign key creation was not always done after the index creation.

The new Amt Reorganize did not always create the foreign keys after the creation of the indexes.

The foreign keys will now always be created after the indexes are created, this is needed because a foreign key depends on a index.
FIX AMT 57
AMT LION AmtTools Reo C1908-021
The new REO did not support /REMOVEINDEXES

The new REO did not support /REMOVEINDEXES

The new REO now support /REMOVEINDEXES /REMOVETRIGGERS /REMOVEFOREIGNKEYS which are all typically only used when migrating a mainframe database.
FIX AMT 57
AMT COBOL Developer Various 328350
Rename of a file with an index will rename the file but only rename the index name partially

When renaming a file with an index the rename appears to work correctly, but when writing to the file an index with the old name is created.

Corrected the updating of the metadata belonging to the file to have the correct index name. 
FIX AMT 57
AMT COBOL Runtime Various C1908-026
COBOL program crashes when it tries to insert a date in format 4/5/2019 (5th of April in the US).

This was already built in, but it failed when the zero was not specified. So 04/05/2019 did work, but 4/5/2019 failed.
On DB2 both values did work.
FIX AMT 57
AMT LION | AMT COBOL Runtime Jobs/Batches C1908-033
Files with record ending none, sometimes no data returned.

In an event, where a file (especially Microfocus sequential COBOL files) with one record and a record size that is less than the expected record size (as given in the layout), the Amt Filecontroller would not return the record. 
E.g. In the case where a file contains 19 characters but COBOL reads with a layout of length 80, the Filecontroller would not return any data, where it should return the first 19 char records.

Now all characters should be returned.
FIX AMT 57
AMT LION AmtTools Reo C1908-035
Amt Reorganize multi threaded does not work in all cases.

Several actions can not be executed as multi-threaded because they could be dependent on each-other so execution of multi threaded has been corrected. 
FIX AMT 57
AMT LION AmtTools Reo C1908-036
Amt Reorganize is no longer in preview.

Amt Reorganize is out of preview mode, The Old Reo and new Amt Reorganize will be delivered together for a while.
Once the new Amt Reorganize is used you will not be able to utilize the old Reo anymore.
NEW AMT 57