Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info
titleAdvanced settings - Step by Step

With Advanced settings for Custom Fields functionality you can:

1) create new data structures :

  • Add New Dimensions

  • Add new Properties

  • Add new Measures

  • Add new Hierarchies

  • Add new Data cubes (See Example HERE) 

2) define custom views and advanced sharing

  • Share measures between data cubes

  • Define Custom Drill Options

What is a considered as a "custom field" for flex.bi ?

  • field in Source system that is not imported in flex.bi by default
      For example :  Custom Field that is customer specific

  • transaction Register Field in Source system that is not imported in flex.bi by default,
     For example : Custom Module that is customer specific and is based on customer register

  • any addition data structure that exists in Source system that needs be used in flex.bi as dimension/ Measures or property etc.  in reports

Where to find Advanced settings ?
Advanced settings is a section in flex.bi applications that allow you to define custom data input for flex.bi data cubes, create new data cubes and adjust them. 

Image Modified

How to use this function? 

STEP 1

Define what you want to add in “Advanced settings” sectioning XXX language.
Custom field Code has to be described in blocks and organised based on type

STEP 2

Select in Cube Properties section — Custom Fields section what you want to import and how.

Watch a Demonstration here : 

Youtube macro
width300
aspectRatio4 / 3
urlhttps://www.youtube.com/watch?v=BOmOgM-TLV8
height200

...

Advanced setting key components & detailed instructions for Standard ERP

...

Advanced Settings examples

In the example below, a

...

combination of Price List, Price and Customer registers are used to create 3 level hierarchy.

Code Block
[PLVc.F_PriceList]
name = 'Price List Code'
dimension_name = 'Price'
cube_name = 'Hansaworld Invoices'
level_name = 'Price list'
rest_api_field = "PLCode"
key_field = true

[PLVc.F_PriceListName]
name = 'Price List Name'
dimension_name = 'Price'
cube_name = 'Hansaworld Invoices'
level_name = 'Price list'
rest_api_field = "PLCode"
name_field = true

[PLVc.F_PriceItemCode]
name = 'Price Item Code'
dimension_name = 'Price'
cube_name = 'Hansaworld Invoices'
level_name = 'Item'
rest_api_field = "ArtCode"
key_field = true

[PLVc.F_PriceItemName]
name = 'Price Item Name'
dimension_name = 'TransactionPrice'
cube_name = 'HorizonHansaworld FinancialsInvoices'
for_custom_dimension = 'Customer'
bind_field_level_name = 'customer_codeItem'
rest_api_field = 'D.K.KODS'

[TDdmKlBaseSar.customer_type_code]
default_custom"Comment"
name_field = true
name = 'Customer Type Code'
dimension_
[PLVc.F_PriceCustomerCode]
name = 'Price Customer Code'
leveldimension_name = 'Customer TypePrice'
cube_name = 'HorizonHansaworld FinancialsInvoices'
keylevel_fieldname = true'Customer'
rest_api_field = 'K.KTIPS'
dimension_in_separate_table"CustCode"
key_field = true

[TDdmKlBaseSarPLVc.customer_type_name]
default_custom_field = true
skip_request = true
rest_api_field = 'T.NOSAUK'F_PriceCustomerName]
name = 'Price Customer Type Name'
dimension_name = 'CustomerPrice'
levelcube_name = 'CustomerHansaworld TypeInvoices'
cubelevel_name = 'Horizon FinancialsCustomer'
namerest_api_field = true"CustCode"
dimension_in_separate_tablename_field = true
javascript_code = '''
cust_type = doc.K_KTIPS;
switch(cust_type) {
  case "0":
    doc.T_NOSAUK =  "Active";
    break;
  case "1":
    doc.T_NOSAUK =  "Potential";
    break; }
'''

[TDdmKlBaseSar.customer_code]
default_custom_field = true
name = 'Customer Code'
dimension_name = 'Customer'
cube_name = 'Horizon Financials
[IVVc.PriceListProperty]
name = "Price list Property"
cube_name = 'Hansaworld Invoices'
data_type = "string"
dimension_name = 'Invoice'
level_name = 'Invoice'
rest_api_field = 'PriceList'

[IVVc.RowPriceListCode]
name = 'Invoice Price List Code'
cube_name = 'Hansaworld Invoices'
for_custom_dimension = 'Price'
for_custom_dimension_level = 'Price list'
bind_field_name = 'F_PriceList'
rest_api_item_field = "K.KODS"
key_field = true
dimension_in_separate_table = true

[TDdmKlBaseSar.customer_name]
default_custom_field = true
name = 'Customer Name'
dimension_name = 'Customer'
cube_name = 'Horizon Financials'
name_field = true
rest_api_field = "K.NOSAUK"
dimension_in_separate_table = true

In the example below, a combination of Price List, Price and Customer registers are used to create 3 level hierarchy.

