OFBiz Migration

So you are currently running an OFBiz installation and want to migrate? That’s great! Luckily, with SCIPIO ERP the migration from OFBiz is rather straightforward. The code-base is mostly backward compatible and even though we added additional bugfixes, the general structure never changed. There are, however, differences with regards to the rendering engine & themes that will require additional steps to migrate.

General

We recommend to download a fresh copy of our source. Next you will need to copy over your own components in /hot-deploy & /special-purpose and check for other files you may have changed in your own custom installation. Look out for the database configuration, general.properties or alike, as these will most likely have been modified. Though it is not recommended, many projects change core behaviour inside the OFBiz framework or the applications. We recommend to have a look out for these in your history. Bugfixes aside, you will unfortunately have to migrate these over to SCIPIO ERP. After a data reseed, you should be able to recompile and run your SCIPIO ERP installation. The individual steps are outlined below.

Component migration

Generally speaking, your own components (and OFBiz components) should be able to run alongside the new SCIPIO ERP components. These are the migration steps:

  1. Copy your own applications into /hot-deploy and /special-purpose, as they were previously located.
  2. Check for “component-load.xml” files inside the root directories of these folders. If they exist, make sure to update the component-loader entries with your own applications. Example:
    <component-loader xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/component-loader.xsd">
    <load-component component-location="demosuite"/>
    </component-loader>
  3. Check for files called “build.xml” inside the same directories. These contain instructions to compile the application with the rest. Make sure your own applications are listed inside
    <filelist id="specialpurpose-builds" dir="specialpurpose"
     files="
     assetmaint/build.xml,
     example/build.xml,
     demosuite/build.xml
     "/>
  4. Check your build.xml inside each of your own component for missing locations (just go over each line and validate that the referenced file/component still exists)

Data Reseed

The SCIPIO ERP seed data differs from OFBiz. In particular the demo data & theme data have changed. As the new themes are not compatible and, this can potentially break your backoffice. Reseeding (reimporting) the data files will solve this issue.There are two ways to do this:

  1. Data reseed
    The recommended way is to reimport the theme-data manually:

    1. Run the service to reload the theme: ReloadVisualThemeResources
    2. Reset your own Visual Theme, select the BASE theme for now
    3. Make sure that the default theme is set to BASE in /framework/common/config/general.properties
      VISUAL_THEME=BASE
      
  2. Data reset
    If you are running a demo or developer installation that does not contain production specific data, a reseed may be a valid option:

    ant clean-all load-demo
    

    Caution: Running the command will remove all data from the database and load our own seed data. You will lose all of your runtime data, if not stored in your seed configuration.

Theme migration

The original OFBiz themes are not bundled with the SCIPIO ERP source and we moved theme-specific files (images, icons, Javascript, CSS etc.) inside our new themes. The previous ones located at /framework/images/webapp/images were largely removed unless they are some very generic javascript files that are used by all applications, but not necessarily themes. This will most likely break the OFBiz themes, but should not necessarily affect your own. SCIPIO ERP also relies on the SCIPIO ERP templating kit for many of the screens, which may require you to create a new class-definition file, unless you want to fall-back to foundation CSS based classes.  Recommended steps:

  1. Copy the old themes over to /themes
  2. For each theme, validate and update missing references inside of /data/*ThemeData.xml
  3. Copy missing files
  4. Reseed
  5. (optional) Load and check for broken screens. It is possible that you will have to enrich your theme by a custom class definition or html override in order to force our toolkit to generate compatible HTML for your screens. This sounds more complicated than it actually is. In order to create these you will have to:
    1. Update your theme seed data and load your new overrides:
        <VisualThemeResource visualThemeId="YOUR_THEME" resourceTypeEnumId="VT_STL_VAR_LOC" resourceValue="component://your-location/includes/themeStyles.groovy" sequenceId="01"/>
       <VisualThemeResource visualThemeId="YOUR_THEME" resourceTypeEnumId="VT_STL_TMPLT_LOC" resourceValue="component://your-theme/includes/themeTemplate.ftl" sequenceId="01"/>
       <VisualThemeResource visualThemeId="YOUR_THEME" resourceTypeEnumId="VT_MENU_MACRO_LIB" resourceValue="component://your-theme/includes/htmlMenuMacroLibrary.ftl" sequenceId="01"/>
    2. Copy over the three referenced files from our sample METRO theme
    3. Update CSS classes inside themeStyles.groovy
    4. Override the macros you need inside themeTemplate.ftl and for menus inside htmlMenuMacroLibrary

Screens & Widgets

All screens should automatically be compatible with our new templating engine, as long as you are using a compatible or already migrated theme. We do encourage to update your ftl files to our new templating kit, as it will further steamline the development and also prevent broken screens.