MDM 5.5
SP06 Patch 01
With MDM 5.5 SP06 Patch 01, the Java API has been enhanced as follows:
● New
○ New command ModifyRecordHierarchyCommand to change location of the record in the hierarchy structure.
○ New KeyMappingFactory class for creating new instances of KeyMapping, RecordKeyMapping and AttributeKeyMapping interfaces.
○ Added ability to create User session by specifying Locale instead of the Region name. Locale is an additional parameter in the UserSessionContextclass.
○ New command RetrieveRelationshipMembershipCommand to retrieve all relationships that a record belongs to.
○ Enabled the use of SearchGroup (still very limited).
○ Allowed for AttributeSearchDimension + TextSearchConstraint search combination. It's mainly used for free-form search on text attributes.
○ Allowed for AttributeSearchDimension + MeasurementSearchConstraint search combination. It's mainly used for free-form search on numeric attributes.
○ Enabled the use of SearchGroup. There are still many limitations especially for attributes and qualifiers.
○ Added the following methods getRepositoryStatus(), getRunningOperations(), isBrokenSynchronization() and isReadOnlyRepository() to the class RepositoryProperties.
○ Added a new enum RepositoryAccessPermissions.Objects.WORKFLOWS for inquiring access permission for the workflows table.
● Fixes
○ Setting up a search using the DateTimeSearchConstraint would eventually throw an exception when used in a command.
○ Each instance of EventDispatcher may not have received a notification because in some cases, they may have used the same connection source.
○ The method SearchGroup.removeSearchItem was not removing the item.
○ Defining a search with a search dimension, for example FieldSearchDimension, failed to work on a data table.
○ RetrieveRecordsByValueCommand did not work on a data table.
○ The command SynchronizeSlaveRepositoryCommand never did work. In addition, the command to synchronize all changes since the last synchronization was changed. The old Javadoc indicated that a partial synchronization (one transaction) will be done.
○ A command might throw a runtime exception "xxx was not the owner" when a simple connection was used. The error is a timing issue depending on when the GC is triggered.
○ Executing a command that causes an OutOfMemoryErrorputs the connection into a bad state. Continued use of this connection would throw an IllegalStateException message, "Previous send not yet complete".
○ Bug fix in the constructor of AttributeId class that obtains string representation of ID as input parameter.
○ Bug fix in the RetrieveRecordsByIdCommand: add ability to get display value, record status, record type and to filter links.
○ Bug fix in the RecordLoader. The following error existed: when a record was retrieved with RegionLayer.CURRENT, the multi-region field with Null value was not populated correctly causing a problem when setFieldValue method was called.
○ For the classes CurrencyFieldProperties, BooleanFieldProperties and MeasurementFieldProperties, the getter methods could return incorrect results because of parsing issues. The methods include getTrueValue(), getSymbols(), getDecimalPlaces(), getShowFractions() and isShowFractions().
○ Specifying a field sorting for a lookup field did not sort by the display value.
○ MultilingualString.remove threw a ClassCastException.
○ Could not set NULL value to multi-value numeric attribute.
○
All commands
inheriting from AbstractRecordIdsCommand and used through the constructor obtaining
MdmSessionContext as a parameter could get NullPointerException while executing some setter methods.
For example: DeleteRecordsCommand.setTable(TableId) and CheckinRecordsCommand.addRecordId(RecordId)
● Changes
○ Added a new parameter isFilterQualifiedLinksto ResultDefinition class enabling filtering of qualified links.
○ Changed the methods SearchGroup.addSearchItem to return the new search item.
○ Deprecated the constants TextSearchConstraint.LANGUAGE_LAYER. There is no way to make use of it.
○ Deprecated SearchGroup.STANDARD_OPERATOR. It has been moved to Search.STANDARD_OPERATOR.
○ Deprecated the methods getMasterChangeId and getSlaveChangeId from SynchronizeSlaveRepositoryCommand. Added the method isMoreChanges.
○ Changed class scope for AbstractAttributeProperties from package to public.
○ Deprecated the enums BACKING_UP_REPOSITORY_TYPE, VERIFYING_REPOSITORY_TYPE, DUPLICATING_REPOSITORY_TYPE, ARCHIVING_REPOSITORY_TYPE from the class RepositoryProperties. They are replaced by RepositoryProperties.getRunningOperations.
○ Deprecated the enum READ_ONLY_REPOSITORY_TYPE from the class RepositoryProperties. It is replaced by RepositoryProperties.isReadOnlyRepository.
○ Added isFilterQualifiedLinks property to ResultDefinition
○ Changed QualifiedLinkValue from a class to an interface. In addition, (1) added method getDisplayValue(); (2) added method getLookupDisplayValue(FieldId); (3) added method getQualifiedLookupRecord()
