IBM Support

MDM Workbench model editor validation

Technical Blog Post


Abstract

MDM Workbench model editor validation

Body

To avoid errors being produced in code generated from module models, the workbench validates the model contents. This post summarises the naming constraints that must be observed in the model to avoid validation errors. This is not intended to be a complete list of constraints but if there are any others that you think are worth being aware of up front, please leave a comment.

 

Entity

Name:

The entity name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 36 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

The entity name must not,

  • be any of the following reserved words-
    • Component
    • Entity

 

Database table name:

The database table name must,

  • be a maximum of 48 characters;
  • be a valid SQL identifier (see notes);

 

Entity attribute

Name:

The entity attribute name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 50 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

The entity attribute name must not,

  • be any of the following reserved words-
    • ObjectReferenceId
    • Control
    • Status
    • ObjectId
    • IdPk
    • History
    • LastUpdate
    • NullFields
  • end with any of the following reserved names-
    • LastUpdateTxId
    • LastUpdateUser
    • LastUpdateDate
    • HistActionCode
    • HistCreatedBy
    • HistCreateDate
    • HistEndDate
    • HistoryIdPK

 

Entity field name:

The entity field name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • start with a letter;
  • be a valid java identifier (see notes);

The entity field name must not,

  • be any of the following reserved words-
    • LastUpdateTxId
    • LastUpdateUser
    • LastUpdateDt
    • HistActionCode
    • HistCreatedBy
    • HistCreateDt
    • HistEndDt
    • HistoryIdPK
    • IdPk
    • OldLastUpdateDt

 

Database field name:

The database field name must,

  • be a maximum of 28 characters;
  • be a valid SQL identifier (see notes);

The database field name must not,

  • be any of the following reserved words-
    • last_update_dt
    • last_update_tx_id
    • last_update_user

 

Code Table

Name:

The code table name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 36 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

The entity name must not,

  • be any of the following reserved words-
    • Component
    • Entity

 

Database table name:

The database table name must;

  • be a maximum of 48 characters;
  • be a valid SQL identifier (see notes)

 

Code Table Attribute

Name:

The code table attribute name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 50 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

The code table attribute name must not,

  • be any of the following reserved words-
    • ObjectReferenceId
    • Control
    • Status
    • ObjectId
    • IdPk
    • History
    • LastUpdate
    • NullFields
  • end with any of the following reserved names-
    • LastUpdateTxId
    • LastUpdateUser
    • LastUpdateDate
    • HistActionCode
    • HistCreatedBy
    • HistCreateDate
    • HistEndDate
    • HistoryIdPK

 

Database field name:

The database field name must,

  • be a maximum of 28 characters;
  • be a valid SQL identifier (see notes);

The database field name must not,

  • be any of the following reserved words-
    • description
    • expiry_dt
    • lang_tp_cd
    • last_update_dt
    • last_update_tx_id
    • last_update_user

 

Transient Data Object (TDO)

Name:

The TDO name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 36 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

The TDO name must not,

  • be any of the following reserved words-
    • Component
    • Entity

 

Transient Data Object attribute

Name:

The TDO attribute name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 50 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

The TDO attribute name must not,

  • be any of the following reserved words-
    • ObjectReferenceId
    • Control
    • Status
    • ObjectId
    • IdPk
    • History
    • LastUpdate
    • NullFields
  • end with any of the following reserved names-
    • LastUpdateTxId
    • LastUpdateUser
    • LastUpdateDate
    • HistActionCode
    • HistCreatedBy
    • HistCreateDate
    • HistEndDate
    • HistoryIdPK

 

Transaction

Name:

The transaction name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 50 characters;
  • start with a letter;
  • be a valid java identifier (see notes);

 

Folder

Name:

The folder name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • start with a letter;
  • be a valid java identifier (see notes);

The folder name must not,

  • be any of the following reserved words-
    • Component
    • Entity

 

Application

Hub base name:

The hub base name must,

  • be composed of the letters a-z, numbers 0-9, the underscore character and the dollar symbol;
  • be a maximum of 36 characters;
  • be a valid java identifier (see notes);

The hub base name must not,

  • start with a number;
  • be any of the following reserved words-
    • TCRM
    • DWLCommon
    • DWLAdmin
    • CompositeAdminTransaction
    • CompositeTransaction

 

Notes

General:

  • Reserved name checks are not case sensitive

 

Java identifiers:

Details on valid Java identifiers can be found in sections 3.8 and 3.9 of the Java language specification however, due to the other naming constraints imposed in the model, the only extra restriction is the use of any of the following reserved words-

  • abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while, true, false, null

 

SQL identifiers:

The name must not,

  • start with a digit or the underscore character;
  • be any of the following reserved words-
    • ADD, ALL, ALTER, AND, ANY, AS, ASC, AUTOINCREMENT, AVA, BETWEEN, BINARY, BIT, BOOLEAN, BY, BYTE, CHAR, CHARACTER, COLUMN, CONSTRAINT, COUNT, COUNTER, CREATE, CURRENCY, DATABASE, DATE, DATETIME, DELETE, DESC, DISALLOW, DISTINCT, DISTINCTROW, DOUBLE, DROP, EXISTS, FROM, FLOAT, FLOAT4, FLOAT8, FOREIGN, GENERAL, GROUP, GUID, HAVING, INNER, INSERT, IGNORE, IMP, IN, INDEX, INT, INTEGER, INTEGER1, INTEGER2, INTEGER4, INTO, IS, JOIN, KEY, LEFT, LEVEL, LIKE, LOGICAL, LONG, LONGBINARY, LONGTEXT, MAX, MEMO, MIN, MOD, MONEY, NOT, NULL, NUMBER, NUMERIC, OLEOBJECT, PIVOT, ON, OPTION, ORDER, OUTER, OWNERACCESS, PARAMETERS, PERCENT, PRIMARY, REAL, REFERENCES, RIGHT, SELECT, SET, SHORT, SINGLE, SMALLINT, SOME, STDEV, STDEVP, STRING, SUM, TABLE, TABLEID, TEXT, TIME, TIMESTAMP, TOP, TRANSFORM, UNION, UNIQUE, UPDATE, VALUE, VALUES, VAR, VARBINARY, VARCHAR, VARP, WHERE, WITH, YEAR, YESNO

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSWSR9","label":"IBM InfoSphere Master Data Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

UID

ibm11142458