---
title: "Configurer l'actualisation automatique dans le cloud"
description: "Apprenez à configurer l’actualisation automatique d’un dashboard Power BI dans le cloud"
url: https://help.finalcad.com/fr/articles/84-configurer-l-actualisation-automatique-dans-le-cloud
collection: "Exemples d'usage dans Microsoft Power BI"
updated: 2026-09-30
language: fr
alternates: [en]
---

# Configurer l'actualisation automatique  dans le cloud

Apprenez à configurer l’actualisation automatique d’un dashboard Power BI dans le cloud

Configurer l'actualisation automatique d'un dashboard Power BI Online implique certaines contraintes techniques. Cela nécessite notamment un code adapté pour récupérer les données depuis Finalcad One.

Voici comment procéder, étape par étape.

## Sur Power BI Desktop

Pour rafraîchir automatiquement les données d’un dashboard dans Power BI Online, vous devez configurer des requêtes spécifiques dans Power BI Desktop. Certaines de ces requêtes pourront être réutilisées directement dans vos datasets, tandis que d'autres serviront de paramètres fixes dans le code.

## Paramètres

![](https://staticfiles.gleap.io/ghelparticle/XaSYelNP9Z4MIEPsOFypU2TIDIhJYCxumAWNmttokfEYv4H55IQxFDtOoVb5FuVb5tA2OBv56DA.png)

Créez les quatre paramètres suivants dans Power BI Desktop, nécessaires à la configuration des requêtes :

-   ApiUrl = [https://developer.finalcad.cloud/](https://developer.finalcad.cloud/)
    
-   MediaApiUrl = [https://medias.eu.finalcad.cloud](https://medias.eu.finalcad.cloud)
    
-   OrganizationId = l’identifiant de votre organization
    
-   ApiKey = Votre clé d’API
    

## Requêtes

Ces requêtes sont nécessaires pour l’actualisation automatique de chaque dataset. Pour éviter la duplication du code, vous pouvez les isoler dans des requêtes distinctes réutilisables par l'ensemble de vos datasets.

### GetDatasetUrl

```javascript
(datasetName) =>
    let
        RawData = Web.Contents(ApiUrl, [
            RelativePath = "api/organizations/" & OrganizationId & "/data/config/dataseturl",
            Query = [
                name = datasetName
            ],
            Headers=[#"X-API-Key"= ApiKey, Authorization="token " & ApiKey]
        ]),
        Url = Json.Document(RawData)[url]
    in
        Url
```

### GetAuthenticationParameters

```javascript
(datasetName) => 
    let
        GetAuthenticationParameterValue = (token) =>
        let
            split = Text.Split(token, "="),
            Value = split{1}
        in
            Value,

        datasetUrl = GetDatasetUrl(datasetName),
        queryParamPos = Text.PositionOf(datasetUrl, "?"),
        queryParams = Text.RemoveRange(datasetUrl, 0, queryParamPos + 1),
        splitParameters = Text.Split(queryParams, "&"),

        expires = GetAuthenticationParameterValue(splitParameters{0}),
        signature = GetAuthenticationParameterValue(splitParameters{1}),
        keyPairId = GetAuthenticationParameterValue(splitParameters{2}),

        AuthenticationParameters = [Expires = expires, Signature = signature, KeyPairId = keyPairId]
    in
        AuthenticationParameters
```

### GetDataset

```javascript
(relativePath, query) => 
    let
        RawData = Web.Contents(MediaApiUrl, [
            RelativePath = relativePath,
            Query = query
        ])
    in
        RawData
```

## Datasets

Une fois les paramètres et requêtes en place, le code de récupération d’un dataset devient plus simple et modulaire.

La seule variable à modifier pour chaque nouveau dataset est “dataset\_name “, défini dans les premières lignes du script, pour choisir le dataset voulu.

```javascript
let
    dataset_name = "Modules",

    // Étape 1: Récupérer les paramètres d'url présignée
    authenticationParameters = GetAuthenticationParameters(dataset_name),
    
    // Étape 2: Récupérer le fichier de dataset
    dataset = GetDataset("data/datasets/" & OrganizationId & "/" & dataset_name & "/" & dataset_name & ".parquet", [
        Expires = authenticationParameters[Expires],
        Signature = authenticationParameters[Signature],
        #"Key-Pair-Id" = authenticationParameters[KeyPairId]
    ]),
    datasetContent = Parquet.Document(Binary.Buffer(dataset)),
    
    // Étape 3 : Trier les lignes par la colonne "updated_at"
    SortedRows = Table.Sort(datasetContent, {{"updated_at", Order.Descending}}),
    
    // Étape 4 : Supprimer les doublons basés sur la colonne "module_id"
    DistinctRows = Table.Distinct(SortedRows, {"module_id"}),

    // Étape 5 : Ajouter une colonne "name" selon la logique de valeur préférée
    AddNameColumn = Table.AddColumn(DistinctRows, "name", each 
        let
            valuesList = [names], // Assuming "names" is the column holding the list of records
            preferredValue = 
                if valuesList = null or List.IsEmpty(valuesList) then null
                else
                    let
                        frRecord = List.Select(valuesList, each [Locale] = "fr" and [Value] <> null),
                        enRecord = if List.IsEmpty(frRecord) then List.Select(valuesList, each [Locale] = "en" and [Value] <> null) else {},
                        anyRecord = if List.IsEmpty(frRecord) and List.IsEmpty(enRecord) then List.Select(valuesList, each [Value] <> null) else {},
                        finalValue = 
                            if not List.IsEmpty(frRecord) then frRecord{0}[Value]
                            else if not List.IsEmpty(enRecord) then enRecord{0}[Value]
                            else if not List.IsEmpty(anyRecord) then anyRecord{0}[Value]
                            else null
                    in
                        finalValue
        in
            preferredValue
    )
in
    AddNameColumn
```

## Sur Power BI Online

Une fois votre dashboard publié sur Power BI Online, quelques étapes supplémentaires sont nécessaires pour finaliser la configuration.

Le code mis en place permet de contourner l’utilisation des passerelles de données. Celles-ci doivent toutefois être configurées en mode **anonyme**. Un avertissement restera affiché, mais l’authentification auprès de l’API Finalcad One sera assurée directement par le code et votre clé d’API.

![](https://staticfiles.gleap.io/ghelparticle/HwQp1J0bvD5oVe1bK3JZ7C5053xKq03Sf4mEB4sUc5k0mQHJeOYhvW6WnyDa9RLUbHSGFiKi5MC.png)

![](https://staticfiles.gleap.io/ghelparticle/TaqbE3IKkuGTkQhn92q0LGU2lhGEm9wa4BJcwIDcF5pgDMp97jNGepN8EO3gDI5v4Y4JqnplCAS.png)

Une fois les passerelles configurées, vous pouvez activer le rafraîchissement automatique du dashboard sans difficulté.
