//Push data from Planning to Strategic Model Operations US //Create Planning grid Cube cube = operation.application.getCube("OEP_FS") DataGridDefinitionBuilder defBuilder = cube.dataGridDefinitionBuilder() defBuilder.addPov(['Years', 'Scenario', 'Currency', 'Version', 'Entity', 'Market', 'Plan Element', 'Product'], [ ['FY17'], ['OEP_Strategic Planning'], ['USD'], ['OEP_Working'], ['Operations US'], ['US Market'], ['OFS_Direct Input'], ['Smart Phone 6 in'] ]) defBuilder.addColumn(['Period'], [ ['YearTotal'] ]) defBuilder.addRow(['Account'], [ ['OFS_Product Revenue', 'OFS_Services Revenue','OFS_Support Revenue','OFS_Adjustments to Revenue','OFS_Total Cost Of Sales','OFS_Other Revenue'] ]) DataGridDefinition gridDefinition = defBuilder.build() DataGrid grid = cube.loadGrid(gridDefinition, true) double millionsScalingFactor = 0.000001 // Push to Strategic Model def data = [] grid.dataCellIterator().each{ data << it.data / millionsScalingFactor println("$it.memberNames, cell data: $it.data") } // Create the SM model grid operation.application.getStrategicModel('Operations US').withCloseable { smModel-> DataGridBuilder gridBuilder = smModel.dataGridBuilder() gridBuilder.addPov('Forecast') gridBuilder.addColumn('2017') println("Pushing " + data[0] + "to Product Sales") gridBuilder.addRow(['v1000:010'], [data[0]]) println("Pushing " + data[1] + "to Service Revenue") gridBuilder.addRow(['v1000:020'], [data[1]]) println("Pushing " + data[3] + "to Discounts & Returns") gridBuilder.addRow(['v1020'], [data[3]]) println("Pushing " + data[4] + "to Cost of Goods Sold") gridBuilder.addRow(['v1040'], [data[4]]) double supportRevenue = data[2] double otherRevenue = data[5] double totalSupportOtherRevenue = supportRevenue + otherRevenue println("Pushing " + totalSupportOtherRevenue + "to Other Revenues") gridBuilder.addRow(['v1000:030'], [totalSupportOtherRevenue]) DataGridBuilder.Status status = new DataGridBuilder.Status() grid = gridBuilder.build(status) println("Total number of cells accepted: $status.numAcceptedCells") println("Total number of cells rejected: $status.numRejectedCells") println("First 100 rejected cells: $status.cellsRejected") smModel.saveGrid(grid) }