簡介

本教學課程示範如何實作 Groovy 命令檔來使用資料方格和資料方格重複程式。您可以使用條件邏輯來設定資料方格中的背景顏色、實行效能基準設定,以及在方格中設定預設資料值。

背景

資料方格介面可讓您存取 POV/ 列 / 欄標頭儲存格,並提供各種重複程式以重複資料儲存格。

必要條件

Cloud EPM 實作教學課程可能需要您將快照匯入您的 Cloud EPM Enterprise Service 例項。您必須先要求另一個 Cloud EPM Enterprise Service 例項或移除目前的應用程式與業務程序,才能匯入教學課程快照。教學課程快照不會透過您現有的應用程式或業務程序進行匯入,也不會自動取代或還原您目前使用的應用程式或業務程序。

開始此教學課程之前,您必須:

  • 讓服務管理員可以存取 Cloud EPM Enterprise Service 例項。
  • 此快照上傳並匯入至您的 Planning 例項。

附註:

如果匯入快照時發生移轉錯誤,請重新執行移轉 (不包括 HSS-Shared Services 元件),以及「核心」元件中的「安全性與使用者偏好設定」人工因素。如需上傳與匯入快照的詳細資訊,請參考管理 Oracle Enterprise Performance Management Cloud 的移轉文件。

秘訣:

此教學課程所需的命令檔會連結為每個區段內的文字檔。

使用條件邏輯設定背景顏色

在此區段中,您實作 Groovy 指令碼,以將資料值為 #MISSING 之儲存格的背景顏色設為顏色 O (0x00BFFF)、資料值小於或等於 50000 的儲存格設為顏色 O (0xFF8C00),以及資料值超過 50000 的儲存格設為顏色 O (0x00FA9A)。

附註:

定義 Groovy 指令碼之後,該指令碼可以與任何表單建立關聯,與需要在每個表單內容中定義的「資料驗證」規則不同。
  1. 開啟 Calculation Manager,並在 Plan1 立方體中建立名為 Groovy Set Background Color 的規則。
  2. 描述
  3. 在「規則編輯器」中,將「設計工具」選項變更為編輯命令檔,然後將「命令檔類型」設為 Groovy 命令檔
  4. 描述
  5. 複製此命令檔並貼到編輯器中:
  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	
    }
    		

    描述 指令碼會在目前資料方格 operation.grid 中的每個資料儲存格上重複,由 dataCellIterator 傳回。

    隱含的 "it" 變數是指目前重複的項目。在此情況下, "it" 變數會參照 dataCellIterator 傳回的目前資料儲存格。

    秘訣:

    您也可以使用明確命名的變數,例如 "cell" ,如下列範例所示:
     operation.grid.dataCellIterator.each { cell ->
        if(cell.missing) {
          cell.bgColor = 0x00BFFF
        }
    }

    描述 對於目前的資料儲存格,命令檔會檢查是否有遺漏的值。

    附註:

    請注意,cell.data 會針對 #MISSING 或零的儲存格傳回 0 (零)。若要檢查 #MISSING 的儲存格而非零,您可以使用 cell.missing 特性。若要檢查零值 (而非 #MISSING) 的儲存格,可以使用 cell.data == 0 && !cell.missing 等條件。

    描述 如果為 TRUE,則命令檔會將儲存格的背景顏色設為 0x00BFFF (O)

    描述 指令碼會檢查資料值是否小於或等於 50000。

    描述 如果為 TRUE,則命令檔會將儲存格的背景顏色設為 0xFF8C00 (O)

    描述 如果儲存格的資料值超過 50000,則指令碼會將儲存格的背景顏色設為 0x00FA9A ( )

  7. 在工具列上,按一下 描述 (儲存) 以儲存命令檔,然後按一下 驗證和部署 (驗證並部署) 以驗證並部署命令檔。提示時,按一下確定。關閉 Calculation Manager。
  8. 成功部署
  9. 從「導覽器」中,開啟「表單管理程式」,然後選取 EmployeeDriverForm 表單。
  10. 畫面格式管理員
  11. 編輯表單並建立規則「Groovy 設定背景顏色」的關聯,以在載入後執行。儲存表單並開啟「表單管理程式」視窗。
  12. 建立規則的關聯
  13. 從「導覽器」或首頁,按一下資料。開啟 EmployeeDriverForm 表單,並確認指令碼已依照設計標示儲存格。
  14. 含有醒目提示儲存格的 EmployeeDriverForm 表單。

對指令碼進行分析和除錯

