Professional Documents
Culture Documents
Subject:
From:
To:
Abstract
Table of Contents
Table of Contents...................................................................................................................2
Introduction.............................................................................................................................3
Conversion Technique............................................................................................................3
Getting started........................................................................................................................3
Split all objects into batches.........................................................................................3
Make a list of modifications that are, or are not, being upgraded.................................4
Create a forum for Technical Consultants to share information on critical changes.....5
Redesign M3 Screens if Usability improvements have been ordered..........................5
Appendix 1: Example data conversion program – Split RIDL into RIDL and RIDX...............20
Introduction
This document is a guide for a Lead Technical Consultant and their team in performing the
upgrade.
It includes the basic steps and guidelines on how to work through the different object types.
Some knowledge is assumed.
Conversion Technique
It is more efficient to upgrade all objects of the same type, before moving onto the next. The
database is upgraded first; programs are upgraded after everything else.
Alternatives like upgrading by customization and delivering in batches should be avoided.
This causes delays as Technical Consultants exchange locks and ignore blocks of code that
don’t belong to their customization.
Assuming the project has been positioned correctly there will be an agreement to upgrade
everything that is needed, ignore anything that isn’t and deliver it all at the same time.
Getting started
If you have followed the steps in “Creating a Customization Upgrade environment” you will
now have the languages, and converted views installed.
Languages components should require no further changes.
Compilation dependencies require most object types to be created in a specific order. If you
work through the list of objects in this order you shouldn’t hit too many dependency issues.
1. Database interfaces (mvx.db.def + mvx.db.dta)
2. Data structures (mvx.app.ds)
3. View definitions (mvx.dsp.obj + .xml object)
4. Output interfaces (mvx.out.obj)
5. Parameter Lists (mvx.app.plist)
6. Utilities (mvx.app.util)
7. Programs (mvx.app.pgm)
The dependency on Field help is only at runtime. These can be upgraded anytime in the
process.
Contact Anders J Carlsson who can import these into a new Jira project for your customer.
This creates an effective task list. You can manage this by mass changing issues to
allocate them to your developers.
It also provides you with a progress bar and an indication of workload by assignee.
Performing the upgrade
Upgrading the different M3 object types
If all of the statements below are true, a migration routine will have to be written,
documented and delivered to the customer project.
1. A standard data structure has been modified
2. An additional standard field has been added
3. The data structure is used for persistent data (E.g. placed on CSYTAB, CSYPAR or
CSYSTP)
The fix programs usually take the format of a Java program to manipulate the relevant
database values. See S12500017 as an example! It is likely that your function will have to
work with the parameter (E.g. CTPARM) as a substring moving the old custom data after the
new standard data.
This fix program should also stamp the record as upgraded in case it is executed a second
or third time. This could be done by setting the last character on the long field to '1'. It
should be safe to run all fix programs multiple times without corrupting the database.
For changed standard data structures which do not represent persistent data. That is, are
used as parameter list in programs, or only used at runtime. It is only necessary to add the
modified fields to the end.
• Arguments ${resource_loc}
This will generate a modification summary in the console window. There are in fact two
summaries; the first is by Panel, Component and Action number.
These summaries give you a list changes that need to be re-applied to the new standard
view to re-create the customization.
The upgrade process is not intuitive. See Demo 1: Upgrading a view definition for an
example of how to do this.
Utilities (mvx.app.util)
Custom parameter lists may not need to change
If they use one of the changed database fields a change will be required (see 5.1 Extended
fields in 7.1 and 5.2.1 Add suffix field).
If a change isn’t required get, build and deploy.
For changes to standard utilities get a copy of the modified 5.2 version and a copy of the
new 7.1 standard version. Use the Eclipse Compare with > Each other to merge all the
standard changes into the modified version.
Utilities don’t use inheritance, be sure to duplicate the entire standard 7.1 object.
Programs (mvx.app.pgm)
A 5.2 to 7.1 program parser is available to simplify the coding changes.
However this is not an automated process.
There are a significant number of changes to the code base between 5.2
and 7.1.
The 5.2 to 7.1 program parser and all related documentation is available
as a shortcut on the development servers.
The program parser is also available for download from the wire as part of the M3
SteppingUp Developer Kit.
The attached code generator also includes a new option for generating the externally
defined data structures (instead of the internally defined MvxStruct objects).
The standard JCpyDta tool can be used by the project SE to copy records from the old
customer database to the new one. Document this and deliver it to the project.
The JCpyDta tool will only copy values where the table name + field name + field type
match. It will set new values to 0 or blank depending on type.
If the name or type of a field has changed, create a custom SQL script that will move data
from one schema to another. Document this and deliver it to the project.
If fix routines have been written, document how to run them, it is also worth noting potential
side effects if they are not executed.
Refer to “Custom database migration instructions.doc” in for a sample migration document.
Remove Service
pack and service
pack View path
Go to the java perspective, select the View Definition source and run the ViewDef Actions
tool.
Performing the upgrade
Upgrading the different M3 object types
In this case we can see one modification (P003). It affects W0SEAH on the F0 panel.
Now we get the 7.1 standard version of the view.
...and overwrite the 5.2 version (leaving the old 5.2 copy open for reference)
Now open the overwritten view in the MAK perspective. You have two view definitions
open.
In the foreground is the modified 5.2 version. In the background is the standard 7.1 version.
You may now use the checklist shown earlier to review the listed components, identify the
modifications and apply these to the new standard 7.1 version of the view.
This has to be done by comparing the component properties in the standard 7.1 view to the
modified 5.2 view.
In the example below WOSEAH had a new value (7) added to the drop down list.
import mvx.app.common.*;
import mvx.runtime.*;
import mvx.db.dta.*;
import mvx.app.util.*;
import mvx.app.plist.*;
import mvx.app.ds.*;
import mvx.util.*;
import mvx.util.KQLOG;
/**
*<BR><B><FONT SIZE=+2>Fix: Split RIDL into RIDL and RIDX </FONT></B><BR>
* <BR>
*
*<B>(c) 2007 Lawson Software. All rights reserved </B>
*<B>Licensed material property of Lawson Software</B><BR><BR>
*
*<PRE>
*<B>Use of indicator 61 - 89</B>
Performing the upgrade
Upgrading the different M3 object types
*<B>Indicator</B>
*
*</PRE>
*<PRE>
*<B>Modification area - Customer
*Nbr Date Usid Description</B>
*
*99999 999999 XXXXXXXXXX x
*
*RIDL0 061004 LAGCAR0 RIDL_conversion
*OL100 061026 LAGCAR0 Order_line_Extension_Batch_1
*
*</PRE>
*/
/**
* INIT - Init subroutine
*/
/**
*
*/
public String getVer() {
return version;
}
public final String version = "Pgm.Name: S12415003, " + "Source creation date: Tue
Dec 14 11:00:00 CET 2004, " + "ID number: ?";