This is an example on how Project Transaction cube can be build based on SERP data.
This cube definition contains these sections:
Defining Project transaction dimensions
Binding project transaction to dimensions
Defining Project transaction measures
Note: Cube name is given a name when you import first Custom field
...
Info |
---|
Note: to see re- used standard Dimensions see sections “ for_standard_dimensions”, to see new dimension setup see sections “ for_custom_dimension” |
Code Block |
---|
#### Start of project transactions cube #### #Defining Project transaction dimensions #-------------------------- [TBIVVc.date] name = 'Project Transaction Date' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" rest_api_field = 'TransDate' data_type = 'date' for_standard_dimension = "Time" import_sort_date = true [TBIVVc.code] name = 'Project Transaction Code' for_custom_dimension = 'Project Transaction' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" rest_api_field = 'SerNr' key_field = true [TBIVVc.name] name = 'Project Transaction Name' for_custom_dimension = 'Project Transaction' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" rest_api_field = 'PRName' name_field = true [TBIVVc.item_type] name = 'Project Transaction Item Type' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" rest_api_field = 'ItemType' dimension = true javascript_code = ''' switch(doc.ItemType) { case "0": doc.ItemType = "Plain"; break; case "1": doc.ItemType = "Stocked"; break; case "3": doc.ItemType = "Service"; break; case "5": doc.ItemType = "Materials"; break; } ''' [TBIVVc.transaction_surce] name = 'Project Transaction Source' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" rest_api_field = 'oVc' dimension = true javascript_code = ''' switch(doc.oVc) { case "1": doc.oVc = "Timesheet"; break; case "2": doc.oVc = "Purchase inv."; break; case "3": doc.oVc = "Expense"; break; case "4": doc.oVc = "Delivery"; break; case "5": doc.oVc = "Activity"; break; case "6": doc.oVc = "Ret. goods"; break; case "7": doc.oVc = "Depreciation"; break; } ''' [TBIVVc.invoice_status] name = 'Project Transaction Invoice Statuss' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" skip_request = true dimension = true javascript_code = ''' if (doc.Invoice) { doc.invoice_status = 'Invoiced' } else { doc.invoice_status = 'Not Invoiced' } ''' [TBIVVc.objects] name = 'Objects' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" rest_api_field = 'Objects' for_extra_dimension_type = "Object types" #Binding project transaction to dimensions #-------------------------- [TBIVVc.invoice_code] name = 'Project Transaction Invoice Code' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Invoice' bind_field_name = 'code' rest_api_field = 'Invoice' [TBIVVc.invoice_item_position] name = 'Project Transaction Invoice Item Position' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Invoice' for_standard_dimension_level = 'Invoice Item' bind_field_name = 'position' skip_import = true javascript_code = ''' doc.invoice_item_position = "-1" ''' [TBIVVc.currency_code] name = 'Project Transaction Currency Code' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Currency' bind_field_name = 'currency' rest_api_field = 'CurncyCode' [TBIVVc.project_code] name = 'Project Transaction Project Code' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Project (Job)' for_standard_dimension_level = "Project" bind_field_name = 'code' rest_api_field = 'PRCode' [TBIVVc.project_item_position] name = 'Project Transaction Project Item Position' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Project (Job)' for_standard_dimension_level = 'Project Item' bind_field_name = 'position' skip_import = true javascript_code = ''' doc.project_item_position = "-1" ''' [TBIVVc.item_code] name = 'Project Transaction Item Code' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Item' bind_field_name = 'code' rest_api_field = 'ArtCode' [TBIVVc.person_code] name = 'Project Transaction Person Code' dimension_name = 'Project Transaction' cube_name = "HansaWorld Project Transactions" for_standard_dimension = 'Person' bind_field_name = 'code' rest_api_field = 'EMCode' #Defining Project transaction measures #-------------------------- [TBIVVc.quantity] name = "Project Transaction Quantity" cube_name = "HansaWorld Project Transactions" dimension_name = 'Project Transaction' measure = true cubes_for_measure_sharing = ["HansaWorld Invoices"] rest_api_field = "Qty" [TBIVVc.gross_profit] name = "Project Transaction Gross Profit" cube_name = "HansaWorld Project Transactions" dimension_name = 'Project Transaction' cubes_for_measure_sharing = ["HansaWorld Invoices"] measure = true rest_api_field = "GP" [TBIVVc.cost] name = "Project Transaction Cost" cube_name = "HansaWorld Project Transactions" dimension_name = 'Project Transaction' measure = true cubes_for_measure_sharing = ["HansaWorld Invoices"] skip_request = true javascript_code = ''' if (doc.CostPrice) { doc.cost = String(doc.CostPrice * doc.Qty) } ''' [TBIVVc.sum] name = "Project Transaction Amount" cube_name = "HansaWorld Project Transactions" dimension_name = 'Project Transaction' measure = true rest_api_field = "Sum" cubes_for_measure_sharing = ["HansaWorld Invoices"] javascript_code = ''' doc._source_id = doc.SerNr; ''' #### End of project transactions cube #### |