在本節中,您將瞭解如何使用 DataGrid 介面提供的迭代器、設定檔程式碼,以及將除錯敘述句新增至工作主控台。

  1. 開啟 Calculation Manager,並在 Plan1 立方體中建立名為 Groovy Iterator Performance 的規則。
  2. 描述
  3. 在「規則編輯器」中,將「設計工具」選項變更為編輯命令檔,然後將「命令檔類型」設為 Groovy 命令檔
  4. 描述
  5. 複製此命令檔並貼到編輯器中:
  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  
    

    描述 定義名為 benchmark() 的公用程式方法,該方法使用指定的 GridIterator 在其儲存格上重複,並列印儲存格所代表之所有維度的成員名稱清單及其資料。它也會列印重複程式花費的時間。

    描述 啟動計時器。

    描述 使用指定的 GridIterator 重複每個儲存格,並列印儲存格所代表之所有維度的成員名稱清單,以及其資料值與格式化值。$it.data 會傳回儲存格的數值,而 $it.formattedValue 會傳回使用者輸入的非數值,例如文字、智慧列示或日期。

    描述 將重複程式花費的時間列印到工作主控台。

    描述 將除錯訊息記錄到工作主控台。

    描述 呼叫含有重複程式的 benchmark() 方法,以重複目前資料方格中的每個儲存格。

    描述 使用迭代器呼叫 benchmark() 方法,以重複目前資料方格中編輯的儲存格。

    秘訣:

    此重複程式可與傳回布林值 (例如 locked、missing、valid、readOnly、validIntersection 等) 之 DataCell 物件上的任何特性搭配使用。

    描述 使用重複程式呼叫 benchmark() 方法,以重複目前資料方格中的「最低薪資」與「最低獎金」資料儲存格。

  7. 在工具列上,按一下 描述 (儲存) 以儲存命令檔,然後按一下 描述 (驗證並部署) 以驗證並部署命令檔。提示時,按一下確定。關閉 Calculation Manager。
  8. 從「導覽器」中,開啟「表單管理程式」,然後選取 EmployeeDriverForm 表單。
  9. 畫面格式管理員
  10. 編輯表單並建立規則「Groovy 迭代器效能」的關聯,以在儲存後執行。儲存表單並開啟「表單管理程式」視窗。
  11. 建立規則的關聯
  12. 從「導覽器」或首頁,按一下資料。開啟 EmployeeDriverForm 表單,並將等級 1 的最低薪資變更為 35000 ,並將等級 2 的最低獎金變更為 2000
  13. 含有輸入資料的 EmployeeDriverForm 表單。
  14. 儲存並關閉表單。瀏覽至「工作」主控台。
  15. 工作主控台的「最近活動」窗格。
  16. 按一下 Groovy Iterator 效能以顯示工作詳細資訊。按一下已完成狀態,即可查看 Groovy 指令碼所列印的日誌訊息。
  17. 日誌訊息。

    第一個重複程式會列印所有儲存格與資料值,第二個重複程式只會列印編輯的兩個儲存格,第三個重複程式則只會列印「最低薪資」與「最低獎金」欄的儲存格。

設定預設資料值

在本節中,您將瞭解如何使用 DataGridBuilder 介面來設定方格中的預設資料值。

  1. 開啟 Calculation Manager,並在 Plan1 立方體中建立名為 Groovy 重設等級資料的規則。
  2. 在「規則編輯器」中,將「設計工具」選項變更為編輯命令檔,然後將「命令檔類型」設為 Groovy 命令檔
  3. 複製此命令檔並貼到編輯器中:
    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. 描述 為 Plan 1 立方體建立立方體物件。

    描述 取得立方體的 DataGridBuilder;定義命令檔提供日期值的格式。

    附註:

    DataGridBuilder 也支援代表系統使用者儲存資料,方法是接受 ExecuteAsUser 作為第二個參數。將資料儲存為系統使用者,可在不套用目前使用者的安全性的情況下儲存資料。ExecuteAsUser 的有效值為 CURRENT_USER (預設值) 和 SYSTEM_USER,如下列範例所示:

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

    描述 透過新增具有資料值的 POV 成員、欄成員和列來建構資料方格。

    描述 為在下一個步驟中建立的 DataGrid 物件建立狀態物件。

    描述 使用 withCloseable 建構建立 DataGrid 物件。程式碼區塊完成執行時,建構會關閉 DataGrid 物件。這一點很重要,以確保規則在作業完成後,不會讓 DataGrid 物件在記憶體中開啟。

    描述 將產生器接受或拒絕的儲存格數目列印到工作主控台。任何唯讀儲存格都會被拒絕。

    描述 儲存資料方格。

    描述 方格會自動關閉。

  5. 在工具列上,按一下 描述 (儲存) 以儲存命令檔,然後按一下 描述 (驗證並部署) 以驗證並部署命令檔。提示時,按一下確定。關閉 Calculation Manager。
  6. 從「導覽器」中,開啟「表單管理程式」,並將「Groovy 重設等級資料」規則與 EmployeeDriverForm 表單建立關聯。儲存表單,然後關閉「表單管理程式」視窗。
    重設規則
  7. 在「規劃首頁」上,按一下資料。開啟 EmployeeDriverForm 表單,按一下動作,然後從下拉式功能表中選取商業規則。按一下 Groovy 重設成績資料以執行規則。
  8. 「動作」功能表

    重設規則
  9. 規則執行成功後,按一下「資訊」對話方塊中的確定,並確認方格資料已重設。
  10. 描述
  11. 關閉表單並瀏覽以開啟「工作」主控台。
  12. 描述
  13. 按一下 Groovy 重設成績資料以顯示職務詳細資料。按一下已完成狀態,即可查看接受和 (或) 拒絕的儲存格數目詳細資訊。
  14. 描述

下一個教學

使用 Groovy 驗證資料輸入值

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 Oracle University 以檢視可用的訓練資源。

如需產品文件,請造訪 Oracle Help Center