Code Block
[PLVc.F_PriceListrows"
javascript_code = '''
if (doc.rows) {
  doc.rows.forEach(function(row){
    if (doc.PriceList){
      row.RowPriceListCode = doc.PriceList;
    }
  })
}
'''

[IVVc.ArtCode]
name = 'Price List Code'
dimension_nameInvoice Item Code'
cube_name = 'Hansaworld Invoices'
for_custom_dimension = 'Price'
cube_namefor_custom_dimension_level = 'Hansaworld InvoicesItem'
levelbind_field_name = 'Price listF_PriceItemCode'
rest_api_item_field = "PLCoderows"
key_field
= true

[PLVcIVVc.F_PriceListNameRowCustCode]
name = 'PriceInvoice ListCustomer NameCode'
dimensioncube_name = 'Price'
cube_nameHansaworld Invoices'
for_custom_dimension = 'Price'
for_custom_dimension_level = 'Hansaworld InvoicesCustomer'
levelbind_field_name = 'Price listF_PriceCustomerCode'
rest_api_item_field = "PLCoderows"
name_field = true

[PLVc.F_PriceItemCode]
name = 'Price Item Code'
dimension_name = 'Price'
cube_name = 'Hansaworld Invoices'
level_name = 'Item'
rest_api_field = "ArtCode"
key_field = true

[PLVc.F_PriceItemName]
name = 'Price Item Name
javascript_code = '''
if (doc.rows) {
  doc.rows.forEach(function(row){
    if (doc.CustCode){
      row.RowCustCode = doc.CustCode;
    }
  })
}
'''

In the example below, account_code value will be populated from the credit_account_code for the credit transaction and from debit_account_code for debit transaction. 

Code Block
[FinancialDocLine.account_code]
skip_request = true
default_custom_field = true
name = 'Transaction Account Code'
dimension_name = 'PriceTransaction'
cube_name = 'HansaworldJumis InvoicesFinancials'
levelfor_custom_namedimension = 'ItemAccount'
restbind_apifield_fieldname = "Comment"
name_field'account_code'
credit_debit_dimension_column = true

[PLVcFinancialDocLine.Fcredit_account_PriceCustomerCodecode]
default_custom_field = true
name = 'PriceCredit CustomerAccount Code'
dimension_name = 'PriceTransaction'
cube_name = 'HansaworldJumis InvoicesFinancials'
levelrest_api_namefield = 'CustomerCreditAccount.AccountCode'
rest_api_field = "CustCode"
key
[FinancialDocLine.debit_account_code]
default_custom_field = true

[PLVc.F_PriceCustomerName] true
name = 'PriceDebit CustomerAccount NameCode'
dimension_name = 'PriceTransaction'
cube_name = 'HansaworldJumis InvoicesFinancials'
levelrest_api_namefield = 'CustomerDebetAccount.AccountCode'
restdimension_in_apiseparate_fieldtable = "CustCode"
name_field = true

[IVVc.PriceListProperty]
name = "Price list Property"
cube_name = 'Hansaworld Invoices'
data_type = "string"
dimension_name = 'Invoice'
level_name = 'Invoice'
rest_api_field = 'PriceList'

[IVVc.RowPriceListCode]
name = 'Invoice Price List true

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.

Code Block
[TdmGramatSL.customer_code]
default_custom_field = true
name = 'Transaction Customer Code'
cube_name = 'Hansaworld Invoices'
for_custom_dimension = 'PriceHorizon Financials'
for_custom_dimension_level = 'Price listCustomer'
bind_field_name = 'Fcustomer_PriceListcode'
rest_api_item_field = "rows" javascript_code = '''
if (doc.rows) {
  doc.rows.forEach(function(row){
    if (doc.PriceList){
      row.RowPriceListCode = doc.PriceList;
    }
  })
}
'''

[IVVc.ArtCode]
'D.K.KODS'

[TDdmKlBaseSar.customer_type_code]
default_custom_field = true
name = 'Customer Type Code'
dimension_name = 'Customer'
level_name = 'InvoiceCustomer Item CodeType'
cube_name = 'Hansaworld Invoices'
for_custom_dimension = 'Price'
for_custom_dimension_level = 'Item'
bind_field_name = 'F_PriceItemCode'Horizon Financials'
key_field = true
rest_api_field = 'K.KTIPS'

[TDdmKlBaseSar.customer_type_name]
default_custom_field = true
skip_request = true
rest_api_item_field = "rows"

[IVVc.RowCustCode]'T.NOSAUK'
name = 'InvoiceCustomer CustomerType CodeName'
cubedimension_name = 'Hansaworld Invoices'
for_custom_dimension = 'Price'
for_custom_dimension_levelCustomer'
level_name = 'Customer Type'
bindcube_field_name = 'F_PriceCustomerCodeHorizon Financials'
restname_api_item_field = "rows"true
javascript_code = '''
if (doc.rows) {
  doc.rows.forEach(function(row){
    if (doc.CustCode){
      row.RowCustCode cust_type = doc.CustCodeK_KTIPS;
switch(cust_type) {
  }case "0":
 }) } '''

In the example below, account_code value will be populated from the credit_account_code for the credit transaction and from debit_account_code for debit transaction. 

Code Block
[FinancialDocLine.account_code]
skip_request = true
default_custom_field = true
name = 'Transaction Account Code'
dimension_name = 'Transaction'
cube_name = 'Jumis Financials'
for_custom_dimension = 'Account'
bind_field_name = 'account_code'
credit_debit_dimension_column = true

[FinancialDocLine.credit_account doc.T_NOSAUK =  "Active";
    break;
  case "1":
    doc.T_NOSAUK =  "Potential";
    break; }
'''

[TDdmKlBaseSar.customer_code]
default_custom_field = true
name = 'Credit AccountCustomer Code'
dimension_name = 'TransactionCustomer'
cube_name = 'JumisHorizon Financials'
rest_api_field = 'CreditAccount.AccountCode'"K.KODS"
key_field = true

[FinancialDocLineTDdmKlBaseSar.debitcustomer_account_codename]
default_custom_field = true
name = 'DebitCustomer Account CodeName'
dimension_name = 'TransactionCustomer'
cube_name = 'JumisHorizon Financials'
rest_apiname_field = 'DebetAccount.AccountCode'
dimension_in_separate_tabletrue
rest_api_field = true"K.NOSAUK"