Protótipo Usando Regras Groovy para Inserir Dados para o Membro FCCS_YTD

Em geral, a inserção e a exibição de dados de Acumulado no Ano (YTD) no formulário do Financial Consolidation and Close requer que dois membros Exibição sejam incluídos no design do formulário: YTD_Input e YTD. Essa exigência pode tornar o design do formulário complexo. O exemplo abaixo utiliza o script do Groovy para eliminar essa exigência e só inclui o membro Exibição de Dias do Acumulado do Ano no formulário. O script do Groovy gerencia os dados de entrada corretamente. A utilização desse método faz com que o design e a exibição do formulário sejam mais gerenciáveis.

Para criar regras do Groovy a fim de inserir dados diretamente no membro FCCS_YTD:

  1. Adicione uma regra Sob Demanda no Calculation Manager denominada "PreFormLoad".

  2. Altere o Tipo do Script da regra Sob Demanda para "Script do Groovy".

  3. 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}
  4. Salve e valide a regra "PreFormLoad".

  5. 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"

  6. 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".

  7. Salve, valide e implante a regra "PreFormLoad".

  8. Adicione uma regra Sob Demanda no Calculation Manager denominada "PreFormSave".

  9. Altere o Tipo do Script da regra Sob Demanda para "Script do Groovy".

  10. 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
    }
    
  11. Salve e valide a regra "PreFormSave".

  12. 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"

  13. 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".

  14. Salve, valide e implante a regra "PreFormSave".

  15. 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


    Exemplo de Formulário de Acumulado no Ano
  16. 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


    Exemplo de Regras de Negócios
  17. 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.

  18. Abra "YTD_Test_1 form" e adicione valores a FCCS_YTD, como é mostrado a seguir:

    Exemplo de Valores de Acumulado no Ano


    Exemplo de Valores de Acumulado no Ano
  19. 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


    Exemplo de formulário de Acumulado no Ano preenchido