This article gives the best practices for naming your objects in xDM when using the Application Builder or the Dashboard Builder. It helps to have a common naming convention for the team in charge of designing dashboards, models, and applications.
You will find 3 types of names and labels in xDM :
- Internal Names (Also called Names) are the unique name for each object type. They can only contain alphanumeric characters, underscores and must start with a letter.
- They should be meaningful, refer to the below table lists for typical samples.
- Do not try to shorten names excessively. They may become meaningless. For example, using CustAccMgr instead of CustomerHasAccountManager is not advised.
- Define team naming conventions that accelerate object type identification. For example, types and lists of values can be post-fixed with their type such as GeocodedAddressType, GenderLOV.
- Physical Names and Prefixes are used to create the objects in the database corresponding to the logical object. These can only contain uppercase characters and underscores.
- Labels and Descriptions are visible to the end-users. They should remain user-friendly and meaningful.
Note: Semarchy xDM tries as much as possible to derive labels from names (or vice versa) thanks to the autofill feature. To derive labels from names, xDM uses a Camel Case convention: typing the following name: EmployeeHasManager generates the label Employee Has Manager |
Naming conventions for Application Builder
Data model objects
Data model objects will be used by data architects only. They refer to all objects available in entities and attribute types.
Object | Convention | Example |
---|---|---|
Model | ModelName | StoresAndSuppliersMDM, ItemCatalog |
Entity | EntityNameSingular | Product, Item, Customer |
Attribute | AttributeName | IsProductAvailable |
Reference | FromEntityHasToEntity[Role] | EmployeeHasEmployeeManager |
Reference Role To | RoleNameSingular | Manager |
Reference Role From | RoleNamePlural | ManagedEmployees |
Complex Type | ComplexTypeName Type | AddressType |
User-Defined Type | TypeName Type | SimpleStringType |
List Of Values | LOVName LOV | CurrencyLOV, ProductTypesLOV |
User interface objects
User interface objects will be visible by data architects and end-users. They refer to all objects used for creating the UI.
Object | Convention | Example |
---|---|---|
Form | FormName Form | DefaultForm, ProductAuthoringForm, ProductReviewForm, MediaSimpleForm, ItemsMainAttributesForm |
Collection | CollectionName Collection | DefaultCollection, AllAttributesCollection |
Business View | BusinessViewName[Classification] | Products, ProductsByCategory, EmployeeHierarchy |
Transition Name | ReferenceRoleFrom | ManagedEmployees |
Stepper | AuthorEntityNamePlural | AuthorProducts, AuthorCustomers |
Stepper Collection Step | EntityNamePlural or ReferencingRoleName | Products, Customers, RelatedItems |
Stepper Form Step | EntityName | Product, Customer, Item |
Action Set | Purpose ActionSet | CustomerActionSet, ProductImportExportActionSet, ProductCreateEditActionSet |
Application | ApplicationName | ProductSearch, ProductDesign, ReferenceDataManagement |
Folder | FolderName | ProductsManagement |
Workflow | WorkflowName | CreateOrModifyCustomers, InitiateFullProductCreation, RequestProductLabelChange |
Workflow Task | TaskPurpose | CreateProductBasicInformation, AddTechnicalDetailsForProduct, VerifyProductCreationGuidelines |
Workflow Transition | TransitionAction | SendDataForApproval, RejectRequestAndAskForMoreInformation, AcceptAndSendToMarketing |
Other model objects
Object | Convention | Example |
---|---|---|
Publisher (Code) | CODE | MDM |
Publisher (Name) | PublisherName | MDM Application |
Job | JOBNAME_JOBTYPE | INITIAL_LOAD_FULL, CERTIFY_PRODUCT_SIMPLE |
Naming conventions for Dashboard Builder
Dashboard mostly derives names for labels. This enables you to create complex labels with special characters. The following naming convention gives some ideas on how names could look like if you don't want them to derive directly from labels.
Object | Convention | Example |
---|---|---|
Dashboard app | DashboardAppName | PulseProfiling, DataHub |
Datasource | DataSourceNameType | CustomerSourceData, ProductProfiling, ProductHub, Repository |
Query | QueryName | CustomerMatching, ProductDataQuality |
Chart | ChartNameType | CustomerMatchingBar, ProductDataQualityDonut |
Dashboard | DashboardName Dashboard | DataQualityDashboard, ProfilingDashboard |
Slicer | AttributeName Slicer | DateSlicer, CustomerStatusSlicer |