Introdução

Este tutorial mostra como implementar scripts Groovy para trabalhar com grades de Dados e iteradores de grade de Dados. Use a lógica condicional para definir as cores de fundo em uma grade de dados, implementar benchmarking de desempenho e definir valores de dados padrão em uma grade.

Histórico

Uma interface de grade de dados fornece acesso às células de cabeçalho PDV/Linha/Coluna e fornece vários iteradores para iteração nas células de dados.

Pré-requisitos

Os Tutoriais Práticos do Cloud EPM podem exigir que você importe um instantâneo para sua instância do Cloud EPM Enterprise Service. Para poder importar um instantâneo de tutorial, você deve solicitar outra instância do Cloud EPM Enterprise Service ou remover seu aplicativo e processo de negócios atuais. O instantâneo do tutorial não será importado sobre seu aplicativo ou processo de negócios existente, nem substituirá ou restaurará automaticamente o aplicativo ou processo de negócios com o qual você está trabalhando no momento.

Antes de iniciar este tutorial, você deve:

  • Tenha acesso do Administrador de Serviço a uma instância do Cloud EPM Enterprise Service.
  • Faça upload e importe este snapshot para sua instância do Planning.

Observação:

Se você encontrar erros de migração importando o snapshot, execute novamente a migração excluindo o componente HSS-Shared Services, bem como os artefatos Segurança e Preferências do Usuário no componente Principal. Para obter mais informações sobre upload e importação de snapshots, consulte a documentação Administrando a Migração para o Oracle Enterprise Performance Management Cloud.

Dica:

Os scripts necessários para este tutorial são vinculados como arquivos de texto em cada seção.

Definindo cor de fundo usando lógica condicional

Nesta seção, você implementa um script Groovy para definir a cor de fundo para células com valor de dados #MISSING para colorir (0x00BFFF), células com valor de dados menor ou igual a 50000 para colorir (0xFF8C00) e células com valores de dados maiores que 50000 para colorir (0x00FA9A).

Observação:

Depois de definir um script Groovy, ele pode ser associado a qualquer formulário, ao contrário das regras de Validação de Dados, que precisam ser definidas no contexto de cada formulário.
  1. Abra o Calculation Manager e crie uma regra chamada Cor de Fundo do Conjunto Groovy no cubo Plan1.
  2. Descrição
  3. No Editor de Regras, altere a opção Designer para Editar Script e defina o Tipo de Script como Script Groovy.
  4. Descrição
  5. Copiar este script e colá-lo no editor:
  6. 						
    operation.grid.dataCellIterator.each { Description
      if(it.missing) { Description
         it.bgColor = 0x00BFFF Description
      } else if(it.data <= 50000) Description 
         it.bgColor = 0xFF8C00 Description
      else if(it.data > 50000) 
         it.bgColor = 0x00FA9A Description	
    }
    		

    Descrição O script itera sobre cada célula de dados na grade de dados atual, operation.grid, retornada por dataCellIterator.

    A variável "it" implícita refere-se ao item atual que está sendo iterado. Nesse caso, a variável "it" refere-se à célula de dados atual retornada por dataCellIterator.

    Dica:

    Você também pode usar uma variável explicitamente nomeada, como "cell", conforme mostrado no exemplo abaixo:
     operation.grid.dataCellIterator.each { cell ->
        if(cell.missing) {
          cell.bgColor = 0x00BFFF
        }
    }

    Descrição Para a célula de dados atual, o script verifica se há um valor ausente.

    Observação:

    Observe que cell.data retorna 0 (zero) para células que são #MISSING ou zero. Para verificar uma célula para #MISSING e não para zero, você pode usar a propriedade cell.missing. Para verificar um valor zero em uma célula e não em #MISSING, você pode usar uma condição como cell.data == 0 && !cell.missing.

    Descrição Se VERDADEIRO, o script define a cor de fundo da célula como 0x00BFFF( )

    Descrição O script verifica se o valor dos dados é menor ou igual a 50000.

    Descrição Se VERDADEIRO, o script define a cor de fundo da célula como 0xFF8C00 ( )

    Descrição Se o valor de dados da célula for maior que 50000, o script definirá a cor de fundo da célula como 0x00FA9A ( )

  7. Na barra de ferramentas, clique em Descrição (Salvar) para salvar o script e clique em Validar e Implantar (Validar e Implantar) para validar e implantar o script. Clique em OK quando solicitado. Fechar o Calculation Manager.
  8. Implantação Bem-Sucedida
  9. No Navegador, abra o Gerenciador de Formulários e selecione o formulário EmployeeDriverForm.
  10. Gerenciador de formulários
  11. Edite o formulário e associe a regra Cor de Fundo do Conjunto Groovy a ser executada Após o Carregamento. Salve o formulário e feche a janela Gerenciador de formulários.
  12. Associar a regra
  13. No Navegador ou na home page, clique em Dados. Abra o formulário EmployeeDriverForm e verifique se o script destaca as células conforme projetado.
  14. O formulário EmployeeDriverForm com células destacadas.

