When using virtual columns in LANSA it is very important to understand and properly define when the virtual column is derived. For example, you can use virtual columns as output only to display information, such as a date in a different format. Or, you can use virtual columns as input columns which will determine what value is written to the real column in the table. Understanding when a virtual column is derived becomes even more important once predetermined join columns and triggers are introduced. A column can be specified as both on input and before output.
Derive value when record is read = DISPLAY ONLY
The "derive value when record is read" option means that the virtual column is created when you read the information from the table. The information will now be derived and available for display. For example, a date is stored as YYYY/MM/DD so the table can be properly sorted by date, but the information is displayed to the user as DD/MM/YY. This virtual date column would be derived on input, in other words, when you read from the table.
Populate real column when writing to table = UPDATE FILE
The "populate real column when writing to table" option means that information entered in a virtual column will be written out to the table column(s) used to define the real columns. The virtual columns are the user input columns and will write information to a real column in the table. For example, the user enters a date in DD/MM/YY and it is then converted and stored in the table as YY/MM/DD.
To summarize:
Also See
Derive value when record is read in the Technical Reference Guide
Populate real column when writing to table in the Technical Reference Guide