Para inserir e exibir dados Acumulado no Ano (YTD) em um formulário do Financial Consolidation and Close, use um destes métodos:
Para criar regras do Groovy a fim de inserir dados diretamente no membro FCCS_YTD:
Adicione uma regra Sob Demanda no Calculation Manager denominada "PreFormLoad".
Altere o Tipo do Script da regra Sob Demanda para "Script do Groovy".
Adicione o código a seguir à regra "PreFormLoad":
operation.grid.dataCellIterator("FCCS_YTD").each { DataCell cell -> if (!cell.crossDimCell("FCCS_YTD_Input") && cell.isReadOnly())cell.forceEditable=true}Salve e valide a regra "PreFormLoad".
Forneça valores do Prompt de Tempo de Execução para a regra "PreFormLoad", como é mostrado a seguir:
Consolidação: "Entity Input"
Moeda: "Entity Currency"
Entidade: "FCCS_Global Assumptions"
Período: "Jul"
Cenário: "Actual"
Anos "FY19"
Marque as opções Está Oculto e Usar como Valor de Substituição para todos os seis prompts de Tempo de Execução da regra "PreFormLoad".
Salve, valide e implante a regra "PreFormLoad".
Adicione uma regra Sob Demanda no Calculation Manager denominada "PreFormSave".
Altere o Tipo do Script da regra Sob Demanda para "Script do Groovy".
Adicione o código a seguir à regra "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
}
Salve e valide a regra "PreFormSave".
Forneça valores do Prompt de Tempo de Execução para a regra "PreFormSave", como é mostrado a seguir:
Consolidação: "Entity Input"
Moeda: "Entity Currency"
Entidade: "FCCS_Global Assumptions"
Período: "Jul"
Cenário: "Actual"
Anos "FY19"
Marque as opções Está Oculto e Usar como Valor de Substituição para todos os seis prompts de Tempo de Execução da regra "PreFormSave".
Salve, valide e implante a regra "PreFormSave".
Adicione um formulário denominado "YTD_Test_1" com "FCCS_Periodic" e "FCCS_YTD" nas linhas, como é mostrado a seguir:
Exemplo de Formulário de Acumulado no Ano

Clique na guia Regras de Negócios e mova "Console – Regra – PreFormSave" e "Console – Regra – PreFormLoad" para o lado direito. Marque Executar Antes de Salvarpara a regra "Consol. – Regra – PreFormSave" e marque Executar Depois de Carregar para a regra "Consol. – Executar – PreFormLoad". Esta deverá ser a aparência da tela:
Exemplo de Regras de Negócios

Salve e clique em Concluir.
Observação: Estas etapas marcarão os dados de "Actual"/ "FY19" "Jul" "FCCS_Global Assumptions" como Alterados. Certifique-se de que a unidade de processo seja iniciada e esteja no estado Desbloqueado. Isso é aplicável somente para esse protótipo. A implementação real não terá essas restrições.
Abra "YTD_Test_1 form" e adicione valores a FCCS_YTD, como é mostrado a seguir:
Exemplo de Valores de Acumulado no Ano

Salve o formulário. FCCS_Periodic será preenchido com os valores Periódicos correspondentes, como é mostrado a seguir:
Exemplo de Formulário de Acumulado no Ano Preenchido
