ORN:V15.1 Release Notes Summary

From Remain Software
Jump to navigation Jump to search



In case you do not want to wait for the official milestone build, you may install the nightly builds.

New and Noteworthy in TD/OMS V15.1

RDi 9.8 Installers We have created installers for RDi 9.8 which can be downloaded from our installation area.


Rdi98inst.png


I02330 - Kanban implement deploy Deploying a task by dragging it in the Kanban View is now possible.


Kanbanmove.png



New REST API's We have developed a set of new REST APIs. To access additional information about these APIs, please click on the link below.


New CLI API's We are moving all TD/OMS business logic into separate programs for our back-end modernization project. These APIs can also be called using a command with the same name.


User Option substitution variables The following User Option substitution variables have been added:
  • &OBIOBC - IFS Object Code
  • &OBIDRC - IFS Directory code (ends with '/')

All User Option substitution variables can be found here:


Apply Actions for IFS Objects The APYACTOMS command has been extended to allow execution for IFS Objects.


WebSmart Improvements The WebSmart PDW files can now be updated with the correct generation libraries and path.


I02293 - Crete SQL to populate OMDDI Introduced a new program to generate a JSON schema for each file listed in the data dictionary file.


I02320 - Data caching in Retrieve database API To enable data caching, it is necessary to create a Data Cache file. The file structure includes the following fields:
  • USID
  • CACHEKEY
  • SEQ#
  • CACHEDATA

Within the login API, the data associated with a specific user must be cleared from the Data Cache file.


GUI issues/enhancements resolved

01804 - Filter box issues
In the filter box of the components view, the cursor position moves to the beginning when we type not quickly enough. Also, the wildcards are not replaced correctly: e.g., *TEST* does not work. This has been fixed.
I02316 - Make it possible to view a detail relation source
Now can view the source of a member source relation in the components view.
I02329 - Improve the compile speed
Improve the speed of the direct compilation by not opening the Error list view when the compilation is successful.
I02317 - Update Jira exception logging
Insufficient information was being provided in the case where a connection to a Jira server would fail.
I02327 fixed null ip-address in certificate view
If a certificate does not have the ip-address field set then this would show up as null when viewing the certificate.
I02334 fix for failure to connect to https Jira server using proxy
An Update of the http libraries broke the proxy logic, the Eclispe set proxy settings was not being accessed in the correct way.
I02347 - Default compile command was not copied
When a new compile override was made in the GUI, the default compile command was not copied any more. This has been solved.
I02348 - Maximum records should be 100, not 500
The default number of records to fetch has been reduced from 500 to 100. This affects various views. This has been done to speed up the loading of the views.
141 - SLF4J class loading problem when OpenApi is installed in the TD/OMS RCP
resolved org.slf4j class clash with the RCP used Eclipse runtime and OpenApi.
I2140 Xref, cleanup orphaned source locations
When renaming a location not all location parts were being removed as part of the rename, the result could be that outdated locations were being processed on the Xref server.

Server issues/enhancements resolved

345 - Task search no longer works
When the nested group is included in the field selection, the retrieve database API fails to provide the accurate result. Resolved this issue.
I02355 - Incorrect message when *MSGF is transferred
When an *MSGF is transferred, we also look for the corresponding menu (in case a legacy menu is transferred through the cycle). When the menu object was not found, a confusing message was logged in the message log/ This has been resolved by not logging this message in this case.
I02332 - OMQCHGTP delete issue
If I delete a path from a sub-environment, the record in OMPTH is deleted even though the path is still defined on another environment/sub-environment. Resolved this issue
I02343 - The OMQCHGRL API pops up the wrong fields for action *CHANGE.
The OMQCHGRL API pops up the wrong fields for action *CHANGE and action *CHANGE is not working correctly. Resolved this issue.
I02321 - Source is added to the wrong source library
During the transfer, a detail (source member) is added to a source library even though no match is found with the (location) types defined on the libraries in that sub-environment. Resolved this issue.
I02342 - Retrieve Database API field selection issue
There was an issue resolved with generating the WHERE statement when we encountered a situation where two groups were categorized, with the first group assigned to 0 and the second assigned to 1. Resolved this issue.
I02346 - Retrieve Database API issue with fractional value
The database API fails to produce an accurate result for a field that contains a floating-point value. Resolved this issue.
I02354 - Retrieve Database API issue with groups
Data retrieval through the Database API does not function correctly when dealing with multiple nested groups. Resolved this issue.
I02319 - Modify OMQCHGEN and OMQCHGSE APIs
We have terminated the OMQCHGJD module and introduced API. Hence, these APIs are modified to use OMQCHGJD API.
I02340 - Copy does not work in the job description maintenance screen.
When you try to copy a job description code from the STRJDM screen, it gives an error "Incorrect action code and level selection." It has been resolved by changing the maintenance program.
I02351 - OMQCHGCL - Process does not work for conflict objects
Action code *PROCESS does not work in OMQCHGCL API when an object conflicts. It has been resolved by adding a Force indicator in the program.
T00353 - Introduce new procedures to WRAP the string.
New functionality has been introduced to facilitate the extended description.

OpenAPI Generator Enhancements

Please re-install the generator with INZOMSSRV SERVICE(*APIRESTGEN)

40 - Generate template for data structures We created a "template" for data structures to ensure that they occupy minimal space.

Ds template.png


41 - When generating without prefix the generation fails To ensure the accurate production of the REST API, we added extra logic that prevents difficulties when the request and response prefixes are not specified in the options file.

OpenAPI Smaller Issues

