Changes to properties during the V6.0 iFix 001 migration

The V6.0 migration tool significantly changes the way properties are specified.

Property names

The migration tool renames properties whose names have changed in EGL V6.0 iFix 001.

Table 1. Renamed properties
Before migration After migration
action actionFunction
boolean isBoolean
getOptions getOptionsRecord
msgDescriptor msgDescriptorRecord
onPageLoad onPageLoadFunction
openOptions openOptionsRecord
putOptions putOptionsRecord
queueDescriptor queueDescriptorRecord
range validValues
rangeMsgKey validValuesMsgKey
selectFromList selectFromListItem
sqlVar sqlVariableLen
validator validatorFunction
validatorMsgKey validatorFunctionMsgKey
validatorTable validatorDataTable
validatorTableMsgKey validatorDataTableMsgKey

Property values

The migration tool adds double quotes to property values that are used as string literals.

Before migration:
{ alias = prog }
After migration:
{ alias = "prog" }

This change affects these properties:

Array literals

Array literals as values

When it specifies array literals as value, the migration tool replaces parentheses with brackets. This change affects these properties:

Single element array literals

For properties that take array literals, the migration tool puts single element array literals in brackets to specify that an array with only one element is still an array. The migration tool uses double sets of brackets for properties that take arrays of arrays.

Before migration:
{ keyItems = var, screenSizes = (24, 80), range = (1, 9) }
After migration:
{ keyItems = ["var"], screenSizes = [[24, 80]], range = [[1, 9]] }

When the migration tool overrides properties for a specific element in an array, the tool uses the this keyword instead of a variable name.

Before migration:
Form myForm type TextForm
  fieldArray char(10)[5] { fieldArray[1] {color = red } };
end
After migration:
Form myForm type TextForm
  fieldArray char(10)[5] { this[1] {color = red } };
end

Parts, functions, and fields

Where appropriate, the migration tool changes references to parts, functions, and fields by adding quotes and brackets:

Before migration:
{ keyItems = (item1, item2) }
After migration:
{ keyItems = ["item1", "item2"] }
This change affects these properties:

Specified Boolean properties without values

To all Boolean properties that were specified but not assigned a value, the migration tool assigns a default value of YES:
Before migration:
{ isReadOnly }
After migration:
{ isReadOnly = yes}
This change affects these properties:
  • addSpaceForSOSI
  • allowUnqualifiedItemReferences
  • boolean
  • bypassValidation
  • containerContextDependent
  • currency
  • cursor
  • deleteAfterUse
  • detectable
  • fill
  • helpGroup
  • includeMsgInTransaction
  • includeReferencedFunctions
  • initialized
  • inputRequired
  • isDecimalDigit
  • isHexDigit
  • isNullable
  • isReadOnly
  • lowerCase
  • masked
  • modified
  • needsSOSI
  • newWindow
  • numericSeparator
  • openQueueExclusive
  • pfKeyEquate
  • resident
  • runValidatorFromProgram
  • segmented
  • shared
  • sqlVar
  • upperCase
  • wordWrap
  • zeroFormat

The currency property

The migration tool splits the currency property into two properties: currency and currencySymbol. The following table contains examples of how the migration tool changes the currency property.
Table 2. Changes to the currency property
Before migration After migration
{ currency = yes } { currency = yes }
{ currency = no } { currency = no }
{ currency = "usd" } { currency = yes, currencySymbol = "usd" }

The dateFormat and timeFormat properties

The migration tool changes the values of the dateFormat and timeFormat properties to be case sensitive. For more information, see “Date, time, and timestamp format specifiers.”

Enumeration property values

In the preferences menu, if Add qualifiers to enumeration property values is selected, the migration tool adds the name of the enumeration to the value of the property.

Before migration:

color = red
outline = box
After migration:
color = ColorKind.red
outline = OutlineKind.box
This change affects these properties:

The tableNames property

The migration tool changes the values of the tableNames property to be an array of arrays of strings. Each array of strings must have either one or two elements. The first element is the table name, and the second element, if present, is the table label. The following table contains examples of how the migration tool changes the tableNames property.
Table 3. Changes to the tableNames property
Before migration After migration
{ tableNames = (table1, table2) } { tableNames = [["table1"], ["table2"]] }
{ tableNames = (table1 t1, table2) } { tableNames = [["table1", "t1"], ["table2"]] }
{ tableNames = (table1 t1, table2 t2) } { tableNames = [["table1", "t1"], ["table2", "t2"]] }

Dates, times, and timestamps

The migration tool changes the way dates, times and timestamps are specified, including changing the values of the dateFormat and timeFormat properties to be case sensitive. The following table contains examples of how the migration tool changes dates, times, and timestamps.
Table 4. Changes to dates, times, and timestamps
Before migration After migration
dateFormat = "yy/mm/dd" dateFormat = "yy/MM/dd"
dateFormat = "YYYY/MM/DD" dateFormat = "yyyy/MM/dd"
dateFormat = "YYYY/DDD" dateFormat = "yyyy/DDD"
timeFormat = "hh:mm:ss" timeFormat = "HH:mm:ss"

defaultSelectCondition property

The migration tool changes the values of the defaultSelectCondition property to be the sqlCondition type.
Before migration:
{ defaultSelectCondition =
  #sql{
    hostVar02 = 4
  }
}
After migration:
{ defaultSelectCondition =
  #sqlCondition{ // no space between #sqlCondition and the brace
    hostVar02 = 4
  }
}

The fillCharacter value

The migration tool replaces the NULL value of the fillCharacter to the empty string value "".

Feedback