Prototype utilisant des règles Groovy pour la saisie des données dans le membre FCCS_YTD

La saisie et l'affichage de données de cumul annuel dans un formulaire Financial Consolidation and Close exige généralement l'inclusion de deux membres Vue dans la conception de formulaire : YTD_Input et YTD. Du fait de cette exigence, la conception de formulaire peut devenir complexe. L'exemple ci-après a recours à un script Groovy pour supprimer cette exigence et inclure uniquement le membre Vue YTD dans le formulaire. Le script Groovy gère ensuite les données d'entrée correctement. Grâce à cette méthode, la conception et l'affichage de formulaire sont plus gérables.

Pour créer des règles Groovy permettant de saisir les données directement dans le membre FCCS_YTD, procédez comme suit :

  1. Ajoutez une règle à la demande nommée "PreFormLoad" dans Calculation Manager.

  2. Remplacez le type de script de la règle à la demande par Script Groovy.

  3. Ajoutez le code suivant à la règle "PreFormLoad" :

    operation.grid.dataCellIterator("FCCS_YTD").each { DataCell cell -> if (!cell.crossDimCell("FCCS_YTD_Input") && cell.isReadOnly())cell.forceEditable=true}
  4. Enregistrez et validez la règle "PreFormLoad".

  5. Fournissez des valeurs d'invite d'exécution par défaut pour la règle "PreFormLoad", comme indiqué ci-après :

    • Consolidation : "Entity Input"

    • Devise : "Entity Currency"

    • Entité : "FCCS_Global Assumptions"

    • Période : "Jul"

    • Scénario : "Actual"

    • Années : "FY19"

  6. Cochez les options Est masqué et Utiliser en tant que valeur de remplacement des six invites d'exécution de la règle "PreFormLoad".

  7. Enregistrez, validez et déployez la règle "PreFormLoad".

  8. Ajoutez une règle à la demande nommée "PreFormSave" dans Calculation Manager.

  9. Remplacez le type de script de la règle à la demande par Script Groovy.

  10. Ajoutez le code suivant à la règle "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. Enregistrez et validez la règle "PreFormSave".

  12. Fournissez des valeurs d'invite d'exécution par défaut pour la règle "PreFormSave", comme indiqué ci-après :

    • Consolidation : "Entity Input"

    • Devise : "Entity Currency"

    • Entité : "FCCS_Global Assumptions"

    • Période : "Jul"

    • Scénario : "Actual"

    • Années : "FY19"

  13. Cochez les options Est masqué et Utiliser en tant que valeur de remplacement des six invites d'exécution de la règle "PreFormSave".

  14. Enregistrez, validez et déployez la règle "PreFormSave".

  15. Ajoutez un formulaire nommé "YTD_Test_1" avec "FCCS_Periodic" et "FCCS_YTD" sur les lignes, comme indiqué ci-après :

    Exemple de formulaire de cumul annuel


    Exemple de formulaire de cumul annuel
  16. Cliquez sur l'onglet Règles métier et déplacez "Consolidation – Règle – PreFormSave" et "Consolidation – Règle – PreFormLoad" vers la droite. Cochez la case Exécuter avant d'enregistrer pour la règle "Consolidation – Règle – PreFormSave" et Exécuter après le chargement pour la règle "Consolidation – Règle – PreFormLoad". L'écran doit s'afficher comme suit :

    Exemples de règles métier


    Exemples de règles métier
  17. Enregistrez et cliquez sur Terminer.

    Remarque : ces étapes marquent les données "Actual", "FY19", "Jul" et "FCCS_Global Assumptions" comme modifiées. Vérifiez que l'unité de processus est démarrée et qu'elle présente l'état Déverrouillé. Cette remarque s'applique uniquement au prototype. L'implémentation réelle n'est pas soumise à ces restrictions.

  18. Ouvrez le formulaire "YTD_Test_1" et ajoutez des valeurs à FCCS_YTD comme indiqué ci-après :

    Exemples de valeurs de cumul annuel


    Exemples de valeurs de cumul annuel
  19. Enregistrez le formulaire. FCCS_Periodic est renseigné avec les valeurs périodiques correspondantes, comme indiqué ci-après :

    Exemple de formulaire de cumul annuel renseigné


    Exemple de formulaire de cumul annuel renseigné