Attribute or Data Type Conversion

Evolving from one data type to another is not automatically available in Mdriven due to the side effects of conversions.

Mdriven provides different options for converting data types,

  1. Using FormerNames property setting.
  2. Using a method.
  3. Using derived attributes (Recommended).
  4. Using SafeCast.

Important to know before performing a conversion

  • Data conversions have to be done meticulously as they can result in data loss. Backup your database before performing any conversions.

Using FormerNames property setting

This solutions involves renaming the attribute.

1. Set new type on attribute.

2. Rename the attribute to a new name and make sure to check Set Former Name checkbox

   When you rename an attribute, the previous attribute will be dropped or destroyed and attribute with new name is created.

   Checking the Set Former Name checkbox will add the previous attribute name in the Database property setting FormerNames.

3. Upload model.

MDriven evolver will try to transform and transfer the transformed data from the old attribute to the new attribute.

4. After checking and making sure the data has been successfully transformed, repeat step 2 and step 3 renaming the attribute to its previous name.


Example showing converting ofPrice attribute from Integer to Decimal.

Using FormerNames Property
Rename Attribute Window Settings

Using a Method

Using a method can be more useful in scenarios where you want to be more explicit about your conversion or want to combine data of two attributes into one.

1. Create new attribute and set new type on attribute

2. Add a method to the class, go to method body and use EAL expressions for your transformation for the new attribute.

3. While the TurnKey and Server applications are running, open debugger.

4. Run method in Action mode for the instances you would like to perform transformations on.

5. Don't forget to save after executing the expression.

6. The new attribute with the new type can now be used with in the view models or the current attribute can be renamed to something else using method 1 of FormerNames property setting and the new attribute with preferred type to use the name available in the ViewModels. This eliminates the need to make changes to ViewModels.

For Example below, after preforming the transformations, set Price attribute to may be OldPrice and set new attribute xPrice to Price.

Example showing how to convert Price attribute from Integer to Decimal type and increment price by 1000

Using a Method for Data Conversion
Using OCL debugger to run method transformations

Using Derived Attributes (Recommended)

Using derived attributes ensures there are no side effects on your data. With this option current data is retained and you can try other data conversions and transformations without affecting the data. Derived attributes provide a simpler way to test and use new data types and transformations, they are easy to create and remove.

You can use the new data attributes with the old data type attributes, incase you change your mind, just delete the new derived attribute and continue using your old data type attribute.

Deleting a derived attribute will not have any effect on your data in the database.

Derived attributes ensures that current data is retained in its state of truthfulness and new type is also available

Derived attributes can also be used for complex transformations.

Example showing how to convert Price attribute from Integer to Decimal type and increment price by 1000

Using Derived Attributes
This page was edited 43 days ago on 07/26/2024. What links here