I02322 - REST API - Inline objects are not generated.
The REST API generator does not generate inline object definitions correctly. Resolved this issue.
I02324 - Pointer field values are not getting parsed in the Rest API generator correctly.
The load_post method in the M member does not contain the correct code to parse the pointer field values. Resolved this issue.
I02338 - OAS3- Generator generates blanks in the date field
The date field is filled with blanks. It needs to be filled with the YYMMDD date format. Resolved this issue.
I02353 - Memory leaks issue
Most of the REST APIs that were lacking memory leak prevention logic have been fixed.
I02350 REST API - The default value of the numeric field does not set correctly.
When numeric fields in the request body are left empty or no value is provided, the default value fails to be correctly set for those fields.

In case you do not want to wait for the official milestone build, you may install the nightly builds.

New and Noteworthy in TD/OMS V15 Milestone 3 (May 17, 2023)

DevOps Meets Ai We have included an Ai Chat interface to help you develop and perform other tasks. After upgrading to the new milestone, press the chat icon Chaticon.png to open the chat interface.

If you do not have an https://openai.com account, you must create one and create API keys.

If you want to try it, email helpdesk@remainsoftware.com and we will send you some test keys.


Tdomschat.png



T00338 - Upgrade the definitions view The existing definitions view in the definitions perspective has been enhanced to support more definition related entities and actions. For example now a new application can be created, create or delete environments, copy sub-environments and more without the need to use the green screen anymore. In the future more entities and their actions will be supported. The pictures below show a fraction of the added functionality.


V15 M3 release notes def view 1.png


V15 M3 release notes def view 2.png


V15 M3 release notes def view 3.png



01908 SQL References from Module to File DSPPGMREF does not show file references of modules using SQL. This has been solved.


T00347 - Expand the Data Dictionary file We introduced a new file called OMDDP, structured as follows:
DPINTL: A   1-8        (8) - Interface level
DPLOBC: A   9-136    (128) - Long object code
DPVALC: A 137-141      (5) - DB Exit Type
DPPRCS: A 142-143      (2) - Processing step
DPPGMN: A 144-153     (10) - Program name
DPPGML: A 154-163     (10) - Program library
DPDISI: A 164-164      (1) - Disable indicator

We implemented a new feature that enables the invocation of external programs for validating the token, where clause, and file records based on the Database exit type.

I02262 - Extend the database API We have enhanced the functionality of the data retrieval API by incorporating grouping in field selections, adding the 'distinct' keyword to eliminate duplicate fields, making the query case-insensitive, replacing 'like' with using 'STARTSWITH' etc.., and using words for operators such as GT, NE, EQ, etc...


New CLI API's We are moving all TD/OMS business logic into separate programs for our back-end modernization project. These APIs can also be called using a command with the same name.


I02133 - Maintenance program for user A user maintenance program has been created. It can be called by using the command STRUSRM. This command is available under the TD/OMS Internal menu. The documentation is here.


I02308 - New category layout for TD/OMS features We introduced a new category layout of the TD/OMS plugins repository to accommodate installing into RDi 9.8, the following categories have been defined:

Tdoms plugins repo.png


At the moment not all TD/OMS client features can be installed in RDi 9.8. Features that cannot be installed are Reporting (with BIRT), TD/OMS Git Support, Jenkins Feature and any Mylyn Connector. This is a temporary situation, our goal is to have full TD/OMS client support for RDi 9.8 in the final release of V15.

Note also that MiWorkplace should not be installed in RDi 9.6 or 9.8 and that the Azure Devops integration can only be installed in RDi 9.8 and not RDi 9.6 as it requires a Java 11 runtime.

New and Noteworthy in TD/OMS V15 Web V1 Milestone 3

TD/OMS Work Management View The work management view shows tasks and allows filtering by using the search box and task fields such as application, programmer, and status.

Octo workmanagement.png



267 - Enhanced Task Detail Editor with Task Solution Display We have enhanced the task detail editor by adding the functionality to display task solutions. Previously unavailable, users can now conveniently view solutions associated with a task directly from the task detail view.

Task solutions.png



Displaying Task Solution Content on the RPGLE Editor Now, it is possible to display task solution content on the RPGLE editor. The RPGLE editor offers a user interface for developers to view and, in the future, modify and compile RPGLE programs stored in source files.

Solutions content.png



GUI issues/enhancements resolved

I02224 - Connect Wise failing due to an API change
Permanently fixed an issue where the ConnectWise queries would fail every time ConnectWise upgraded their API version.
I02257 - GUI- Available Updates are also shown when the host configuration is disabled.
To replicate the problem, follow these steps: choose the active host and click the download button. Then, pick the disabled host and click the download button. Even though the host is disabled, the available updates continue to be displayed, which is not the intended behavior. Fixed this issue.
I02284 - no error logging in process connection list on failure
If the process connection list (connect object with resolve) returned an error then the cause of the error was not being logged.
I02312 - TD/OMS installer not pre-selecting azure devops integration.
If during an installation the Azure Devops integration was selected, then this selection was not being remembered when installing the next version of the TD/OMS client.
I02313 - Definition field and entity validators were not being pre-loaded.
This caused the 'Copy Application' in definitions to fail.
I02310 - AI Chat is has been included in the TD/OMS client installers.
AI Chat is now a default part of TD/OMS Workmanagement.

Server issues/enhancements resolved

