Introduction


# Introduction

You need to follow these naming conventions, if you want your pull request to be approved. We have to be consistent. These apply only on newly developed components, don't change it on the existing ones (applies to logical names), so that you don't break something.

# Logical Names

These are hidden from the end user and usually used in automatization as a reference to the data you want to get (Power Automate, server extension, client extensions).

# Display Names

These are usually user facing and should be grammatically right. It's the first thing customer sees, when he opens up TALXIS application.


# App Module

# Logical Name

Lower case

- {publisherPrefix}_{buildingName}{appModuleModifier}
- talxis_contractstart
1
2

# Display Name

Don't forget about translations and description!

# Product Solution

- {productPublisherDisplayName} {buildingName} {appModuleModifier}
- TALXIS Contract Start
1
2

# Customer's Solution

- {customersDisplayName} {buildingName} {appModuleModifier}
- GiTy Contract Core
1
2

# App Module Sitemap

# Logical Name

Lower case

- {publisherPrefix}_{buildingName}{appModuleModifier}
- talxis_contractstart
1
2

# Display Name

Don't forget about translations and description!

# Product Solution

- {productPublisherDisplayName} {buildingName} {appModuleModifier}
- TALXIS Contract Start
1
2

# Customer's Solution

- {customersDisplayName} {buildingName} {appModuleModifier}
- GiTy Contract Core
1
2

# Customizing the Sitemap

There're 3 types of groups, that can be added to sitemap:

  • Area
    • {areaname}area
    • customerservicearea
  • Group
    • {groupname}group
    • servicesgroup
  • SubArea
    • {subareaname}subarea
    • casessubarea

Name all of them lower case.


# Entity

# Logical Name

Lower case

- {publisherPrefix}_{entityName}
- talxis_contract
1
2

There can be entities, where we have something similar to namespace. But that's very rare and you probably won't get into that situation... I just want you to be aware of it.

 - talxis_configuration_virtualentity
1

# Display Name

Don't forget about translations and description! It's important to add plural names as well.

Entity Display Name


# Field

# Logical Name

Lower case

# Global Optionset Field

- {publisherPrefix}_{fieldName}typecode
- talxis_contracttypecode
1
2

# Local Optionset - Two Options Field

- {prefix_entity}_{prefix_fieldName}
- talxis_callbackregistration_talxis_asynchronousprocessing
- talxis_callbackregistration_ntg_newfield
1
2
3

# Local Optionset - State Code Field

- {prefix_entity}_statecode
- talxis_callbackregistration_statecode
1
2

# Local Optionset - Status Code Field

- {prefix_entity}_statuscode
- talxis_callbackregistration_statuscode
1
2

# Lookup Field

- {publisherPrefix}_{referencedEntityName}id
- talxis_accountid
1
2

# DateTime Field

- {publisherPrefix}_{fieldName}datetime
- talxis_submittedondatetime
1
2

# DateOnly Field

- {publisherPrefix}_{fieldName}date
- talxis_contractexpirationdate
1
2

# Display Name

Don't forget about translations and description! Field's display name is rendered in views. You can change it on form, but not in the views, so the display name of a field should always reflect that.


# OptionSet

# Logical Name

See Field for more info.

# Display Name

Don't forget about translations and description!

OptionSet Display Name

# Values

- N/A
  - {publisherOptionsetPrefix}998
- Other
  - {publisherOptionsetPrefix}999
1
2
3
4

# Form

# Logical Name

You're giving logical names to tabs, sections, subgrids, quick view forms. Use lower case.

- {tab/sectionName}tab/section
- informationtab
- informationsection
- {entity/subgrid}subgrid/quickview
- productsubgrid
- productquickview
1
2
3
4
5
6

If you're adding a cell with control, make sure that the control element always contains the logical name with prefix!

# Display Name


NOTE: Model forms are prefixed with the word "MODEL", such as "MODEL_Information".

# Customizing the Form

Don't forget about translations and description! Labels of tabs are capitalized and they always need to have emoji describing them:

- ℹ️ Information
1

Sections are always upper case without the underline:

- INFORMATION
1

# View

# Logical Name

Only thing you have to edit after unpacking your changes is to change aliases for linked entities (if there're any) to something more readable.

# Display Name

Don't forget about translations and description! Common sense + CapitalizeMyTitle (opens new window).

# Workflow/Flow

# Logical Name

File Name

- /Workflows/{prefix}_{workflowname}-{ID}.{ext}
- /Workflows/talxis_thisismynewworkflow-8669959F-F3D5-4E9E-93F4-96AAED40E942.xaml

OR

- /Workflows/{prefix}_{workflowname}.{ext}
- /Workflows/talxis_thisismynewworkflow.xaml
1
2
3
4
5
6
7

# Display Name

Lower case workflow unique name with prefix. For example:

- talxis_thisismynewworkflow
1

# Action

# Logical Name

Unique Name - does not have prefix!

- {actionname}
- thisismynewaction
1
2

File Name

- /Workflows/{prefix}_actionname}-{ID}.{ext}
- /Workflows/talxis_thisismynewaction-8669959F-F3D5-4E9E-93F4-96AAED40E942.xaml

OR

- /Workflows/{prefix}_actionname}.{ext}
- /Workflows/talxis_thisismynewaction.xaml
1
2
3
4
5
6
7

# Display Name

Lower case action unique name with prefix. For example:

- talxis_thisismynewaction
1

# Business Rule

# Logical Name

There are no logical names.

# Display Name

Don't forget about translations and description! Common sense + CapitalizeMyTitle (opens new window).


# Publisher

This is basically static thing, you shouldn't be in position where you have to create publisher too often. That doesn't mean you shouldn't understand it...

# Product Solution

Publisher

# Customer's Solution

  • NETWORG
    • This will automatically generate prefix for names (ntg) and optionsets (XXX XXX), consult this with someone more senior - ALWAYS

# Relationship

# Logical Name

It's harder with this one... We're setting all properties to be lower case, but we can't rewrite the systems ones. Attributes that should be lower case are these:

  • EntityRelationship Name
  • ReferencingEntityName
  • ReferencedEntityName
  • ReferencingAttributeName
  • NavigationPropertyName
  • FirstEntityName
  • SecondEntityName
  • IntersectEntityName

# OneToMany EntityRelationship Name

  • note: be sure to stay withing limit of 100 characters for 1:N relationships
  • {publisherPrefix}_{ReferencedEntityName}_{ReferencingEntityName}_{fieldName}id (fieldName is without prefix!)
  • talxis_contact_talxis_case_customerid

# ManyToMany EntityRelationship Name & IntersectEntityName

  • note: be sure to stay withing limit of 50 characters for N:N relationships
  • {publisherPrefix}_{FirstEntityName}_{SecondEntityName}
  • talxis_talxis_case_contact

# Display Name

There are no display names.


# Ribbon

# Logical Name

- {prefix}.{entitylogicalname}.{ribbonlocation}.{buttonname}.{componentname}
- talxis.account.main.dosomethingcool.button
1
2

Ribbon Logical Name

# Display Name

Don't forget about translations and description! Common sense + CapitalizeMyTitle (opens new window).


Rules