Publié le :
Administration CREATION_INTERNE

Ajout de répertoires de déploiement dans les métadonnées SAS

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le programme se connecte au serveur de métadonnées SAS©, puis crée un jeu de données interne contenant les noms et chemins des répertoires à ajouter. Il vérifie l'existence du contexte d'application cible. Si le contexte est trouvé, le script parcourt le jeu de données et, pour chaque entrée, crée un nouvel objet de métadonnées de type 'Directory' associé à ce contexte, en spécifiant son chemin physique et d'autres attributs requis.
Analyse des données

Type : CREATION_INTERNE


Les informations sur les répertoires de déploiement (nom et chemin) sont créées directement dans le script via une étape DATA et une instruction 'datalines'.

1 Bloc de code
OPTIONS
Explication :
Ce bloc configure les options système pour établir une connexion au serveur de métadonnées SAS. Il spécifie l'hôte, le port, les identifiants de l'utilisateur, le référentiel (Foundation) et le protocole de connexion (BRIDGE).
Copié !
1/* Define connection to Metadata. */
2options
3 metaserver="meta.demo.sas.com"
4 metaport=8561
5 metauser="sasadm @saspw"
6 metapass="password"
7 metarepository=Foundation
8 metaprotocol=BRIDGE;
2 Bloc de code
DATA STEP Data
Explication :
Définit une variable macro 'appcontext' pour le nom du contexte. Ensuite, une étape DATA crée la table 'depdirs' en mémoire. Cette table contient deux colonnes, 'Name' et 'Path', qui sont peuplées via l'instruction 'datalines' avec la liste des répertoires de déploiement à créer.
Copié !
1/* Define the context to attach the deployment directories. */
2%let appcontext = SASApp;
3 
4/* Create a dataset with each deployment directory name and path. */
5DATA depdirs;
6 LENGTH Name Path $ 255;
7 INPUT Name Path;
8 DATALINES;
9 DeploymentDir1 /tmp/depdir1
10 DeploymentDir2 /tmp/depdir2
11 ;;
12RUN;
3 Bloc de code
DATA STEP
Explication :
Cette étape DATA _null_ (qui ne produit pas de table en sortie) gère la logique principale. Elle commence par résoudre l'URI du contexte d'application via 'metadata_resolve'. Si le contexte est trouvé, elle lit la table 'depdirs' ligne par ligne. Pour chaque ligne, elle utilise 'metadata_newobj' pour créer un nouvel objet 'Directory' et 'metadata_setattr' pour définir ses attributs, notamment le chemin ('DirectoryName').
Copié !
1DATA _null_;
2 
3/* Initialize variables. */
4LENGTH type id appuri diruri $ 255;
5call missing (of _character_);
6 
7/* Define query for context. */
8appobj = "omsobj:ServerContext?@Name='&appcontext'";
9 
10/* Check for the existence of the context. */
11rc=metadata_resolve(appobj,type,id);
12 
13/* If the context doesn't exist, throw an error and end the program. */
14IF rc ne 1 THEN DO;
15put "ERROR: A single context named &appcontext not found.";
16stop;
17END;
18 
19/* Read in the data set of deployment directories. */
20SET depdirs;
21 
22/* For each one, create the directory object as a child of the context */
23/* defined above. */
24rc=metadata_newobj("Directory",diruri,Name,"Foundation",appobj,"DataPackages");
25 
26/* Add the attribute defining the path. */
27rc=metadata_setattr(diruri,"DirectoryName",Path);
28 
29/* Add some required attributes. */
30rc=metadata_setattr(diruri,"UsageVersion","0");
31rc=metadata_setattr(diruri,"IsRelative","0");
32 
33RUN;
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 : Author: Greg Wootton Date: 14JUN2019


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« L'ajout programmatique de répertoires de déploiement est une technique d'administration avancée qui garantit l'homogénéité de vos contextes de serveur (comme SASApp). En utilisant les fonctions de métadonnées plutôt que l'interface graphique, vous éliminez les erreurs de saisie manuelle et permettez un déploiement industriel de vos structures de dossiers techniques. »