Criando perfil e depurando o script

Nesta seção, você aprende a usar iteradores fornecidos pela interface DataGrid, traçar o perfil do código e adicionar instruções de depuração à console de jobs.

  1. Abra o Calculation Manager e crie uma regra chamada Desempenho do Groovy Iterator no cubo Plan1 .
  2. Descrição
  3. No Editor de Regras, altere a opção Designer para Editar Script e defina o Tipo de Script como Script Groovy.
  4. Descrição
  5. Copiar este script e colá-lo no editor:
  6. def benchmark(GridIterator itr) { Description  
        def start = currentTimeMillis() Description   
        itr.each { println "$it.memberNames, cell data: $it.data, $it.formattedValue" } Description  
        def elapsed = currentTimeMillis() - start
        println "\nTime taken by iterator: $elapsed" Description  
    }
    
    println "Iterate over all data cells in this data grid...\n" Description  
    benchmark operation.grid.dataCellIterator() Description  
    
    println "Iterate over edited data cells in this data grid...\n"
    benchmark operation.grid.dataCellIterator({DataCell cell -> cell.edited}) Description  
    
    println "Iterate over Min Salary and Min Bonus data cells in this data grid...\n"
    benchmark operation.grid.dataCellIterator('Min Salary', 'Min Bonus') Description  
    

    Descrição Defina um método de utilitário chamado benchmark() que use o GridIterator especificado para iterar sobre suas células e imprima a lista de nomes de membros de todas as dimensões que a célula representa junto com seus dados. Ele também imprime o tempo gasto pelo iterador.

    Descrição Inicie um temporizador.

    Descrição Itere sobre cada célula usando o GridIterator especificado e imprima a lista de nomes de membros de todas as dimensões que a célula representa junto com seu valor de dados e valor formatado. $it.data retorna o valor numérico da célula e $it.formattedValue retorna valores não numéricos, como Texto, Smart List ou Data, conforme informado pelo usuário.

    Descrição Imprima o tempo gasto pelo iterador no console de trabalho.

    Descrição Registre uma mensagem de depuração no console de jobs.

    Descrição Chame o método benchmark() com um iterador para iterar sobre cada célula na grade de dados atual.

    Descrição Chame o método benchmark() com um iterador para iterar sobre as células editadas na grade de dados atual.

    Dica:

    Esse iterador pode ser usado com qualquer propriedade no objeto DataCell que retorne um booliano, como bloqueado, ausente, válido, readOnly, validIntersection e assim por diante.

    Descrição Chame o método benchmark() com um iterador para iterar sobre as células de dados Salário Mínimo e Bônus Mínimo na grade de dados atual.

  7. Na barra de ferramentas, clique emDescrição(Salvar) para salvar o script e, em seguida, clique em Descrição(Validar e Implantar) para validar e implantar o script. Clique em OK quando solicitado. Fechar o Calculation Manager.
  8. No Navegador, abra o Gerenciador de Formulários e selecione o formulário EmployeeDriverForm.
  9. Gerenciador de formulários
  10. Edite o formulário e associe a regra Desempenho do Iterador Groovy a ser executada Após Salvar. Salve o formulário e feche a janela Gerenciador de formulários.
  11. Associar a regra
  12. No Navegador ou na home page, clique em Dados. Abra o formulário EmployeeDriverForm e altere o Salário Mínimo do Grau 1 para 35000 e o Bônus Mínimo do Grau 2 para 2000.
  13. O formulário EmployeeDriverForm com dados inseridos.
  14. Salve e feche o form. Navegue até a console Jobs.
  15. O painel Atividade Recente do Console de Jobs.
  16. Clique em Desempenho do Groovy Iterator para exibir os detalhes do job. Clique no status Concluído para ver as mensagens de log impressas pelo script Groovy.
  17. As mensagens de log.

    O primeiro iterador imprime todas as células e os valores de dados, o segundo iterador imprime apenas as duas células que foram editadas e o terceiro iterador imprime apenas as células para as colunas Salário Mínimo e Bônus Mínimo.

