Publié le :
Administration EXTERNAL_CONFIGURATION

Modification de la source de données d'un rapport Visual Analytics

Attention : Ce code nécessite des droits administrateur.
Le script utilise `PROC HTTP` pour envoyer une requête `PUT` à l'API `reportTransforms/dataMappedReports` de SAS© Viya. Il vise à remplacer une source de données existante ('original') d'un rapport Visual Analytics par une nouvelle source ('replacement'). L'utilisateur doit spécifier l'URI du rapport, ainsi que les noms de la bibliothèque et de la table originales et de remplacement. Le script gère également la récupération de l'Etag nécessaire pour les opérations PUT via une macro externe chargée dynamiquement depuis GitHub.
Analyse des données

Type : EXTERNAL_CONFIGURATION


Le script ne traite pas directement de données SAS. Il configure les références aux sources de données (bibliothèque et table) qui seront utilisées par un rapport Visual Analytics existant. Ces sources de données sont définies par l'utilisateur et peuvent être des tables CAS, comme indiqué par le serveur 'cas-shared-default' dans la charge utile JSON.

1 Bloc de code
DATA STEP (macro call)
Explication :
Ce bloc initialise les variables globales `report` (l'URI du rapport Visual Analytics à modifier) et `url` (l'URL de base des services Viya, obtenue automatiquement). Il inclut ensuite et appelle la macro `%get_etag` depuis un dépôt GitHub externe, qui est utilisée pour récupérer l'Etag (Entity Tag) du rapport. L'Etag est nécessaire pour les requêtes HTTP PUT afin d'éviter les conflits de version lors de la mise à jour des ressources.
Copié !
1%let report = CHANGEME: REPORT URI HERE; * URI of the report. Not the name. Get this from Copy Link in VA;
2%let url = %sysfunc(getoption(SERVICESBASEURL)); * Automaticaly get the URL from the SAS server;
3 
4/***** Get etag *****/
5filename etagmac url "https://raw.githubusercontent.com/stu-code/sas/refs/heads/master/utility-macros/va_api_get_etag.sas";
6%include etagmac;
7%get_etag(&report);
2 Bloc de code
PROC HTTP
Explication :
Ce bloc utilise `PROC HTTP` pour envoyer une requête `PUT` à l'API `reportTransforms` de SAS Viya. La requête vise à mettre à jour la source de données du rapport spécifié par `&report`. Le corps de la requête est un payload JSON qui définit la source de données originale ('original') et la nouvelle source de données de remplacement ('replacement'), incluant le serveur (ici 'cas-shared-default'), la bibliothèque et la table. L'authentification est gérée par `oauth_bearer=sas_services`. L'Etag récupéré précédemment est inclus dans l'en-tête `If-Match` pour garantir l'intégrité de la mise à jour.
Copié !
1PROC HTTP
2 url = "&url/reportTransforms/dataMappedReports/&report"
3 method = PUT
4 out = resp
5 oauth_bearer=sas_services
6 in='
7 
8{
9 "dataSources": [
10 {
11 "purpose": "original",
12 "namePattern": "serverLibraryTable",
13 "server": "cas-shared-default",
14 "library": "***** CHANGEME: ORIGINAL LIBRARY *****",
15 "TABLE": "***** CHANGEME: ORIGINAL TABLE *****"
16 },
17 {
18 "purpose": "replacement",
19 "namePattern": "serverLibraryTable",
20 "server": "cas-shared-default",
21 "library": "***** CHANGEME: NEW LIBRARY *****",
22 "TABLE": "***** CHANGEME: NEW TABLE *****",
23 "replacementLabel": "***** CHANGEME: THE SAME NAME AS NEW TABLE *****"
24 }
25 ]
26}
27 
28';
29 headers
30 "If-Match"=%tslit(&etag)
31 "Content-Type"="application/json"
32 "Accept"="application/json"
33 ;
34RUN;
3 Bloc de code
DATA STEP
Explication :
Ce simple DATA step lit le contenu du fichier temporaire `resp` (qui contient la réponse JSON de la requête HTTP) et l'affiche dans le log SAS. Cela permet de vérifier le succès ou l'échec de l'opération de modification de la source de données du rapport Visual Analytics.
Copié !
1/* Print the result to the log */
2DATA _null_;
3 INFILE resp;
4 INPUT;
5 put _INFILE_;
6RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Name: va_legacy_api_change_datasource.sas, Purpose: Skeleton code to change the data source of a Visual Analytics report using the legacy reportTransforms API, Author: Stu Sztukowski