若要在 Financial Consolidation and Close 表單中輸入與顯示年度迄今 (YTD) 資料,您可以使用下列其中一個方法:
若要建立 Groovy 規則來直接向 FCCS_YTD 成員輸入資料:
在名為 "PreFormLoad" 的 Calculation Manager 中新增隨需規則。
將隨需規則的指令碼類型變更為「Groovy 指令碼」。
將以下程式碼新增至 "PreFormLoad" 規則:
operation.grid.dataCellIterator("FCCS_YTD").each { DataCell cell -> if (!cell.crossDimCell("FCCS_YTD_Input") && cell.isReadOnly())cell.forceEditable=true}儲存並驗證 "PreFormLoad" 規則。
為 "PreFormLoad" 規則提供預設的「執行時期提示」值,如下所示:
Consolidation: "Entity Input"
Currency: "Entity Currency"
Entity: "FCCS_Global Assumptions"
Period: "Jul"
Scenario: "Actual"
Years "FY19"
勾選 "PreFormLoad" 規則所有六個「執行時期」提示的已隱藏和作為置換值選項。
儲存、驗證和部署 "PreFormLoad" 規則。
在名為 "PreFormSave" 的 Calculation Manager 中新增隨需規則。
將隨需規則的指令碼類型變更為「Groovy 指令碼」。
將以下程式碼新增至 "PreFormSave" 規則:
def app = operation.application
Cube cube = operation.cube
Member ytdInputMember =
app.getDimension(DimensionType.VERSION).getMember("FCCS_YTD_Input")
Collection<DataCell> pendingYtdCells =
operation.grid.dataCellIterator("FCCS_YTD").findAll {DataCell ytd -> if (ytd.edited) {
def ytdInput = ytd.crossDimCell(ytdInputMember.name)
ytdInput?.formattedValue = ytd.formattedValue
ytd.setEdited(false)
return ytdInput == null
}
}
if (pendingYtdCells) {
DataGridBuilder builder = cube.dataGridBuilder("MM/DD/YYYY")
Set<String> allDimNames = set(app.getDimensions(cube)*.name)
List<String> rowDimNames = set((allDimNames -
operation.grid.pov*.dimName) - [ytdInputMember.dimension.name]) as List
builder.addPov(operation.grid.pov.findAll({it.dimName !=
ytdInputMember.dimension.name})*.uniqueMbrName as String[])
builder.addColumn(ytdInputMember.name)
pendingYtdCells.each {DataCell cell ->
builder.addRow(rowDimNames.collect
{cell.getMemberName(it, MemberNameType.UNIQUE_NAME)},
[cell.formattedValue])}
DataGridBuilder.Status status = new DataGridBuilder.Status()
builder.build(status).withCloseable {grid -> cube.saveGrid(grid)}
}
Set<String> set(Collection<String> names) {
Set<String> set = new TreeSet<>(String.CASE_INSENSITIVE_ORDER)
set.addAll(names)
return set
}
儲存並驗證 "PreFormSave" 規則。
為 "PreFormSave" 規則提供預設的「執行時期提示」值,如下所示:
Consolidation: "Entity Input"
Currency: "Entity Currency"
Entity: "FCCS_Global Assumptions"
Period: "Jul"
Scenario: "Actual"
Years "FY19"
勾選 "PreFormSave" 規則所有六個「執行時期」提示的已隱藏和作為置換值選項。
儲存、驗證和部署 "PreFormSave" 規則。
新增一個名為 "YTD_Test_1" 的表單並在各列上新增 "FCCS_Periodic" 和 "FCCS_YTD",如下所示:
YTD 表單範例

按一下商業規則頁籤,將 "Consol – Rule – PreFormSave" 和 "Consol – Rule – PreFormLoad" 移至右側。為 "Consol – Run – PreFormSave" 規則勾選儲存前執行,然後為 "Consol – Run – PreFormLoad" 規則勾選載入後執行。畫面應顯示如下:
商業規則範例

儲存並按一下完成。
注意:這些步驟會將 "Actual"/ "FY19" "Jul" "FCCS_Global Assumptions" 資料標記為「已變更」。確定整個程序單元已啟動並處於「已解除鎖定」狀態。這僅適用於此原型。真正的實作不會有這些限制。
開啟「YTD_Test_1 表單」,並將值新增至 FCCS_YTD,如下所示:
YTD 值範例

儲存表單。FCCS_Periodic 會被植入相應的「定期」值,如下所示:
植入的 YTD 表單範例
