Question 580
At fictional Xenon Office Supply, the Business Central development team is supporting office stock replenishment and reviewing extension environment and deployment preparation during an AL developer handoff (MB820-2.2-039). The observed development issue is that an extension adds a field but overwrites existing customer values on upgrade. Which AL development or design response most directly addresses this issue?
Explanation
Correct Answer
The most direct corrective response is to use a versioned upgrade codeunit and preserve/migrate existing records before using the new schema. This addresses the specific failure where an extension adds a field but overwrites existing customer values on upgrade. Acceptance evidence is that a seeded tenant retains prior values after the new app version is applied.
Incorrect Answers
“Separate debugger lifecycle from extension publish, install and uninstall procedures” concerns the alternative task “separate debugger lifecycle from extension publish, install and uninstall procedures”, but the stated failure is that an extension adds a field but overwrites existing customer values on upgrade. The required measure is to use a versioned upgrade codeunit and preserve/migrate existing records before using the new schema.
The proposed “Use AL labels and language translation resources rather than embedding UI messages as literals” tests a different control: use AL labels and language translation resources rather than embedding UI messages as literals. The reported condition is that an extension adds a field but overwrites existing customer values on upgrade; the more direct action is to use a versioned upgrade codeunit and preserve/migrate existing records before using the new schema.
“Increment the extension version and follow the supported package publish/upgrade path” supports the separate task “increment the extension version and follow the supported package publish/upgrade path”, not the reported problem: an extension adds a field but overwrites existing customer values on upgrade. This case instead calls for “use a versioned upgrade codeunit and preserve/migrate existing records before using the new schema”.