Le script n'utilise pas de données au sens traditionnel (tables SAS). Il lit et modifie des objets (métadonnées) directement sur le serveur de métadonnées SAS. Les 'données' sources sont les définitions des contextes de serveur et des bibliothèques SAS stockées dans les métadonnées.
1 Bloc de code
OPTIONS
Explication : Ce bloc configure les paramètres de connexion au serveur de métadonnées SAS 9 (hôte, port, identifiants, repository). Ces options sont nécessaires pour que les fonctions de métadonnées puissent interagir avec le serveur. Ce type de connexion est obsolète dans SAS Viya 4.
Explication : Ce DATA STEP _NULL_ (ne crée pas de table) est le cœur du programme. Il utilise des fonctions de métadonnées SAS 9. D'abord, il utilise `metadata_resolve` pour trouver l'URI d'un contexte de serveur applicatif ('SASSTP'). Si le contexte est trouvé, il exécute une seconde requête pour trouver des bibliothèques SAS. Pour chaque bibliothèque trouvée, il utilise `metadata_setassn` pour lui associer le contexte de serveur. Des messages d'erreur sont émis et le programme s'arrête si le contexte ou les bibliothèques ne sont pas trouvés.
Copié !
data _null_;
/* Initialize variables. */
length type id app_uri lib_uri $ 50;
call missing(of _character_);
/* Define query for the Application Server Context */
/* to add to the libraries and search for it. */
appobj="omsobj:ServerContext? @Name='SASSTP'";
app_count=metadata_resolve(appobj,type,id);
/* If no context matches this query, stop the program with an error. */
if app_count <= 0 then do;
put "ERROR: No application server context found matching query " appobj;
stop;
end;
else do;
/* Extract the URI of the context if it exists. */
rc=metadata_getnobj(appobj,1,app_uri);
/* Define the query for the libraries to be updated and search for them. */
libobj="omsobj:SASLibrary? @code_sas_json/RFValid.json contains '.'";
lib_count=metadata_resolve(libobj,type,id);
/* If no libraries match the query, stop the program with an error. */
if lib_count <= 0 then do;
put "ERROR: No libraries found matching query " libobj;
stop;
end;
/* If libraries are found, for each one append */
/* the context to its list of associated contexts. */
else do n=1 to lib_count;
rc=metadata_getnobj(libobj,1,lib_uri);
rc=metadata_setassn(lib_uri,"DeployedComponents","Append",app_uri);
end;
end;
run;
1
DATA _null_;
2
3
/* Initialize variables. */
4
5
LENGTH type id app_uri lib_uri $ 50;
6
call missing(of _character_);
7
8
/* Define query for the Application Server Context */
9
/* to add to the libraries and search for it. */
10
11
appobj="omsobj:ServerContext? @Name='SASSTP'";
12
app_count=metadata_resolve(appobj,type,id);
13
14
/* If no context matches this query, stop the program with an error. */
15
16
IF app_count <= 0 THENDO;
17
put "ERROR: No application server context found matching query " appobj;
18
stop;
19
END;
20
ELSEDO;
21
22
/* Extract the URI of the context if it exists. */
23
24
rc=metadata_getnobj(appobj,1,app_uri);
25
26
/* Define the query for the libraries to be updated and search for them. */
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.