Definindo valores de dados padrão

Nesta seção, você aprende a definir os valores de dados padrão na grade usando a interface DataGridBuilder.

  1. Abra o Calculation Manager e crie uma regra chamada Groovy - Redefinir Dados do Nível no cubo Plan1.
  2. No Editor de Regras, altere a opção Designer para Editar Script e defina o Tipo de Script como Script Groovy.
  3. Copiar este script e colá-lo no editor:
    Cube cube = operation.application.getCube("Plan1") Description 
    
    DataGridBuilder builder = cube.getDataGridBuilder("MM/DD/YYYY") Description 
    builder.addPov('FY16', 'Current', 'USD', 'BegBalance', 'BU Version_1', 'No Entity') Description  
    builder.addColumn('Min Salary', 'Max Salary', 'Min Bonus', 'Max Bonus')
    builder.addRow(['Grade 1'], [30000, 50000, '#missing', '#missing'])
    builder.addRow(['Grade 2'], [40000, 60000, '#missing', 5000])
    builder.addRow(['Grade 3'], [70000, 90000, '#missing', 10000])
    
    DataGridBuilder.Status status = new DataGridBuilder.Status() Description  
    builder.build(status).withCloseable { DataGrid grid -> Description  
        println("Total number of cells accepted: $status.numAcceptedCells") Description  
        println("Total number of cells rejected: $status.numRejectedCells")
        println("First 100 rejected cells: $status.cellsRejected")
        cube.saveGrid(grid) Description  
    } Description  
  4. Descrição Crie um objeto de cubo para o cubo do Plano 1.

    Descrição Obtenha um DataGridBuilder para o cubo; defina o formato no qual o script fornece os valores de data.

    Observação:

    O DataGridBuilder também suporta o salvamento de dados em nome de um usuário do sistema aceitando ExecuteAsUser como o segundo parâmetro. Salvar dados como usuário do sistema permite que os dados sejam salvos sem aplicar a segurança do usuário atual. Os valores válidos para ExecuteAsUser são CURRENT_USER (o padrão) e SYSTEM_USER, como no seguinte exemplo:

    DataGridBuider builder = cube.dataGridBuilder("MM/DD/YYYY", SYSTEM_USER)

    Descrição Construa uma grade de dados adicionando os membros PDV, os membros de coluna e as linhas com valores de dados.

    Descrição Crie um objeto de status para o objeto DataGrid criado na próxima etapa.

    Descrição Crie o objeto DataGrid com a construção withCloseable. A construção fecha o objeto DataGrid quando o bloco de código conclui a execução. Isso é importante para garantir que a regra não deixe o objeto DataGrid aberto na memória após a conclusão das operações.

    Descrição Imprime o número de células aceitas ou rejeitadas pelo construtor no console de jobs. Todas as células somente leitura são rejeitadas.

    Descrição Salve a grade de dados.

    Descrição A grade é fechada automaticamente.

  5. Na barra de ferramentas, clique em Descrição (Salvar) para salvar o script e clique em Descrição (Validar e Implantar) para validar e implantar o script. Clique em OK quando solicitado. Fechar o Calculation Manager.
  6. No Navegador, abra o Gerenciador de Formulários e associe a regra Redefinir Dados de Nível do Groovy ao formulário EmployeeDriverForm. Salve o formulário e feche a janela do Gerenciador de Formulários.
    Redefinir Regra
  7. Na Home page do Planning, clique em Dados. Abra o formulário EmployeeDriverForm, clique em Ações e selecione Regras de Negócios no menu drop-down. Clique em Redefinir Dados do Nível do Groovy para executar a regra.
  8. menus Ações

    redefinir Regra
  9. Após a execução bem-sucedida da regra, clique em OK na caixa de diálogo Informações e verifique se os dados da grade foram redefinidos.
  10. Descrição
  11. Feche o formulário e navegue para abrir a console Jobs.
  12. Descrição
  13. Clique em Redefinir Dados do Nível do Groovy para exibir os detalhes do job. Clique no status Concluído para ver os detalhes de quantas células foram aceitas e/ou rejeitadas.
  14. Descrição

Próximo Tutorial

Validando Valores de Entrada de Dados com Groovy

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse a Oracle University para ver os recursos de treinamento disponíveis.

Para obter a documentação do produto, visite o Oracle Help Center.