Migrate > Take the first steps after WebSphere Commerce migration > Migrating Management Center


Maintenance and migration considerations for the Management Center


Customization best practices

Refer to the customization tutorials within the information center.

Consult the OpenLaszlo API information used by the Management Center framework. Use only the documented API classes, not classes marked private. Do not change restricted API files.

Always use WebSphere Commerce Developer for development. This development environment is designed to make your customization and future migration easier. Applications developed using other tools cannot be maintained or migrated properly.

Always use designed extension points. The OpenLaszlo API classes include these extension points.

Always follow the recommended deployment procedure. In particular, when you deploy, ensure that you export the entire WAR file from the LOBTools project, including all source code, since the entire ManagementCenter.swf file needs to be recompiled when maintaining or upgrading.


OpenLaszlo source files

The OpenLaszlo source files used with the Management Center fall under two groups: restricted and customizable files. Consider the type of file you change, when you customize the Management Center:

Restricted files

Restricted files contain class definitions for the basic functionality that is common to all tools within the Management Center. Files within the restricted directories will be replaced when you install WCS fixes, or migrate to the next release; therefore, do not change these files when customizing the Management Center.

Restricted files can be replaced in a WCS fix pack. If you store the development workspace files into a source control management system, after applying a fix pack, ensure you synchronize your workspace with the source control management system.

Customizable files

Customizable files describe the objects within a Management Center tool and how to display them. When you install WCS fixes, or migrate to the next release, the customization will be maintained in these files. You can use, extend, or change the classes within customizable files when customizing the Management Center.

Clearly separate the code from the base IBM code. If you are creating new classes, place them in the own file to avoid complicating the migration process.

Avoid moving instances of a class from one parent to another. Changing parents is treated as adding and deleting, and there is no method to associate the two. The instances under the new parent are treated as the custom assets. No WCS fixes or enhancements will be applied to them.

Avoid deleting IBM code. Classes in search definitions and object definitions do not affect anything if you do not call them. This means that if you install WCS fixes, or migrate to the next release, we will automatically receive the updated classes. Likewise, most Management Center widgets can be hidden from the Management Center user interface so that a business user does not see them. This is done by changing the visibility flag to false. Similar to classes for search definitions and object definitions, if you leave these in place, you will receive enhancements when applying fixes or migrating.

Feature Pack 2 If the classes within OpenLaszlo files don't include the following tags, you should avoid adding any of the following tags to those classes when you customize them:

  • method
  • handler
  • setter
  • state
  • attribute

It is difficult to migrate if you make such customizations.


Predefined extension points

There are two kinds of customization assets:


Example customization

The following code is a example of customization done improperly and explanations on why. Here is the original IBM code:

<wcfPropertyPane>

    <wcfPropertyGroup collapsable="false">

        <wcfPropertyInputText propertyName="name" 
                              required="true" 
                              promptText="${mktMarketingResources.name.string}" />

        <wcfPropertyInputText propertyName="owner" 
                              promptText="${mktMarketingResources.owner.string}" 
                              helpText="${mktMarketingResources.help_campaign_owner.string}"/>

    </wcfPropertyGroup>

</wcfPropertyPane>

In this original code, there is an instance of wcfPropertyPane, with an instance of wcfPropertyGroup (containing several input text widgets), within it.

Here is the customized version:

<class name="myPropertyGroup" 
       extends="wcfPropertyGroup" 
       collapsable="false">

    <wcfPropertyInputText propertyName="name" 
                          required="true" 
                          promptText="${mktMarketingResources.name.string}" />

    <wcfPropertyInputText propertyName="owner" 
                          promptText="${mktMarketingResources.owner.string}" 
                          helpText="${mktMarketingResources.help_campaign_owner.string}"/>

</class>

In the customized version, the code has been changed to accomplish the same task, but it is coded poorly. The code defines a class that extends wcfPropertyPane, and the input text widgets are placed here.

In addition, the customized code includes:

<wcfPropertyPane>
    <myPropertyGroup />
</wcfPropertyPane>

The wcfPropertyPane was updated to use an instance of the customized class.

This customized code complicates migration because if IBM needs to update the input text widgets, the migration tooling to compare the differences between the files would not be able to associate the original input text widgets with the customized ones.

To summarize, this change was not necessary. The classes should be left as is, and customize (by adding or changing) the input text widgets within the existing instance of wcfPropertyGroup


Related concepts

Migration steps required for different types of customizations
Management Center modeling guidelines
Management Center file directory structure
Management Center file and class naming conventions
Object path
Language-sensitive objects
Resource access control
Overview of customizing Management Center


+

Search Tips   |   Advanced Search