Using the Upgrade Wizard
While upgrading the DAC items, the wizard does the following:
- Adds the StorageName attribute and sets its value to
"ExistingColumn"
for an existing field. - Adds the StorageName attribute and sets its value to
"AddColumn"
for a custom field. - Finds and replaces all references to custom fields in the attributes of other
customized fields, such as a PXSelector,
PXParent or PXFormula. For example,
the wizard inserts the
typeof(DACNameExt.usrFieldName)
reference in the PXSelector declaration instead of thetypeof(DACName.usrFileName)
reference.
While upgrading items of the Code type, the wizard processes each item to find
references to the custom fields and replaces the references by using the following
approach:
- The wizard updates the references to the abstract class of the DAC field from
DACName.usrFieldName
toDACNameExt.usrFieldName
, where theDACNameExt
is the name of the new extension class. - The wizard replaces the references to the field
Row.UsrFieldName
with a reference to the field through the DAC extension:Row.GetExtension<DACNameExt>().UsrFieldName
.
For example, the following code contains the references to the
APRegister.usrVoucherNbr
class and
doc.UsrVoucherNbr
field, which is a field customized based on the
MSIL injection technology.
sender.RaiseExceptionHandling<APRegister.usrVoucherNbr>(doc,
doc.UsrVoucherNbr,
new PXSetPropertyException("..."));
After technological upgrade for the customization of DAC classes in the project, the
references will look as the following code shows. Now the code refers to the
usrVoucherNbr
class of the APRegisterExt
extension
class that will be generated during publication of the project.
sender.RaiseExceptionHandling<APRegisterExt.usrVoucherNbr>(doc,
doc.GetExtension<APRegisterExt>().UsrVoucherNbr,
new PXSetPropertyException("..."));
Warning: There might be a situation when a legacy customization includes two
data access classes with custom fields that have the same names, such as
DACName1.usrTheSameFieldName
and
DACName2.usrTheSameFieldName
. When you upgrade the
customization, the wizard replaces the Row.usrTheSameFieldName
references to each field by using the following pattern:
Row.GetExtension<DACName1Ext or
DACName2Ext>().usrTheSameFieldName
. The expression
"GetExtension<DACName1Ext or DACName2Ext>
" is invalid and
causes a compilation error. You are supposed to review these references and insert
the correct reference to the needed class, DACName1Ext
or
DACName2Ext
.