Development Guideline - Best Practices

 Think that you are working for the company "TEST".

Model

There are 3 models namely,

1.  TESTHelixCustomizations - Contains all Helix customizations


TETESTTCCustomizations - Contains all Corp customizations


TETESTTCIntegrations - Contains some integration customizations

Use primarily the TESTHelixCustomizations model for any new development unless if the objects belong to other models, the continue your changes in the same model (Do not extend artifacts from TESTCCustomizations & TESTCIntegrations into TESTHelixCustomizations model)

Projects

·         All developments will be tracked under DevOps types as Modification, Bug, Change request

·         TDD will be tracked as one or more Modifications depending on the no. of independent customizations

·         The project name should be defined as [MOD/BUG/CR] [DevOps ID] - [Short Description]

Example:

o    TDD – Return Order management [MOD 82910 – RET Order Mgmt]

o    BUG – RWA should not open for customer on credit hold [BUG 77856 – RWAForAccOnCreditHold]

Project Structure

Under the project we should follow the folder structure

All class should be inside a folder called “AxClass”

All tables should be inside a folder called “AxTables”

…..

 New Objects

All new application object elements should start with prefix TEST.

Format: [TEST]ObjectName

Configuration key for all newly created object: TEST

Examples:

·         New EDT – TESTTreadDepth

·         New Table – TESTWarrantyClaimTable

·         New Class – TESTUpdateClaimDataService

·         New Enum – TEST<EnumName>

Object Extensions

Application object extensions should have suffix [.TEST]

Format: ObjectName[.TEST]

Examples

·          Table extension – SalesLine.TEST

1. Any new filed added inside the table should start with “TEST” prefix

2. If any new method added, name should start with “TEST” prefix

·          Form extension – DeliveryTerms.TEST

1. Any control added externally, control name should start with “TEST” prefix

2. Any new method added, name should start with “TEST”

·          Entity extension – VendVendorV2Entity.TEST

·          Enum extension – SalesStatus.TEST

1. New element name should start with prefix “TEST”

Event Handler Class for Table

Event handler class for table should be named as [TEST] TableName[EventHandler]

Example: TESTSalesLineEventHandler

Extension class for Table/Class

The extension class for table/class should be name as [TEST]TableName[_Extension]

Example:

Table extension - TESTSalesLine_Extension

<span style="font-family: Calibri; font-size: 10.5pt;"><o:p>&nbsp;</o:p></span>
/// <summary>
 
/// Extension methods for the <c>SalesParmTable</c> table
 
/// </summary>
 
[ExtensionOf(tableStr(SalesParmTable))]
 
final class TESTSalesParmTable_Extension
 
{
 
}

Class extension – TESTSalesFormLetter_Extension

<span style="font-family: Calibri; font-size: 10.5pt;"><o:p>&nbsp;</o:p></span>
/// <summary>
 
/// Extension class of SalesFormLetter
 
/// </summary>
 
[ExtensionOf(classStr(SalesFormLetter))]
 
final class TESTSalesFormLetter_Extension
 
{
 
}

Coding guideline

1. No hard code string inside the code, always use label

2. Try to avoid all inline query instead of that AOT query

3. Always use multiline comment format instead of single line comment

<span style="font-family: Calibri; font-size: 10.5pt;"><o:p>&nbsp;</o:p></span>/*
comment here
*/

4. For lengthy and complex method try to use inline comment for better readability and understanding

5. For any conditional statement always use {} even if single line statement

<span style="font-family: Calibri; font-size: 10.5pt;"><o:p>&nbsp;</o:p></span>
If (true)
{
  A =b;
}
 
// Not like below
 If (true)
 A =b;

6. All variable name should have some busines name and follow camel casing naming convention.

<span style="font-family: Calibri; font-size: 10.5pt;"><o:p>&nbsp;</o:p></span>
 Correct: qbdsSalesOrder 
 Not: qbds1 

7. For any query or select statement please use the required field list instead of selecting all field.

8. If only one record is selecting please use firstonly.

9. For new tables, EDTS, View, forms use Microsoft define best practice along with [Company like Capgemini, Accenture, Cognizant, TCS, Infosys, Wipro] best practice

10. No commit on any reference table data inside modified field method, as user may be press esc button and undo the changes. But we left will commit data in reference table.

Instead of that use updated event handler and use original buffer and current buffer to compare changes.

Labels

New labels required should be created under TEST_en-US

We should use prefix “TEST” for label id

Comments

All modifications should have comments describing the DevOps Id for modifications/bug/change request and self-explanatory description.

Format: [Date (mm/dd/yyyy)] - [TCS] – [userid] - [BUG/MOD/CR] - [DevOps Id] - [Description]

Example:

<span style="font-family: Calibri; font-size: 10.5pt;"><o:p>&nbsp;</o:p></span>
//05/17/2021 - CompanyName[TEST]- exta-<userid> - MOD 82910-RET Order Mgmt - Copy program information from sales invoice to return order – Start
 <change code>
 //05/17/2021 – CompanyName[TEST]- exta-<userid> - MOD 82910-RET Order Mgmt - Copy program information from sales invoice to return order – End



Comments