🚀 Welcome to MDriven Learn –  Don’t miss the latest Release Notes.
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 the FormerNames property setting.
  2. Using a method.
  3. Using derived attributes.
  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 the FormerNames Property Setting

This solution involves renaming the attribute.

  1. Set the new type on the attribute.
  2. Rename the attribute to a new name and make sure to check the Set Former Name checkbox.
    • When you rename an attribute, the previous attribute will be dropped or destroyed when the attribute with a 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. The 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 steps 2 and 3, renaming the attribute to its previous name.


Example showing conversion of a Price 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 the data of two attributes into one.

  1. Create a new attribute and set the new type on the attribute.
  2. Add a method to the class, go to the method body, and use EAL expressions for your transformation of the new attribute.
  3. While the Turnkey and Server applications are running, open the debugger.
  4. Run the method in Action mode for the instances on which you would like to perform transformations.
  5. Don't forget to save after executing the expression.
  6. The new attribute with the new type can now be used within the ViewModels. Or, the current attribute can be renamed to something else using method 1 of the FormerNames property setting, and the new attribute with the preferred type can use the name available in the ViewModels. This eliminates the need to make changes to ViewModels.

For example, below, after performing the transformations, set the Price attribute to perhaps OldPrice and set the new attribute xPrice to Price.


Example showing how to convert a 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

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 in case 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 ensure that current data is retained in its state of truthfulness and the new type is also available.
  • Derived attributes can also be used for complex transformations.


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

Using Derived Attributes

Summary

  • Use derived attributes to test new data types or new attributes and transformations.
  • Use methods for more explicit conversions like combining the data of two attributes or other computations.
  • Use the FormerNames property setting after testing to make the changes to the new attributes and types permanent.

See also:


]


]


[[Category:Attributes and data types [Beginner]]]