class GoodData::LCM2::ApplyCustomMaql
Applies custom MAQL DDL to all client projects so customized labels and fiscal calendars are not deleted. To ease up further automation, the MAQL DDL may be stored in separate field in lcm_release table as we will need custom Release brick action which will populate it.
Constants
- DESCRIPTION
- PARAMS
- RESULT_HEADER
Public Class Methods
call(params)
click to toggle source
# File lib/gooddata/lcm/actions/apply_custom_maql.rb, line 52 def call(params) return [] unless params.apply_maql_ddl.to_b client = params.gdc_gd_client domain_name = params.organization || params.domain fail "Either organisation or domain has to be specified in params" unless domain_name domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}") data_product = params.data_product segment_ids = params.segments.map(&:segment_id) domain_segments = domain.segments(:all, data_product).select do |ds| segment_ids.include?(ds.segment_id) end res = [] domain_segments.peach do |ds| maql = 'CREATE DATASET {dataset.quotes} VISUAL (TITLE "Stock Quotes Data");' unless maql.empty? ds.clients.peach do |dc| project = dc.project r = project.execute_maql(maql) item = { segment: ds.segment_id, maql: maql, status: r } res.push(item) end end end res end