Horizon custom field examples
Customer dimension
In the example below, a Customer dimension with two hierarchy levels Customer type and Customer is defined. This dimension contains both key and name fields for both levels and is linked to the measures (Transaction dimension) using customer_code key field. In this example, customer_name is defined both for Customer and Transaction dimension import. This allows for Customer dimension member creation from the Transaction record in case a matching customer code is not found in the Customer dimension.
[TdmGramatSL.customer_code]
default_custom_field = true
cube_name = 'Horizon Financials'
name = 'Transaction Customer Code'
rest_api_field = 'D.K.KODS'
for_custom_dimension = 'Customer'
bind_field_name = 'customer_code'
[TDdmKlBaseSar.customer_type_code]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Customer'
level_name = 'Customer Type'
name = 'Customer Type Code'
rest_api_field = 'K.KTIPS'
key_field = true
[TDdmKlBaseSar.customer_type_name]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Customer'
level_name = 'Customer Type'
name = 'Customer Type Name'
skip_request = true
name_field = true
javascript_code = '''
cust_type = doc.K_KTIPS;
switch(cust_type) {
case "0":
doc.customer_type_name = "Active";
break;
case "1":
doc.customer_type_name = "Potential";
break; }
'''
[TDdmKlBaseSar.customer_code]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Customer'
name = 'Customer Code'
rest_api_field = "K.KODS"
key_field = true
[TDdmKlBaseSar.customer_name]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Customer'
name = 'Customer Name'
rest_api_field = "K.NOSAUK"
name_field = true
[TDdmKlBaseSar.customer_pvn_reg_no]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Customer'
name = 'VAT Registration No'
rest_api_field = "K.PVN_REGNR"
property = true
Consolidation
In the example below custom fields are used to define an Account dimension with a Company hierarchy level at the bottom for consolidation.
[TdmAccEdList.account_type_code]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Account'
level_name = 'Account Type'
name = 'Account Type Code'
skip_request = true
key_field = true
javascript_code = '''
acc_code = doc.KON_KODS;
if (acc_code) {
expense_regex = /(^82.*|^7.*|^8810|^8891)/;
income_regex = /(^81.*|^6.*)/;
doc.account_type_code = '3';
if (acc_code.match(expense_regex)) {
doc.account_type_code = '2'
};
if (acc_code.match(income_regex)) {
doc.account_type_code = '1'
};
}
'''
[TdmAccEdList.account_type_name]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Account'
level_name = 'Account Type'
name = 'Account Type Name'
skip_request = true
name_field = true
javascript_code = '''
acc_type = doc.account_type_code;
switch(acc_type) {
case '2':
doc.account_type_name = 'Expense';
break;
case '1':
doc.account_type_name = 'Income';
break;
case '3':
doc.account_type_name = 'Other';
}
'''
[TdmAccEdList.account_code]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Account'
name = 'Account Code'
rest_api_field = 'KON.KODS'
key_field = true
[TdmAccEdList.account_name]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Account'
name = 'Account Name'
rest_api_field = 'KON.NOSAUK'
name_field = true
[TdmAccEdList.acc_company_code]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Account'
level_name = "Company"
name = 'Account company code'
rest_api_field = "source_company_code"
skip_request = true
key_field = true
[TdmAccEdList.acc_company_name]
default_custom_field = true
cube_name = 'Horizon Financials'
dimension_name = 'Account'
level_name = "Company"
name = 'Account company name'
rest_api_field = "source_company_name"
skip_request = true
name_field = true