Release Notes for Oracle Insurance Gateway Release 3.22.2.0.0
This document contains the release notes for Oracle Insurance Gateway Release 3.22.2.0.0.
Version compatibility: Oracle Insurance Gateway Release 3.22.2.x is only compatible with other Oracle Health Insurance applications release version 3.22.2.x unless explicitly stated otherwise. |
In accordance with the OHI error correction policy (Document 1494031.1 on My Oracle Support), error correction support will be provided for this release and the previous two releases. |
Enhancements
ID | Summary | Patch |
---|---|---|
NXT-23106 |
Export UI data to CSV This enhancement introduces ability to download UI data to a CSV file. Documentation Links: |
|
NXT-25000 |
The handling of resource representation parameters in http requests has changed Before this enhancement, resource representation influencing parameters are passed in the "Accept" header of a HTTP request. When the number of values passed in the header increases and the header size crosses 8K,the server rejects HTTP request. This enhancement provides an alternative way to pass more than 8K data in resource representation parameters. Instead of passing these parameters in the HTTP request header, now these parameters get passed in the HTTP request body. This capability is available only for "POST /generic/{entity_name}/search" API. This release supports passing parameters in header as well as body. In future releases the parameters in header support will be removed, hence passing parameters will be only supported via HTTP request body. The parameter names are the same in body as well as in the header. In the body, these parameters are mentioned under "resourceRepresentation". When the body includes "resourceRepresentation", it completely ignores the header parameters. Documentation Links: |
3.22.1.0.2 |
NXT-25553 |
Auto optimization of ohi reference sheet lines and oig exchange text indexes. This enhancement enables auto optimization of ohi reference sheet lines and oig exchange text indexes, so that a separate scheduler job is not required for optimizing text index, A daily optimization of fragmented tokens and weekly full optimization would be done automatically to sync the text index entries. |
|
NXT-25662 |
Remove PHI in GET requests (advance notice) Please see "Deprecated items (to be removed in future release)" section. |
|
OIG-1610 |
Ability to set time allowed for async exchange This enhancement adds the capability to time-out asynchronously invoked exchanges, based on the "Time Allowed" attribute defined at the integration level. If an integration specifies a value for this attribute, then after the allowed time, an incomplete exchange, is marked as timed-out. This is checked at the start of every exchange sub-step and the value is specified in minutes. It introduces the ability to generate workflow messages for async exchange time-out also. |
|
OIG-2347 |
Dynamic Logic Statistics IP This new IP exposes statistics about dynamic logic execution: execution count and elapsed times. |
|
OIG-2481 |
New naming convention for files being uploaded to SFTP folder This enhancement introduces the ability to identify incomplete file uploads by using a naming convention for files being uploaded (".filepart") to the SFTP directory. A new table OIG file upload results is introduced to store SFTP file upload status as well as a generic HTTP API to provide access to the file upload results information. Documentation Links: |
|
OIG-2731 |
Integration Version This enhancement expands the integration version feature to enable better support for (migration of) updates to integration configuration. |
3.22.1.0.5 |
POL-11035 |
Enhancement in Test Dynamic Logic Integration Point: return log messages When testing a dynamic logic, the test dynamic logic unit code and the logs messages are being returned in the response of the Test Dynamic Logic IP Documentation Links: |
|
POL-11121 |
The use of leading or trailing spaces in a user name is prevented This enhancement prevents the use of leading or trailing spaces in the user’s login name. The provisioning integration point raises a fatal message when leading or trailing spaces are used in the login name. The enhancement supports a conversion script for existing login names with trailing spaces. Documentation Links: |
Upgrade Steps for Installation
To perform the upgrade, perform the following steps:
-
Perform any pre-upgrade steps.
-
Stop all the managed nodes running the .existing version of the application.
-
Perform any pre-undeploy steps.
-
Undeploy the existing version of the application.
-
Back up the database.
-
Perform any post-undeploy steps.
-
Unpack the release bundle into a directory that we refer to as OHI_ROOT from now on.
-
Change Installation Configuration: In
<OHI_ROOT>/util/install
, make a copy ofohi_install.cfg.template
and name itohi_install.cfg
. -
Edit
ohi_install.cfg
to contain your specific database connection data and other configuration settings. The settings are explained in the file itself. -
Make sure NO connections are present to the database using the OHI_xxx_USER account (where xxx is the abbreviation of the application)
-
Run the Upgrade script:
-
Open a command window and browse to
<OHI_ROOT>/util/install
. -
Run the upgrade by executing
./ohi-update.sh .
-
-
Make the required changes to the ohi properties file
-
Perform any post-upgrade steps
-
Start WebLogic application server
-
Deploy the Application
-
Perform any post-deploy steps
Additional Upgrade Steps for Installation
The following phases are defined:
|
Stage: post-undeploy
1) Action: Run the following SQL update statement, to replace leading and trailing spaces in login_name with 'X' for all users with trailing spaces.
update ohi_users -- replace leading spaces
set login_name = lpad(ltrim(login_name), length(login_name), 'X')
, last_updated_date = current_timestamp
, last_updated_by = 10
, object_version_number = object_version_number + 1
where login_name != ltrim(login_name);
update ohi_users -- replace trailing spaces
set login_name = rpad(rtrim(login_name), length(login_name), 'X')
, last_updated_date = current_timestamp
, last_updated_by = 10
, object_version_number = object_version_number + 1
where login_name != rtrim(login_name);
commit;
If you run into the "ORA-00001: unique constraint violated" error, this means that there is already a user with the same login_name after replacing spaces with X. In this case, identify the offending login_names with the following query:
select u1.login_name
from ohi_users u1, ohi_users u2
where u1.login_name != rpad(rtrim(u1.login_name), length(u1.login_name), 'X') -- u1: users whose login_name are renamed
and u2.login_name = rpad(rtrim(u1.login_name), length(u1.login_name), 'X'); -- u2: users whose login name equals the renamed name
And similarly where rpad(rtrim(…
has been replaced with lpad(ltrim(…
for errors in login_names with leading spaces.
Manually replace these login_names with extra X’s to avoid the unique key violation, e.g. if user "login_with_space "
was found with the previous query, copy it (including the space) and update it with the following statement:
update ohi_users
set login_name = 'login_with_spaceXX' -- add an extra X
, last_updated_date = current_timestamp
, last_updated_by = 10
, object_version_number = object_version_number + 1
where login_name = 'login_with_space ' -- the offending login_name
commit;
After this, run the first update statement again.
2) Action: run the following script that checks existing integrations where integration version is not null.
select id ,code, version, type from oig_integrations_b where version is not null;
If integrations with version values are present, nullify the version attribute of the integrations.
If this leads to a unique key violation, perform the following steps:
-
update the code of the integration version(s), eg by prefixing the code with the version
-
nullify the version attribute
-
once the upgrade is performed
-
add version
-
update the integration code to the original code
-
This is needed because the version datatype is changed from string to number during upgrade.
3) The following steps are to be performed before running the upgrade script:
Action: Privilege changes to SYSTEM user, the below commands should be executed as SYSDBA:
GRANT EXECUTE ON SYS.DBMS_CRYPTO TO system WITH GRANT OPTION;
Action: Privilege changes to OWNER schema, below commands should be executed as SYSTEM user
GRANT EXECUTE ON SYS.DBMS_CRYPTO TO OHI_OIG_OWNER;
Stage: post-upgrade
1) Enabling auto optimize feature for OIG_EXCHANGE_IDX1 Execute the below command as ohi_oig_owner
Begin
oig_text_index_maintenance_pkg.create_index(15);
end;
Web Services
Ref | Action | Description |
---|---|---|
OIG-1610 |
Added |
Integration Timeout for asynchronous exchange is now supported. An extra non-mandatory column TIME_ALLOWED is introduced to govern the timeout value |
OIG-2347 |
Added |
Dynamic Logic Statistics IP New IP is added |
OIG-2731 |
Added |
api/exchanges Added the option to invoke an exchange for a specific integration version using HTTP header ohi-integration-version |
OIG-2731 |
Modified |
generic/integrations updated datatype of version attribute from string to number(5) |
POL-11035 |
Modified |
Test Dynamic Logic IP When testing a dynamic logic, the test dynamic logic unit code and the logs messages are being returned in the response of the Test Dynamic Logic IP |
Data Conversion
Ref | Action | Description |
---|---|---|
OIG-2684 |
Modified |
Floorplans Incorrect floorplan ids were fixed. |
Dynamic Logic
Ref | Action | Description |
---|---|---|
OIG-2731 |
Modified |
Read events predefined methods Predefined methods for reading events now include integration matching logic that compares integration code instead of integration id. Predefined methods: readUnhandledEvents() readEvents() readEvents(Timestamp from, Timestamp to) When these pre-defined methods are used in dynamic logic it is required to re-compile the groovy logic with invalidateall operation of dynamic logic IP. |
UI Changes
Ref | Action | Description |
---|---|---|
NXT-23106 |
Added |
Download button in table pages User can now download loaded table rows into a CSV on clicking download button in search table, table at tab level and list pages. |
NXT-23106 |
Modified |
Pages with Deep Link configured Links now open in a drawer instead of popup. It is now possible to configure a deeplink in create mode. On selecting a value in the dropdown of a deeplink enabled field, a view link is shown which opens a drawer with information on selected dropdown option in view mode. |
OIG-1610 |
Modified |
Integration Added time allowed property in the Integrations page. |
OIG-2731 |
Modified |
Invoke Exchange Included Integration Version in Integration dropdown when invoking an exchange through the User Interface |
OIG-2731 |
Modified |
Integrations Added Version dropdown 'Create New Version' button that prepopulates a new integration payload based on the integration in context/viewed Added attribute 'version' to floorplan Added version to floorplan as a label |
OIG-2731 |
Modified |
Select Migration Sets Included version in pop-up page to select migration items |
Deprecated items (to be removed in future release)
Ref | Action | Description | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NXT-25000 |
Deprecated |
Remove the support of resource representation parameters in accept header Resource representation influencing parameters such as response, expand, fields, aliases and defaultoverride won’t be supported in the header of HTTP request in one of the next major releases. Hence, these parameters should be passed as request body. |
||||||||||||||||||||||||||||||||||||||||||||||
NXT-25662 |
Deprecated |
Remove the support to GET operations on Query API calls The support to GET operations on Query API calls is deprecated and will be removed in one of the major releases. The Query API calls shall use POST operation and send the parameters (e.g. q, order by) as part of the request’s body. Below there are some examples of searches comparing the use of GET and POST.
Please note that the Page Links associated to the query response will also have a structure change in a future release: the "searchResource" element will be renamed to "body". See an example below:
|
Bug Fixes
BugDB | SR | Internal | BP | Summary |
---|---|---|---|---|
34876903 |
OIG-2887 |
Resources cannot be searched, when the code starts with 25 |
||
Description: |
For resources having code starting with 25, when we try to search for these resources in the Jet UI, the search never gets completed. When checking the console, the API call is returning a 400 Bad request as a status. |
|||
Resolution: |
Users can now perform a search for resources with the 25% |
|||
34030399 |
OIG-2503 |
Data files are purged very slowly when the volume is large |
||
Description: |
When purging exchanges with included datafiles, purging of datafiles is very slow (compared to purging exchanges), and it takes a long time to complete. |
|||
Resolution: |
The purge operation for datafiles is significantly improved. |
|||
34257394 |
OIG-2605 |
'All columns' radio button and 'Columns' dropdown fields displaying on exchange homepage. |
||
Description: |
The columns toggle options are shown even when the table is not displayed in search table pages when we initially do a search and move back to earlier state. |
|||
Resolution: |
The 'All columns' toggle and 'Columns' dropdown are shown only when the table is shown on the screen. |
|||
34174921 |
OIG-2578 |
The record searched upon gets cleared off after the display of the results in tab-table |
||
Description: |
Go to Integrations Page. Search for any integration record and open it in view mode. Click on Integration Parameters Tab and search for any record. The result will be displayed but the search keyword entered in quick search or advanced search components, disappears. |
|||
Resolution: |
Search criteria is not cleared now in quick search and advance search of tabs after the results are displayed |
|||
34169385 |
OIG-2571 |
TestDynamicLogic IP - Failure response Code is 418 instead of 400 |
||
Description: |
Testdynamiclogic IP doesn’t have correct response code for unsuccessful execution of test unit. It should be 400 as it is in the implementation, but it is 418. |
|||
Resolution: |
The response code has been updated to 400 bad request. |
|||
34164168 |
OIG-2564 |
When notification is received for Exchange in Final state, it is logged incorrectly |
||
Description: |
In case a notification is received for an Exchange in the Final state, the message type in logs is of type ERROR. |
|||
Resolution: |
The message type in logs is changed from ERROR to INFO. |
|||
34257471 |
OIG-2606 |
Retaining the search result and not retaining the filter |
||
Description: |
Retaining the search result and not retaining the filter |
|||
Resolution: |
Values selected in the filter component are retained after navigating away from screen and coming back to filter component screen |
|||
34459986 |
3-30166393851 |
OIG-2680 |
Additional logger on agent to know the response received by OIG |
|
Description: |
New version released for Gateway agent containing additional logging for responses |
|||
Resolution: |
The response will be logged in case an error is encountered while parsing it. |
|||
34450327 |
OIG-2672 |
OIG Scheduled Integration stopped working |
||
Description: |
OIG scheduled integration stopped working, and only resumed after a disable/enable. |
|||
Resolution: |
Added more logger statements to capture more information around the scheduler. This will help to analyze the issue when it happen. |
|||
34608912 |
OIG-2744 |
Reference Property Default does not work with display type never setting |
||
Description: |
Reference Property defaults do not work with display type never setting. Setting default on a mandatory field like Languages in Persons page with display 'never' setting doesn’t work and on saving the record an error is thrown that Language is mandatory for Person entity |
|||
Resolution: |
Reference Property defaults work with display type never setting on fixed fields related to an entity. |
|||
34593763 |
OIG-2735 |
Invoke Exchange with 'Payload' and 'file upload' is not working |
||
Description: |
'Invoke Exchange with Fileupload' and 'Invoke Exchange with Payload' options are not working when an option is selected from 'Invoke' dropdown on exchanges search results page. |
|||
Resolution: |
'Invoke Exchange with Fileupload' and 'Invoke Exchange with Payload' options are working fine in exchanges search result page. |
|||
34650948 |
OIG-2769 |
String buffer too small while creating subexchanges in the subflowcreator step |
||
Description: |
The subflow creator properties had a limit of 400 Characters, leading to an error for the use case with more characters. |
|||
Resolution: |
The subflow creator properties limit has been increased to 4000 Characters. |
|||
34607261 |
OIG-2739 |
Conditional display is not working when it is applied on field which is in a separate tile |
||
Description: |
Configure a field which needs to be displayed based on a condition in a separate tile ex Messages in Dynamic Logic page. The field itself is not displayed even if the condition evaluates to true |
|||
Resolution: |
Conditional display of fields works fine when it is applied on a field which is added in a separate tile |
|||
34642270 |
3-30668531791 |
OIG-2759 |
Additional logging in oauth for the failure scenarios |
|
Description: |
OHI doesn’t log the response body when the OAUTH token retrieval request fails. |
|||
Resolution: |
OHI logs the response body when the OAUTH token retrieval request fails. |
|||
34478350 |
OIG-2684 |
Floor Plans Missing After 3.22.1.0.1 Upgrade |
||
Description: |
Some customer Floorplans were missing after 3.22.1.0.0 Upgrade. They got overridden by OHI floorplans due to wrong IDs |
|||
Resolution: |
Incorrect floorplan ids are fixed. |
|||
34733275 |
3-30668531791 |
OIG-2812 |
Duplicate User-Agent HTTP header in HTTP request |
|
Description: |
While sending outbound HTTP request from OHI application, jersey-jetty connector adds another User-Agent header though there is already one added by Jersey framework. For example: User-Agent : Jetty/9.4.45.v20220203 (added by Jetty) User-Agent : Jersey/2.22.4 (Jetty HttpClient 9.4.45.v20220203) (added by Jersey) |
|||
Resolution: |
It was a bug in jersey-jetty connector. Removed User-Agent header added by Jetty in custom jetty connector. |
|||
34693830 |
OIG-2782 |
Not able to select any value from 'Credentials' and 'Address Key' LOV fields |
||
Description: |
Not able to select any value from 'Credentials' and 'Address Key' LOV fields. |
|||
Resolution: |
Credentials' and 'Address Key' LOV fields work properly. |
Issues that were backported in previous Release / Patch
BugDB | Internal | Summary | Backport | BugDB | SR |
---|---|---|---|---|---|
34174921 |
OIG-2578 |
The record searched upon gets cleared off after the display of the results in tab-table |
3.22.1.0.1 |
34186814 |
|
34257394 |
OIG-2605 |
'All columns' radio button and 'Columns' dropdown fields displaying on exchange homepage. |
3.22.1.0.1 |
34257986 |
|
34450327 |
OIG-2672 |
OIG Scheduled Integration stopped working |
3.22.1.0.2 |
34417477 |
3-29191461591 |
34459986 |
OIG-2680 |
Additional logger on agent to know the response received by OIG |
3.22.1.0.1 |
34460004 |
3-30166393851 |
34607261 |
OIG-2739 |
Conditional display is not working when it is applied on field which is in a separate tile |
3.22.1.0.3 |
34607277 |
|
34608912 |
OIG-2744 |
Reference Property Default does not work with display type never setting |
3.22.1.0.3 |
34609174 |
|
34642270 |
OIG-2759 |
Additional logging in oauth for the failure scenarios |
3.22.1.0.3 |
34642296 |
3-30668531791 |
34650948 |
OIG-2769 |
String buffer too small while creating subexchanges in the subflowcreator step |
3.22.1.0.3 |
34651091 |
3-30725958101 |
34693830 |
OIG-2782 |
Not able to select any value from 'Credentials' and 'Address Key' LOV fields |
3.22.1.0.4 |
34693833 |
|
34733275 |
OIG-2812 |
Duplicate User-Agent HTTP header in HTTP request |
3.22.1.0.4 |
34733277 |
3-30668531791 |
34876903 |
OIG-2887 |
Resources cannot be searched, when the code starts with 25 |
3.22.1.0.6 |
34876914 |
Known Issues
BugDB | SR | Internal | Summary |
---|---|---|---|
34164754 |
OIG-2567 |
Outbound exchange: values are not getting updated after building a data set |
|
Description: |
When trying to build a data set, exactVersionMatch and disableDeleteByOmission are not getting updated. Also If we try to update the inclusionDate by passing empty value it is not getting updated. |
||
34865541 |
OIG-2704 |
Invoke activity (import ref sheet lines) from OIG, fails for json file |
|
Description: |
Currently for the invoke activity the Mimetype provided in the typeconfig doesn’t result in the change from default mimetype of text/plain |
||
34593820 |
OIG-2736 |
Cross reference of fields across floorplan ($context.parent) does not work in filter |
|
Description: |
If a floorplan is configured with a condition on a refType property, that modifies the filter to use $context.parent as shown in following snippet, it throws an error. Ex: "filter":"${context.product.code}" |
||
34593870 |
OIG-2737 |
Accessing parent’s properties through $context does not work for conditions floor plan component in create mode |
|
Description: |
It is not possible to access parent properties through $context in conditions component, configured on the child entity’s floor plan in create mode. |
||
34733151 |
3-29584669481 |
OIG-2811 |
OptimisticLockingException when updating lastlogintimestamp of the user |
Description: |
Updating lastLoginTimestamp is controlled by a system property ohi.ws.last.login.update.threshold i.e the lastLoginTimestamp is not updated if the user logs-in multiple times with in the same hour.But if there are concurrent requests next second after this hour, both the API/IP requests try to update the same user record, system throws 500 error in this case. This causes problem in updating the LASTLOGINTIMESTAMP |
||
34865551 |
OIG-2867 |
Integration version : Previous version exchange timestamp is not used for incremental extract |
|
Description: |
Using multiple versions for integrations to extract incremental data from other applications is not working. |
||
34865559 |
OIG-2870 |
Outbound files: Agent does not sign-off the exchange created with new integration version |
|
Description: |
Using multiple versions for integrations to deliver files to agent outbound folders is not working. |
||
34865488 |
OIG-2874 |
Subflows : Main exchange status is not set to Timedout when exchange timeout is reached |
|
Description: |
In the case of exchange level timeout configured, the main exchange is not marked timeout even though the processing stops after the set time period. |
||
34853811 |
OIG-2877 |
Dynamiclogicstatistics Reset URL missing in Dynamiclogicstatistics Response Body |
|
Description: |
/dynamiclogicstatistics/reset URL is not showing in /dynamiclogicstatistics response body. |
||
34863716 |
3-31424455971 |
OIG-2882 |
Additional logging in case of non 20x response in a delivery step |
Description: |
If delivery fails, the exchange log for the failure only shows the HTTP status code and not the full response body for message OIG-GATE-011. |
||
34863759 |
OIG-2885 |
'execution starts' ,'result' , 'execution completed' messages display twice in 'logMessages' in Test Unit IP Response |
|
Description: |
'execution starts' ,'result' , 'execution completed' messages display twice in 'logMessages' in Test Unit IP Response. The standard logging is confusing, it seems that the same error message is given twice. This is however not the case. One is for Test Unit dynamic logic and the other for the actual dynamic logic. The dynamic logic code context is missing in the logging. These messages should be more clear. |
||
34872199 |
OIG-2886 |
Boilerplate not loading for widgets |
|
Description: |
Users will always add boilerplate keys in custom widgets. System should support it. |
||
34924276 |
OIG-2907 |
Context string enclosed in single quote gives API error |
|
Description: |
Search query formed when context string has a trailing space leads to API error. Search Query Expected is for example "q": "groupClient.code.eq('TEST ')" but actually is 'q": "groupClient.code.eq(''TEST '')" |
||
34939942 |
OIG-2909 |
Header Key reading should be case insensitive |
|
Description: |
Headers keys are case-insensitive, whereas exchange properties are case-sensitive. This discrepancy leads to issues while reading properties in dynamic logic or in the code. |
||
34974338 |
OIG-2944 |
Floorplan changes for Auto Include Extensibility. |
|
Description: |
The floorplan page allows auto include extensibility to set to be true and also existing floorplans have auto include extensibility set to true for templates other than SEARCH TABLE, VIEW EDIT LIST and VIEW EDIT HIERARCHICAL RECURSIVE. |