Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Migration Wizard provides you an IMigratableobject, which allows you to extend your business objects to support the migration process for a new component. There is no need to create separate migration object for the new component.

...

To configure the business object for migration:

  1. Include the header file #include <library/generic/migratable.h>

  2. To configure the Select method, to load UI and the object:
    - Select method has the following parameters: Db, keys, contents and selectAll
    - In general, keys are used, if not selectAll is used.
     - For selectAll, complete the instance, name, long name and these optional fields: description, update date and update source.These values are used only for the available components on loading.
     - For selectAll= false, based on the keys supplied in the parameter, we need to get the data from the database and fill the contents.

  3. To configure Duplicate check:
     - For duplicate check, the Migration Manager will pass all the components data.
     - The business object needs to set the new instance and status, if any.

  4. To configure the Insert method:
     - Migration Manager will pass all the components data.
     - Before you insert, you need to update the dependent component instance.  For example, if the field is dependent on codes, then you need to update the code instance. You can use          the  etNewId() function to get the new instance. 
     - The business object has to update the instance to the data class after the insert.
     - Operation will fail if there is no instance or status is set as error.

  5. To configure the update method:
     - In the case of update, Migration Manager will pass all the components data.
     - Before you do update, you need to update the dependent component instance. For example, if the field is dependent on codes, then you need to update the code instance. You can use the GetNewId () function to get the new instance.
     - Instance needs to be updated to the data class after the update (optional). Otherwise, operation will be failed if status is set as error.

  6. On the component export, the EGL file will be generated. The content of the components will be in XML format.

Sample Code

IMigratable Class

Code Block
class IMigratable

{

public:

     virtual bool Select(EglRWDB* Db, set<RWCString>& keys, map<RWCString,CEglMigrationData>& contents, bool isSelectAll = true) = 0;

     virtual bool DuplicateCheck(EglRWDB* Db, set<CEglMigrationData*>& components) = 0;

     virtual bool Insert(EglRWDB* Db, set<CEglMigrationData*>& components) = 0;

     virtual bool Update(EglRWDB* Db, set<CEglMigrationData*>& components) = 0;

}


Register the Business Object

To add the Business Object entry in to the Migration Status table, use the following query format.

SQL

Code Block
INSERT INTO [PACE_MASTER].[dbo].[MIGRATION_SUBJECTS] ([BUSINESS_OBJECT], [NAME], [MIGRATION_CONFIG], [UPDATE_SOURCE], [UPDATE_DATE]) VALUES (10021, N'Codes', N'<Config></Config>', N'EGLSCRIPT', N'2016-01-22 14:58:51')

Be sure that the script is added to the EDM package.

Oracle

Code Block
INSERT INTO [PACE_MASTER][dbo][MIGRATION_SUBJECTS] ([BUSINESS_OBJECT], [NAME], [MIGRATION_CONFIG], [UPDATE_SOURCE], [UPDATE_DATE]) VALUES (10021, N'Codes', N'<Config></Config>', N'EGLSCRIPT', N'2016-01-22 14:58:51')


For reference implementation, you can refer the following business object: Users, Center Roles, Business Groups and KPI, which uses the above framework for the migration process.

...