Release 2020-11-10

Studio 1.6

  • Key Interface Fields can now allow null and the generated Source- and Target Engines will handle null value key fields correctly. Because of this enhancement, the Usage dropdown column (Key, Required, Optional) in the Interface Field list on a Business Object in the Target Map has been removed. Instead, the list now contains a checkbox column for Key and a checkbox column for Nulls (set check in Nulls for to mark a field as Optional) (Ticket 504)

    The previous options for the Usage dropdown maps to the new Studio interface like so:

    KeyYesYes / No 

  • You can now Abort processing of an item in response to a flag. More on this here.

  • Performance improvements on large Checkouts and Undo Checkouts (Ticket 580, delivered as hotfix on 2020-07-30 (Studio version 1.5.2)

  • Fix that a Target Relationship could not be deleted from a Business Object immediately after checkout  (Ticket 588, delivered as hotfix on 2020-07-30 (Studio version 1.5.2)

  • Fix a problem when deleting a Business Object with descendants in the Source Map. When the delete was checked in, any descendant Business Objects were not removed from the local workspace. This could cause problems next time the Source Map was opened (Ticket 585)

  • You can now choose to ignore selected warnings issued during Studio validation. This is done through a new panel in the Options dialog:

    Note that the Studio validation in some cases will override the default warning result and promote a given message to an Error. Errors are always shown in the Studio validation

  • New Value Type: Item Id
    • Use this value type to assign the numeric Id of the root Business Object to a Target Field. This is the Id that identifies the root Business Object instance in the Director and the Tracker

  • Abort on Reject
    • It is now possible to abort further processing for Rejects. More on this topic here.

  • An Extension must now be marked as Used in order to be able to use the Metadata- and Valueset providers supplied by the Extension. Extensions not marked Used are excluded from the validation. The Extensions presently installed will be marked Used after install of this update

  • The identification of the required Partition Field on a root Business Object in the Target Map has changed. 
    • Previously, the Interface Field to use as Partition Field has to be selected in a dropdown on a root Business Object:
      This was not optimal. Especially for new users of Studio who would typically forget to create and designate an Interface Field to serve as Partition Field. As a result, the first Studio would simply pick the first Interface Field to me created as Partition Field
    • Now, when you create a new root Business Object in the Target Map, Studio will automatically create an Interface Field named PartitionId with a default Data Type and Description.
      The field is special and is marked by a different (light-blue) background color than the rest of the fields. While you can modify the field (set Key and change Name, Format and Description) and move it up or down, you cannot delete it.
      • There is no refactoring necessary. Any existing root Business Object will automatically find the correct Interface Field currently marked as Partition
  • Rollback of this change introduced in Release 2016-06-26: In a Source Map, The possibility of specifying Order By on the root Source Object on a root Business Object has been removed 
    • The Order By actually has an effect on the root SourceObject of a root BusinessObject if there are more than 1 row for the Source Key (Break Fields) of the root Source Object

  • In Target Map, the list of Target Fields on a Target Object now displays if the field is Primary Key in the Target System. For reference

  • In Source Map, a Source value referencing a source field that has been removed from the source metadata was displayed its with a '?'. This has been fixed, so the source value is retained with a suffix '[removed]'

  • Fixed in the Source Map that is was possible to delete an Export Field by selecting the row header and pressing Delete

  • New validation 0108 in Source Map that the root Source Object on a child Business Object must have at least 1 Key Field (break field)

  • Fixed that the repository list of stale items (root node context menu -> Repository..., News tab) always showed orphaned items = items that were checked in without their parent
    • Requires a refactor of the Repository database, script is attached
  • Fixed that static Valueset column rearrangement was not happening in Data tab (Ticket 739)

  • Fixed that modifying a SourceObject in the extraction map can lead to errors in child Business Objects not discovered by validation (Ticket 743)

  • Improved tab experience when assigning Constant value (Ticket 763)

  • Fixed Event & Receiver text not visible if flag text is too long (Ticket 755)

  • Fixed that copying view Sql to the clipboard from Studio did not handle non-nullable columns correct 
    • The non-nullable columns in the @_migFxValidationCache_  table variable for validation are now marked 'not null'

  • New validation of values dependent on ancestors 
    • It is validated that the Business Object holding the value is in fact a within the child hierarchy of the Business Object referenced by the value
    • Error 0077:  Referencing {0} that is not an ancestor

  • Cosmetic changes in the Source Map
    • Break Fields are renamed to Source Key on root Business Objects and Child Key on child Business Objects
    • Order By is renamed to Pick first

  • Version numbers are no longer written to the item xml when an Item is saved. They caused Studio to indicate items as Stale (newer version in repository) when an upgrade of the Studio application caused the version numbers to change
    • To update the Item Xml and Crc32 in your repository, run this refactor command:
      (Studio Install Path)\MigFx.Studio.Refactor -Operation=RemoveVersionNumber -DataSource=(Sql Server instance) -InitialCatalog=(Repository database) -WorkingFolder:(temp working folder) -Commit:false   

Tracker 1.6

  • Fix exception when updating event after selecting Derived from (Ticket 694)

Engine Framework 1.6

  • Xml Modification: If a Business Object in the Source Map has been named (for instance if it is a copy) the name is added as an attribute on the item in the exported xml

  • The check for uniqueness on exported child Business Objects has been moved from the generated xsd schemas to the generated c# ItemImporters. This is because the xsd schema is unable to implement a unique test for null value key fields. This change has made it possible to improve the System Event message in case of duplicates in an exported child Business Object
    • Previous message was:  'There is a duplicate key sequence '(the duplicate value)' for the '(name of the child Business Object)' key or unique identity constraint'
    • New message: '(Source Business Object containing the children) - duplicates in child (child Business Object) ({0}), Count: {1}, XPath: {2}'
    • Event Parameters:
      • 0: The duplicate key, for instance InterestLineSeqNo: 1
      • 1: The number of children with this key
      • 2: The indexed XPath to the Target Business Object holding the children, for instance Account/Interest[2]
    • As an example, if the exported Business Object Account/Interest [Copy] has duplicates in the list of InterestLine children - and the exported Interest child is the second in the list of Interest children - the System Event could like so:
      • Account/Interest [Copy] - duplicates in child InterestLine (InterestLineSeqNo: 1), Count: 2, XPath: Account/Interest[2]

  • The System Event for Xml Validation errors has been changed, so the actual XSD validation error is demoted to be a parameter to the event. To now, on the summary list in the Tracker, Xml validation errors will appear with a placeholder: Xml Validation: {0}, Path: {1}

  • The boolean return value from Entry and Exit Rules is now respected so a return value of false causes the Business Object to be discarded (Ticket 596)

  • Fix that a Metadata with no alias caused the Source Engine Generator to fail

  • Support for aborting item processing (see Studio above)

  • The framework must be installed on all developer machines and all migration servers

Interfaces 1.6

  • The Target Engine AuditCollector extension point now exposes the virtual method GetTargetKey to allow an extension to return the key that identifies the Business Object in the Target System (Ticket 57)
    • Interface dll: MigFx.Public.Director.Server.dll
    • Namespace: MigFx.Director.Server.Import.AuditCollect

  • More lenient validation of Num and Date fields when loading Source Tables and Valuesets to accommodate other regional settings than DA

  • Install on all developer Workstations and Migration Servers. Please ensure that the following libraries are removed when uninstalling and - if not - delete manually
    • C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MigFx.Public\v4.0_1.0.0.0__92ee5b953e47dbd1 \MigFx.Public.dll
    • C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MigFx.Public.Director.Server\v4.0_1.0.0.0__92ee5b953e47dbd1\MigFx.Public.Director.Server.dll

Director Client 1.6

  • If a Translation Valueset is ignored in Manage/Translation, it will no longer appear in the Valueset list calling to be loaded
  • Fix that first time launch of Director after install of version 1.5  fails (Ticket 627)

Director Runtime 1.6

  • Changes connected to the collection of Target Key as mentioned under Interfaces 1.6
  • Fixed bug that submitting a Clear File job to delete a load file for a staging table results in a job failing with 'Unknown Action: Clear File'  (Ticket 577)

Visual Studio Extension 1.6

  • Fixed that the MigFx Extension crashed in Visual Studio 2017 (Ticket 584)
  • Generate... and Deploy... menu items moved to migFx submenu


  • Please run attached Sql script DirectorDb.02.sql on all Director Migration databases  
  • Please run attached Sql script RepositoryDb.04.sql on your Repository database
Login or Signup to post a comment