I02311 - Ratification group member is not added correctly
The application code will be ignored when a member is added to a system ratification group.
I02314 - The blank error fields are returned in OMQCHGTP
The error blank error fields are returned in OMQCHGTP. When we try to delete a non-existing transfer path. This issue has been resolved.
I02303 - OMQCHGTP fails to add the same transfer in different environments
OMQCHGTP fails to add the same transfer in different environments. This issue has been resolved
I02306 - OMQCHGSL API - Buffer is not correct
The OMQCHGSL data structure was missing some fields such as the indicators for 4GL library, *DOC library, and object library. Additionally, some fields needed to be moved to the processing array. However, this issue has been resolved now.
I02305 - OMQCHGUA - User authorization logic is incorrect
Previously, when the API was called by a normal user with insufficient authority, an incorrect screen was displayed instead of showing an error message at the bottom of the screen. The issue has been resolved by addressing the incorrect user authorization logic.
I02299 - OMQCHGLL API - Buffer is not correct
There was an issue with the OMQCHGLL data structure. Some fields were missing in the data structure for example - including the relation indicator, Library list type, and the Library sequence number. Also, some fields were at the wrong place and needed to be moved to the processing array, and some field names needed to be changed to match the database file. However, all these issues have been resolved now.
I02261 - User input is not accepted in lowercase in CLI APIs
All affected APIs have been updated to accept user input in both lowercase and uppercase formats. Users can now provide inputs in either format, and the API will process the input without throwing errors.
I02251 - OMQCHGLL API ends with an error.
Copy a library list from the source environment to the target environment however library list is not present in the source environment, and the command ends with the error. The copy command has been updated to check for the presence of the library list in the source environment before initiating the copy operation. If the library list is not present, the copy command will now terminate with an appropriate error message, informing the user that the library list cannot be copied.
I02250 - OMQCHGLL API copies the library list to the environment which does not exist.
There was an issue that if you copy a library list to an environment, that is not present in the application was getting completed successfully. A check has been added to validate if the environment exists before copying.
I02294 - Application authorization logic is incorrect in CLI APIs
There was an issue where the OMX001 was returning a status of *AUTH, which allowed the user from accessing the application when the request processor and API user were the same. The problem has been fixed by removing the condition to check for *AUTH and allowing the user to access the application when the status is *NORM.
I02282 - Action group on SP is wrongly executed for detail
There was an issue with an action group selection on SP with Object detail: *BLANK+. It was executing for a detail, which it shouldn't have. However, the problem has been fixed now.
I02291 - OMQCHGSL Sequence number field should be packed
The problem with the sub-environment sequence number field has been fixed. It was previously declared differently in the buffer and database, but now both are declared as "packed."
I02290 - Add Ratification group API to the menu
Now, The Ratification Group API(OMQCHGRG) has been added to the OMSAPI menu.
I02286 - OMQCHGID Sub-environment sequence number field should be packed.
The problem with the sub-environment sequence number field has been fixed. It was previously declared differently in the buffer and database, but now both are declared as "packed."
I02304 - OMQCHGLL Sequence number field should be packed
The problem with the sequence number field has been fixed. It was previously declared differently in the buffer and database, but now both are declared as "packed."
I02274 - Issue related to Keys/Constraints
We are experiencing difficulties promoting certain tables that contain key and/or constraint information. During the transfer of the table, an error message is generated indicating that the constraint is not valid and cannot be added to the file. Resolved this issue.
I02295 - Clean up compile history after solution disconnect
The compilation history remains uncleared when the solution becomes disconnected from the task. Resolved this issue.
I02247 - System type other then OS400 is not working correctly
API OMQCHGRL is now supporting all possible system types.
T00344 - Add new field Force Delete in OMQCHGEN API
In OMQCHGEN API, we added a new field Force Delete having possible values '*YES' and '*NO'. All underlying records are deleted when Force Delete is '*YES'. When it is '*NO', a generic error message is given saying that underlying details are present, and deletion is unsuccessful.
T00345 - Add refresh option in OMQCHGEN API
OMQCHGEN now includes refresh option to update the ratification information in the environment file OMPDL.
I02266 - *Change does not work properly for Environment API (OMQCHGEN)
API threw an error when we passed an existing sequence number and changed the description. For example, if we passed sequence number 11 for application SHUKV and environment DEV1, we got the following error message. "The environment sequence '11' already exists in application 'SHUKV' for the environment 'DEV1'." However, API worked fine if we pass *SAME in the sequence number field.
I02267 - Option value *NUMBER is not available for Include sub-environment field in OMQCHGEN API
Option value *NUMBER has been added for the "Include sub-environment" field when passing the number of sub-environments .
I02273 - OMQCHGEN does not have "Number of ratification grps" field in the buffer
Included "Number of ratification grps" field (DLNAC#) in the buffer and return it as an output field.
I02275 - OMQCHGSE Returning incorrect error message count
When attempting to modify a non-existent sub-environment (identified by sequence number 0), as well as 6 other non-key fields with incorrect values, the operation failed, as expected. However, the message count indicated 2 instead of 7. This issue has been resolved.
I02270 - OMQCHGSE Move fields from data to control structure
We moved all the controlling fields from the data buffer to the processing buffer in the sub-environment API(OMQCHGSE). Sub-environment sequence number field is declared as a zoned decimal in the buffer but in the database, it is a packed field. It is updated in the buffer.
I02268 - OMQCHGAP Move fields from data to control structure
All the controlling fields are moved from the data buffer to the processing buffer in the application API(OMQCHGAP).
I02265 - OMQCHGSE API does not delete job descriptions associated with the distribution list.
When we delete the sub-environment distribution list is deleted but the associated job description with the distribution list is not deleted. Only override information should be deleted. We need to add these requirements as well.
1. When we copy the distribution list then the associated job description should also be copied.
2. When we change the sub-environment sequence number then the sequence number should also be renumbered in the job description file.

This issue has been resolved.

I02263 - Add topics for the ratification group
Topics have been added for the ratification group API.
I02264 - Remove A or An from the topic description
The topic description was defined as An application was added. This has been changed into Application was added etc.
T0187 - Prompt the correct base directory from the distribution menu
The distribution menu (option 32) prompts distribution base libraries. This was hardcoded, but it has been changed to the installer location for people that install the distribution software in a different directory.
T00343 - Add refresh option OMQCHGUA
The API contains the buffer's output fields, and we added a refresh routine to update the output-only (calculated) fields. The description field has been added as well in the buffer.
T00348 - Terminate incorrect objects from production
We have a few objects which should not be promoted to production as they are part of unit test cases. This issue is resolved.
01836 - 14.0M03 Distribution stuck in infinite loop
We resolved a issue in involving a distribution that appeared stuck in an infinite loop involving a scan operation. The distribution involved SQL-described physical files with triggers defined.
I02240 - Clear X5R1M0 buffer in OMC022 program
To ensure proper execution, the X5R1M0 buffer is being cleared.

OpenAPI Generator Enhancements

 Please re-install the generator with INZOMSSRV SERVICE(*APIRESTGEN)
35 - Add default JWT claims to the payload The industry standard claims are now added to the generated token:
  • "iss" (Issuer): identifies the entity that issued the JWT. It is filled with 'Remain Software'
  • "sub" (Subject): identifies the subject of the JWT, usually a user or entity. It is filled with the user.
  • "exp" (Expiration Time): specifies the token's expiration time, after which it should not be accepted. It is filled with 24 hours by default.
  • "nbf" (Not Before): specifies the earliest time the token should be accepted. It is filled with the time the token was issued.
  • "iat" (Issued At): specifies the time the token was issued. It is filled with the time the token was issued.
  • "jti" (JWT ID): provides a unique identifier for the session. It is filled with the session ID.


I02235 - Naming of parameters in generated API The global variables are used instead of the parameters in generated API.


Parameter 1.png


I02269 - Use registry key to get JWT secret key It is necessary to introduce the OMQJWTSECRET keyword that will hold the JWT secret key. If this keyword is not present, a 32-bit encrypted string must be generated.


OpenAPI Smaller Issues

I02280 - REST API - Standalone field definition
If we define the $ref reference in JSON without specifying a type, it should be transformed into a template field instead of a data structure in the generated REST API.
34 - Checktoken not generated for subsequent modules
CheckToken is not generated when it is used in multiple paths. it is only generated for the first path. Resolved this issue.
I02279 - REST API- Issues with the RPG Generator
The RPG generator encountered an error while generating the API.
I02260 - Incorrect method calling sequence in Login API
At times, when utilizing a generator to produce REST APIs, the sequence in which methods are called would not be generated accurately.
I02281 - REST API- Special characters cause Java to fail.
If the "path" summary or description contains a special character such as "especialización", the RPG generator failed to generate the member.
I02283 - REST API- Array field definition issue
The array fields were not correctly generated in the REST API produced by the RPG generator.
I02285 - REST API- Template field generation issue
If the first method includes the template structure but the second method does not, the RPG generator still generates the template field for the second method, which is incorrect.
I02289 - API Generator- Generation fails for attached json
The RPG generator encountered an error while generating the API.
I02288 - API Generator- load procedure call is not generated for login method
In certain scenarios, we have observed that the RPG generator placed the load_postxxxx() function below the call to the processpost_xxxx() function in the generated member.
I02300 - REST API - Updated approach for retrieving session information
Previously, we utilized the "session" keyword to retrieve the session ID. However, due to a recent update, the session ID is now stored in the "jti" field. Therefore, we have modified the generator to ensure that it retrieves session ID details from "jti" instead of using the "session" keyword.
I02301 - Error in getting where clause
Too many error messages give error overflow in the retrieve database API. Fixed this issue.
I02298 - Issue in processing token
Due to a recent change in Login API, validate token program is getting failed. Fixed this issue
I02297 - Issue in Retrieve Database API
When the field selection group in the Retrieve database API exceeds 5, the API fails to retrieve records as per the requested input. Fixed this issue.
I02296 - REST API - Issue in Client API generation
During the compilation of the generated API, an issue arose where the keyword "IMPORT" was used invalidly. Specifically, a keyword was repeated multiple times for a single definition, which is not permitted. Fixed this issue.
I02302 - Issue in Octo KanBan Provider
The SignIN token within the KanBan Provider requires updating with the most recent logic. Resolved this issue.
I02272 - Issue in Retrieve database API.
The retrieve database API crashes when the number of values in the 'IN' operator exceeds 10. Resolved this issue.

In case you do not want to wait for the official milestone build, you may install the nightly builds.

New and Noteworthy in TD/OMS V15 Milestone 2

I02204 - Allow user options to appear in the top-level menu User options groups can now appear in the top-level context menu.

More information can be found in the user options view help


V15ms2 useropt1.png


V15ms2 useropt2.png



Remember "P" Setting in the Components View. The Prod icon.png Icon in the Components view will show only production objects. This action was activated on every new session. Now, the last setting is remembered.


Flexible Job Descriptions. After the installation of this milestone, the NORMAL and FAST job descriptions have been converted to new logic. You can now add new Job Descriptions using Job Description Maintenance.

This system enables you to define default job descriptions at every step in the workflow using an inheritance chain. You can add and override job descriptions at various levels.


Tdoms15m02jobd2.png


Also, a specific job description can be chosen before the transfer starts.


Tdoms15m02jobd1.png


The command line API OMQRTVJD can retrieve the active job description in a specific context. The documentation is here.


TD/OMS Database Login REST API A Rest API has been created to log into TD/OMS and get a security token for further API access. The token is based on JWT technology. If you want to get access to the TD/OMS REST API, you need to set up your Apache server with the following command (if you don't have them, restore library ILEASTIC and LIBHTTP first from the savefile in your TD/OMS library):
  CFGRESTSRV ACTC(*ADD)                     
           SERVER(OMSREST)                
           USER(OMS)                      
           GENLIB(<omslib>)               
           TRGLIB(<omslib>)               
           LIBL(<omslib> ILEASTIC LIBHTTP)


Login API specification: File:Login rest.json



TD/OMS Database REST API A Rest API has been created to securely and dynamically get data from the TD/OMS database. If you want to get access to the TD/OMS Database API, you need to set up your Apache server with the following command (if you don't have them, restore library ILEASTIC and LIBHTTP first from the savefile in your TD/OMS library):
  CFGRESTSRV ACTC(*ADD)                     
           SERVER(OMSREST)                
           USER(OMS)                      
           GENLIB(<omslib>)               
           TRGLIB(<omslib>)               
           LIBL(<omslib> ILEASTIC LIBHTTP)


Retrieve Database API.png


Database API specification: OMRDBA_DataBase_API.json

Database Schema specification: OMRDBA_DataBase_Schema.json

Issue: I02227 - Retrieve Database records in JSON format


New CLI API's We are moving all TD/OMS business logic into separate programs for our back-end modernization project. These APIs can also be called using a command with the same name.

We have created the following API, which is a release candidate. This means that minor changes may occur before the final V15.1 release in June (at which point we are committed to the API interface). Please try out the following new CLI API.


OpenAPI Generator Enhancements

Please re-install the generator with INZOMSSRV SERVICE(*APIRESTGEN)

I02205 - Discontinue 'Legacy Server' The OAS3 legacy generator option in the Generator window has been removed.


V15ms2 legacyserver.png



I02213 - Memory leak solved We have noticed that the generated APIs leak memory due to various ALLOC operations not being followed by DEALLOC. This has been solved. If you run into memory issues, you must regenerate the API boilerplate code. Also, check out the "includeLogging" flag discussed in the issue list.

You can check the API CGi job using WRKACTJOB, Option 5, and Option 3. The Temporary Storage used field should be below 50 MB.


V15ms2 leak.png



I02153 - OpenAPI Client Generator It is now possible to generate a functional RPG Free client.


Gen Client 1.png


Gen Client 2.png



TD/OMS GUI issues/enhancements resolved

I02215 - NPE when creating a simple API
Creating a 'simple API' leads to an NPE in NewAPISpecificationAction line 222
I02191 - Task entity editor always complains it has changed
Even when nothing had changed, the entity editor wanted to save. This was caused by using a dash '-' in some fields, also used as a control character by the editor.
I02220 - NPE in TDOMSRelatedXAContextMenu
NPE when creating a context menu in some situations, e.g., in the MiWorkplace editor and News Items.
I02215 - NPE when creating a simple API
When creating a simple API from the toolbar, an NPE could occur. This was fixed
01826 - Remove the "Trailing spaces are not allowed" message
A "Trailing spaces are not allowed" message pops up in several places when typing text in the GUI. This is unneeded and has been removed.
01831 - Could not download update due to "missing wget" message
The DSPPINOMS command includes an option to check for updates. When any of the packages yum, wget, zip, and zipinfo are not installed, a "missing wget" message is shown. Now a correct message is shown indicating which package is missing.
01832 - Missing choice text in Application Definition
The choice text, 'Tmpl, *NONE, *PGM, *BLOCK,' used in Application Maintenance, was accidentally deleted from a message file. This has been restored.
I02144 - Fixed failing 'Add Server' for the ConnectWise interface.
Creating a new server for ConnectWise failed due to a change in the ConnectWise API version number.
I02145 - Fix for Service Desk Plus failing to get tasks.
The failure of the Service Desk plus interface would occur if the ConnectWise interface was also available and actively used.
I02149 - Fix for sign-in failure to Xref.
From the Xref preferences page, a sign-in to Xref can time out and fail.
I02152 - Fix for the system not opening on startup.
This can happen on a system's initial load (startup) that uses a secure connection.
I02174 - GUI option Move Transfer is crashing
NullPointerException occurs when we opt Move Transfer option at GUI to transfer the object. Fixed this issue.
I02186 - Route Navigator gives an error when a closed system is selected
Fixed. Now on a closed system, no results will be shown.
I02172 - Task filter application selection
The task filter wizard will allow a filter again without an application defined, meaning it will query all applications.
I02184 - TD/OMS empty context menu group
There was an empty menu group in context menu's when X-Analysis was installed (usually with an empty selection) named TD/OMS. This has been removed.
I02175 - Issue while transferring the object.
When we try to transfer the object and the Include sub-environments is *NONE, we get IndexOutOfBoundsException in the last object transfer confirmation page. This issue is resolved.
I02181 - Opening transfer history results in an exception
Fixed an issue while opening the transfer history view from the 'Show In' group menu.
I02182 - User option not shown in the correct context
Fixed an issue where some user options were not appearing outside of the user options group menu, but there were present only inside.
T00333 - The memento in Route Navigator view is implemented
The route navigator will no longer forget the last choices made when closed.
T00332 - Add a preview action for selecting max results in Spool View
A preview button that allows the user to select the maximum results in the Spool View is added because, usually this view has thousands of results affecting the loading speed.
I02201 - Tracker connection is failing
Fixed an issue where an exception is thrown that an implementation issue is already linked with a new task/request when an attempt is made to link that issue to a newly created task/request from the 'Link to Task/Request' actions.
I02211 - Added Xref indexing of IBMi message files.
Library message files are now included in the indexing process. Message files will be scanned for message id and the contents of the first level and second level text.
I2131 - Xref view does not expand a hit if the hit is the first line of the file.
The hit result of a find could not be expanded even though there was a line to be shown, this has now been fixed.
I02217 - Copy filter doesn't open the wizard anymore
Fixed an issue where the appropriate filter wizard would open to edit a newly copied filter for tasks, requests, applications, branches.
I02224 - Connect Wise failing due to an API change
Fixed an issue where Connect Wise was failing due to a new version of its API.
I02157 - Could not perform Column Sorting and Quick Search Filtering
In TD/OMS User Options View, the feature to sort the columns and the feature of filtering the data of the table was added.
I02158 - Converting Policy class to Messages class.
The Policy class was replaced by implementing Messages class in various bundles in TD/OMS.

Server issues/enhancements resolved

I02169 - SBSVAROMS leads to a failed transfer
In some cases, the SBSVAROMS command is failing. The buffers may contain binary data that translates to quotes.
I02167 - PHP Parser setup is wrong
A typo in the PHP parser caused problems parsing. This has been resolved for new installations of the PHP parser.
I02239 - Add API authority checks
We need to add authorization logic in the OMQCHGTP and OMQCHGRL API. This issue has been resolved.
T00341 - Adding topic for new APIs
We need to add topics for Route and Ifs Directory APIs. There is strange text available in the topic description. Need to fix that as well. This has been resolved.
I02233 - OMQCHGSL API throws an error when creating library flag is *YES and the library to create already exists.
We need to ignore the error when the library to create already exists and create library flag is *YES. This issue has been resolved.
T00330 - Change help text in OMSREF
We change help texts as we have started using modern terminology. For example - "Include Library lists" is called "Include subenvironment," and "Fix" is called "Task." This has been completed.
I02238 - OMQCHGSE Does not allow *TEMPLATE
*TEMPLATE gives an error. This issue has been resolved.
I02236 - Contains strange texts in APIs
We need to modify the help text of the new definition APIs. This issue has been resolved.
I02223 - Add new APIs to the menu
New definition APIs have been added to the menu.
I02234 - Change Message Id in Command OMQCHGRL
We have to create a new message Id to replace VRS0004 for the command OMQCHGRL. This issue has been resolved.
Variables &TENV &FENV at transfer/object/create/start missing
When many variables are part of an event key, some variables are not in the key. This has been solved.
I02230 - Change the authority checking logic in the application API
We need to change the authority checking logic and move authorization logic from *INZSR to the srValidate routine in the application API. This issue has been resolved.
I02202 - Implement security logic in the sub-environment API
We need to add the security logic for the application in the sub-environment API. This issue has been resolved.
I02187 - Fix recreation of dependent logical file
When a PF has dependencies where duplicate logical files are connected. It may happen when a view is created using multiple files. The transfer object process identifies the duplicate dependencies and tries to create duplicate objects in the fall-back library. This issue has been resolved.
I02161 - Lift lock restrictions on DLTAPPOMS
Currently, a deletion requires that many files can be locked exclusively. The API should work without this requirement. This issue has been resolved.
I02200 - Add help text in the DLTAPPOMS command
We need to add the help text for Remove comments and Remove job description fields in the DLTAPPOMS command. This issue has been resolved.
KE150/T0092 - Send a network message to a queue
SNDNETMOMS now sends to a user profile. If this fails, try sending a message to a message queue. A message queue is more efficient and less insecure than a user profile.
I02185 - TD/OMS cannot handle LPARs over 255
The number of LPARS that the license system can handle is 255. Anything over this partition will be recognized as 255. This causes problems for users with a higher LPAR number. This has been solved.
I02231 - Add SRGVAR routine to replace hardcoded text.
Added SRGVAR routine to replace hardcoded substitution text. We have created a new routine retrieveMessageText, which fetches message Ids from the OMSMSG message file.
I02232 - Add API authority checks
We fixed the API authorization issues in OMQCHGLL, OMQCHGSL, and OMQCHGEN.
I02136 - Remove job descriptions in the application and remote system maintenance screen.
We need to remove job descriptions in the Application and remote system maintenance screen. This has been fixed and also the Job Description File conversion program has been written.
I02176 - OMX940 program is crashing.
OMX940 program is crashing while receiving definitions at the SPINOZA machine. This has been fixed.
I02214 - The display option doesn't work for the job description
If the job description has parent override then display option = 5 doesn't show the job description details. Resolved this issue.
I02219 - Job description override not removed
When we make an override on the APPC/ENV/SUBENV/REMOTE level and then remove the remote, the overrides are not removed from the file. Resolved this issue.
I02228 - Synchronize remote job takes the local job description
When the registry setting is set to sync the remote job description code, the job description and library belonging to the local entry are used. This is not correct; it should sync the job description code but still fetch the matching jobd for that context. Resolved this issue.
I02229 - Job description copy makes it impossible to delete the Application specific job description
When we create the application-specific job description and later create the same job description at the system level using copy option on the existing job description then try to delete the Application specific job description. It doesn't allow to delete. Resolved this issue.
I02151 - Show job description code into Fix Processing.
When the object is transferred, TD/OMS should also show the associated default job description code. If the default job description is not found, give the option to select the related job description code. Resolved this issue.

OpenAPI Smaller Issues

I02242 - OAS3Wizard improvements
The first generated module should be '01' and not '1', and the list of default generated responses now only includes 200 and 400
I02226 - Rest API - Introduced includes logging
Introduced the "includeLogging" keyword to check the memory leak in the options file. If the value is set *YES, we generate additional statements to check memory leaks inside the module/program.
I02221 - Every %alloc should be followed by a dealloc.
There were significant memory problems for the jobs caused by this. Fixed this issue.
I02222 - Rest API MCH4437 - Program import not found
Dynamic database access API referred to a json_setNull procedure export from the service program JSONXML which does not exist. Fixed this issue.
I02218 - Rest API - Additional space in generated members
In generated REST API members, there were a lot of additional spaces between each procedure and block of statements. Fixed this issue.
I02210 - API Generator - Port number as path variable will fail
If we use the port number as a path variable, then we get an invalid pathname error message. Fixed this issue.
I02212 - API Generator - Parsing of Path and Query variables
The Path and Query parameters details were not in P members but only in M members. So we need to introduce comments which contain the information about Path and Query variables in the "checkRequest" and the "process_200" methods. This issue has been resolved.
I02192 - REST API - Deallocation of JSON objects
All JSON objects occupy memory that needs to be de-allocated after the process. Resolved this issue.
I02188 - REST API - Generator Issue for a numeric field
When the schema type is number, json_setnum, and integer json_setint should be used in the generated source. Resolved this issue.
I02183 - REST API - Generator Issue for array data structure
When we have an array schema inside the object schema, the parsing logic of request input is not generated correctly. Resolved this issue.
I02164 - REST - API Internal procedure generation issue.
When we have an object schema containing more than one array schema, the parsing logic of request input is not generated correctly. Resolved this issue.
I02207 - API Generator - Import shared prototype in module
The shared prototype is not imported into the modules. It should be imported into each module. Resolved this issue.
I02160 - The post response of the tasklist contains the key shortTasKDescription with K as a capital letter
The post response of the tasklist contains the key shortTasKDescription, which is different from schemas. It contains the capital letter K. Resolved this issue.

In case you do not want to wait for the official milestone build, you may install the nightly builds.

New and Noteworthy in TD/OMS V15 Milestone 1

Service Program Warnings When a service program is promoted but not all its modules are in the same environment, we show a warning.

This warning does not match modern development practices and has been removed. From now on, a service program can be cycled with or without all modules without showing this warning.

In addition, the Service Program Level Check can be disabled. This did not actually do a level check and has been deprecated by a new rule Possible Signature violation check.

You can disable the Service Program Level Check by running the STRPTCM command.


KanBan Preview We have included a TD/OMS Rest Service to work as a target in the Octo Kanban Plugin.

For this Rest Service to work. It has to be made accessible on your development IBM i. Please note that Octo requires an Apache HTTPS connection to your IBM i.

Use the CFGRESTSRV command to create a default Apache HTTP configuration. Then ask your system administrator to add the certificate and the secured port number.

For more information, please open the Octo Manual.


Kanban black.png


01829 - Selecting and sorting of ILE procedures The components view contains a little-known feature that is very valuable for ILE developers who use a lot of service programs and modules. The ILE mode shows all Procedures and Data Exports in all your modules and service programs. It also shows who is importing and exporting them.

The ILE mode filtering and sorting have been enhanced.


Ile mode.png


E238 - Allow user authorization classes You can now make your own authorization classes for the GRTAUTOMS command. The commands EDTOACOMS and EDTOADOMS have been extended to allow other classes besides *C1 to *C6.

If you want to add your own class code, end the code with an alphabetic character A through Z, e.g., *CA. Numbers are reserved for TD/OMS internal use.


I02011 - Azure DevOps Integration Pull requests have now been integrated into the Azure DevOps integration. You can now select to filter for pull requests when creating a new filter and start creating pull request filters. Pull requests are also treated like work items in TD/OMS. They can be linked to a TD/OMS task or request or even open them directly in Azure.


Azure filter page 1.png


Azure filter page 3.png


01779 - Select sub environments based on path When the sub-environments have *SELECT we should not offer all subenvironments but take a look at the path settings in that target.


GUI Transfer.png


IBM Transfer.png


E-188 - Automatic Branch Creation We have introduced a new registry setting OMQCREATEBRANCH to control the branch creation automatically when a task is created.


T00326 - Object Compile Maintenance An Object compile maintenance program has been created. It can be called by using the command STROCM. This command is available under the work management menu.The documentation is here.
I02117 - Task to Ticket linking enhancement If a new task or request is created from an implementation item (e.g., a ConnectWise ticket), it will be automatically linked to that item.


OpenAPI Generator Enhancements

Please re-install the generator with INZOMSSRV SERVICE(*APIRESTGEN)

WARNING
A service program has received an official signature.

If you upgrade to V15 Milestone 1, then you need to rebind your existing generated APIs with:

UPDPGM PGM(your/program) MODULE(*NONE) BNDSRVPGM((OMNSRV))

I02119 - REST API issue when Content type is "text/plain"
When we generate a rest API with the content type "text/plain," the generated API fails with return code 500. This has been resolved.
I02118 - REST API - Validate user profile issue
When a user's password length exceeds 10, the user validation procedure doesn't validate correctly. Now User profile passwords with a length of 1-128 characters are supported. This has been resolved.
I02104 - REST API - Wrong generation of JSON
When a response uses an array of another schema, then this array is placed in a named field even if the schema is an inline array. In addition, the response should be put in an anonymous JSON array when it is an inline array. This issue has been resolved.
I02103 - REST API - Long path name issue
The long path name is not generating correctly in generated Rest API member. This issue has been resolved.
I02105 - REST API - Generate CORS code in OpenAPI Studio
Introduced the standard CORS handling code in the generated REST API. See the Options File for more information.
I02108 - REST API - Override Generator Options setting
The options file controls various settings of the RPGLE Free generator. If those settings are specified inside "x-restgeninfo" schema, then this setting will override the generator options file settings. See the Options File for more information
I02109 - REST API - Put P member after the definition specification
In the Rest API, we need to put the "P" copybook member after the definition specification in generated "M" member. This way, the data definitions at the beginning of the member will be included in the module. This makes those definitions accessible to all copy members.
IT234 - REST API - Generate a module to contain the shared code.
REST API will generate an additional module and prototype member to keep the shared code and the related prototype definitions.
I02147 - Response is cut off when using a special character
The response wasn't returned correctly when special characters, like â, ò, and ß, were in the response. This has been resolved.
IT233 - An OAS3 Specification is not generating the correct source for Rest API
Rest API member was not generating correctly when "alloff" was defined as a subschema in the spec. Resolved this issue.
01830 - API Generator
The API Generator does not generate JSON Boolean correctly. The generator makes the boolean field a string in the "R" (response writing) member. This issue has been resolved.

GUI issues/enhancements resolved

I02137 - Dialogserver sometimes does not start because of timing issues
Sometimes, the DS is not started because the early startup job is slower than the loading job. This caused the dialog to often not show.
01826 - Remove the "Trailing spaces are not allowed" message
When editing GUI fields, we get the message "Trailing spaces are not allowed." This check has been removed.
01804 - Filter box issues
The cursor position moves to the beginning when we type not quickly enough. Also, the wildcards are not replaced correctly: *WILDCARD* does not work.
T00323 - Git repository information has been split from the issue information
A new edit repository dialog has been created and added to the TD/OMS Git view toolbar to provide a way for the user to edit the repository credentials and view repository information.
01675 - Build Queue date and time issue
When we add a task to a Build queue, the date and time in the TD/OMS Build Queue were not synced with the local date and time zone. This issue was resolved.
01824 - Issue in displaying comment details of Object along with Solution Resource in Comments View
In TD/OMS Comments View, the comments for Object can be viewed through TD/OMS Components View by selecting an Object only. The issue of viewing comments for an Object when a Solution is selected as well is resolved. And the toolbar for each will respond to the resource viewed.
01825 - Issue in New Task Filter Wizard
There was an issue when the New task filter was created without an application code. Now the user has to provide the application code as mandatory while creating the new task filter or in case of editing it. This constraint is added to avoid the error caused.
I02141 - Xref view IBM source fails for secure connections
The display of an IBM source for a file from an Xref search view will now not fail if the Xref source location of the file is configured with the @secure option as part of the hostname.
01827 - Issue in IFS Object Action
When the solution actions pop-up menu is opened, the copy IFS object action is there, but it's invisible. This issue is resolved.
I02144 - Connectwise add server can fail.
Adding a new server would fail with a nondescript server failed message if an outdated URL was entered (API year version changed). The response message has now been changed to indicate that the URL is invalid due to an API version change.
I02148 - Edit schema fields wizard doesn't show the correct long name.
If the database file field has no description, then it should consider the column heading first, and if the column heading doesn't exist, then the field short name should also be shown the default selection in the Field schema name combo should be "Normalized" instead of "Short." For the Normalized field schema name, the first character should be lowercase. Resolved this issue.
I02139 - Spooled Files view has a wrong relative date
When a TD/OMS spooled files view is opened for a resource, the date is not synced with the local date and time zone. This issue was resolved.

Server issues/enhancements resolved

I02128 - Improve the action and exceptions menus
The actions and exceptions are now linked. Also, the Registry Maintenance Event Management and Pre Transfer functions are now available on the menu;
I02107 - Issue in applying constraints
When we transfer a SQL table with a primary key, we get the message "The constraint is not valid. The constraint cannot be added." when a check constraint is re-applied. The reason is that when we add a primary constraint, it automatically creates a check constraint. The addition of the check constraint is now guarded to prevent the error from appearing.
I02116 - MDL0006 warning
When transferring service programs, often message MDL0006 would be displayed to indicate that the service program modules are not in the same environment as the service program. We believe this message is confusing and does not cause a reason for concern in most cases. Therefore, this warning is disabled.
I02127 - The source scanner for COBOL is not working
The copy members were not always parsed correctly. This has been resolved. After the update, the source scanner must be installed again with the INZSRCSCAN command.
I02106 - Issue in Action group selection
When taking two options on one of the action group selections and pressing enter, the list was repositioned on the next page, not on the same page. This issue was resolved.
I02129 - Wrong option in Compile Type Selections
On Work with Compile Type Selections, the mixup of some options has been solved.
I02130 - The help text is incomplete.
The help text is incomplete for the OMQCHGCM command. This issue was resolved.
I02113 - Wrong topic fallback/start
Topic issued is fallback/start|end but must be transfer/fallback/start|end. Messages would appear in the log indicating that the topic could not be found. This issue was resolved.
I02102 - Maintain Topic screen issue
When we add a Topic and press enter, the screen shows again in change mode. Now, If F5 is pressed, the wrong values are displayed. This issue was resolved.
I02115 - Library sequence doesn't update correctly in Environment Maintenance
When we try to update multiple library sequences at a time. It only updates the first library sequence and exit. This issue has been resolved.
I02111 - RELMONITOR is running out of job resources
When the RELMONITOR runs for a long time, the job will run out of resources, and relations are no longer built correctly. This issue has been resolved.
I02122 - Filter is not working when CCSID is 65535
If the CCSID is 65535, the filter is not working for the Object Maintenance function. This has been resolved.
I02123 - PFCST-related PF objects
Physical file constraints related to PF objects need to be added to the distribution library as it will not be possible to deploy a referential constraint without it. This issue has been resolved.
01820 - Exception buffer is filled with a wrong object on SL action group
Exception buffer was filled with the wrong object on SL group selection. It appears when a transfer contains a message detail and another object with a lower alphabetic name. This issue has been resolved.
I2113 - Xref Gitbucket checkout from IBMi fails
When using the IBMi as the Xref server, the checkout of a git repository was failing; this has been fixed with the upgrade of the SCM framework.
I2110 - Xref cannot clone bitbucket repo, authentication failure
Bitbucket cloud no longer allows the use of passwords; Xref documentation has been updated with a 'how to' on configuring an Xref location for Bitbucket cloud.
I2116 - Xref search fails with a 'failed to get SCM location' error message.
This could happen after a rename of a location. A search will no longer fail in this situation.
I2111 - Xref, add support for a Git branch checkout
By default, Xref will assume the Git branch to checkout is master. This can now be configured on the location URL to be something else, for example main.
I2112 - Xref, from the UI, a test on a Bitbucket location gives the warning 'repository is empty or no master'
This warning would occur if the primary branch of the repository was not master but, for example main. This warning will no longer show if the branch option has been set correctly (see I2111).
I02110 - Add *ALL into the *JOBREL action in OMQCHGOB
The parameter value *ALL is introduced in the JOB parameter of OMQCHGOB *JOBREL. This will read all lingering records in OMO001W4 and process the relations.
E239 - Deploy tasks associated with a ticket
Introduced the functionality to deploy tasks associated with a ticket.
I02138 - The transfer path is not updated.
In the case of automatic branch creation, the transfer path was not updated. Resolved this issue.
01767 - TD/OMS is not finding relations to SQL Procedure
SQL procedures were not getting registered in the procedures file. This issue has been resolved.
I02117 - Task to Ticket linking enhancement
A new registry setting called OMQAUTOTSKREQNR controls whether the item's ID will automatically be used as the task/request number. Finally, an attempt is made to prefill the application based on the last selection in the GUI.