How can I use a DU000010 out file in an upgrade process?
What is DU000010?
For a layman, DU000010 seems like alpha-numeric mumbo jumbo. But speak to a developer, and she will tell you more!
DU000010 is an SQL table – the starting point for the database upgrade process as it helps you define the type of upgrade: Is this a normal upgrade or a customized one. It also works as a reference table when you plan backend GP table upgrades.
Another benefit of this table is that it helps you track down errors and modify them.
How do you initiate an upgrade with DU000010?
The DU000010 out file gets loaded with all the data model changes that happen in every release.This is a table in the DynUtils dictionary. All the table upgrades for every product need to be loaded onto this table and this must be done for each release.
The fields in the table play an important role for the upgrade process. So, let’s review the fields and the importance of updating the value in each field.
The table structure of DU000010 out is as below:
|PRODID||SmallInt||This table holds the upgrade details for all the products, and hence has the product ID information.|
|fileNumber||SmallInt||This is a unique number assigned to each upgraded table. This field is used to identify the upgrade details for each table. The file number of this table will be updated in the DU000030 table to know the status of the upgrade.|
|filename||Char||This field holds the physical name of the table for which the upgrade is done.|
|fileOSName||Char||This field holds the technical name of the table.|
|versionMajor||SmallInt||This field holds the version that the conversion script is being written for.|
|versionMinor||SmallInt||This field holds the version that the conversion script is being written for.|
|versionBuild||SmallInt||This field holds the version that the conversion script is being written for. Usually, it is one version higher than the last release build number. For example, if the last release version is 18.2.1013, then this version will be
|conversionScript||Char||This field has the Dex script name that holds the conversion logic for the table.|
|ACTION1||SmallInt||This holds the conversion script type.
0 = Standard, 60 = Custom
|priorityLevel||SmallInt|| 0-1 = System
|CODENAME||Char||Project Code Name|
The main input for the upgrade process starts from DU000010 out file records. The conversion script added in this table is executed from the satellite dictionary. This is nothing but the DU dictionary.
SELECT * FROM [DU000010] WHERE [PRODID] =
/* if System */
[priorityLevel] between 0 and 1
/* if Company */
[priorityLevel] between 2 and 10
[versionMajor], [versionMinor], [versionBuild], [priorityLevel]
The code name entered in this table is considered as the project name for the upgrade of the respective table. In standard conversion processes, there are three set of tables created and a conversion script for each table. The naming convention for these are predefined and are as below: