Publié le :
Administration CREATION_INTERNE

Création de terme BDN via API REST

En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le script génère un fichier XML contenant la définition d'un nouveau terme BDN. Ce fichier est ensuite envoyé via une requête HTTP POST à l'API REST du SAS© Business Data Network à l'aide de `PROC HTTP`. Le script inclut également une macro pour vérifier le code de retour de la requête HTTP et s'assurer de son succès (code 201).
Analyse des données

Type : CREATION_INTERNE


Le corps de la requête HTTP (un fichier XML décrivant le terme BDN) est créé dynamiquement au sein du script SAS à l'aide d'un bloc `DATA _NULL_` et de l'instruction `PUT`.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc définit un fileref nommé `in` pointant vers un fichier XML. Le `DATA _NULL_` step est utilisé pour générer et écrire directement le contenu XML (la définition du terme BDN avec ses attributs) dans ce fichier. Ce fichier servira de corps à la requête HTTP POST.
Copié !
1filename in "&root.create_term.xml";
2DATA _null_;
3 file in;
4 put '<term parentId="1000922" name="Expected Loss" type="DG" description="Created from SAS code: /*Post a term to BDN*/"
5 requirements="none" status="Editing" importance="Very Low"
6 CreatedByUser="sasdemo" ModifiedbyUser="sasdemo"></term>' ;
7RUN ;
2 Bloc de code
PROC HTTP
Explication :
Cette procédure envoie une requête HTTP POST à l'API REST du SAS Business Data Network. Elle utilise les identifiants `sasdemo` et un mot de passe (`&pass`) pour l'authentification. Le contenu du fichier référencé par `in` (le XML créé précédemment) est envoyé comme corps de la requête, avec le type de contenu spécifié comme `application/xml;charset=UTF-8`.
Copié !
1PROC HTTP
2 url="http://sasclient.race.sas.com/SASBusinessDataNetwork/rest/terms" method="POST"
3 webusername="sasdemo"
4 webpassword="&pass"
5 in=in /*the file that will be posted*/
6 ct="application/xml;charset=UTF-8"; /*Important: explains if the content of the in file posted is a xml or json file*/
7RUN ;
3 Bloc de code
Macro
Explication :
Cette macro est conçue pour vérifier le code de statut renvoyé par la dernière exécution de `PROC HTTP`. Elle vérifie si la macro-variable `SYS_PROCHTTP_STATUS_CODE` existe et si sa valeur correspond au code attendu passé en paramètre. Si la condition n'est pas remplie, elle affiche un message d'erreur et arrête l'exécution du programme.
Copié !
1%macro prochttp_check_return(code);
2%IF %symexist(SYS_PROCHTTP_STATUS_CODE) ne 1 %THEN %DO;
3 %put ERROR: Expected &code., but a response was not received from
4 the HTTP Procedure;
5 %abort;
6 %END;
7%ELSE %DO;
8 %IF &SYS_PROCHTTP_STATUS_CODE. ne &code. %THEN %DO;
9 %put ERROR: Expected &code., but received &SYS_PROCHTTP_STATUS_CODE.
10 &SYS_PROCHTTP_STATUS_PHRASE.;
11 %abort;%END;
12%END;
13%mend;
4 Bloc de code
Macro
Explication :
Cette ligne appelle la macro `prochttp_check_return` en s'attendant à un code de statut HTTP `201` (Created), indiquant que la création du terme BDN a réussi. La commande `quit;` termine explicitement la `PROC HTTP`.
Copié !
1%prochttp_check_return(201);
2QUIT;
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.