support clients /

SAS® Enterprise Guide® et les connexions aux serveurs SAS

SAS Enterprise Guide est :

  • une alternative à l'installation de SAS sur votre PC, quand vous disposez de SAS sur un serveur distant,
  • un outil vous assistant dans la génération de code SAS et de rapports, si vous avez SAS installé sur votre PC.

Nous allons d'abord voir dans cet article comment les connexions aux serveurs SAS fonctionnent en versions 4.1 et 4.2. Il est en effet important de bien noter les différences existantes entre ces deux versions. Puis nous ferons un focus sur un point très fréquemment abordé lors de vos échanges avec le support client, à savoir comment pouvoir exécuter des commandes système sur le serveur, depuis SAS Enterprise Guide, sachant que cette fonctionnalité est désactivée par défaut.

Les serveurs et les référentiels

Avant de pouvoir commencer à travailler avec SAS Enterprise Guide, il est nécessaire de définir sur quel(s) serveur(s) SAS il se connectera. Ils peuvent être de deux types :

  • Le serveur local, qui correspond tout simplement à l’ouverture, en arrière-plan, d’une session SAS, exécutée sur le PC où SAS Enterprise Guide est démarré. Si plusieurs versions de SAS sont installées sur ce PC, il est possible d’indiquer à SAS  Enterprise Guide  laquelle utiliser, en exécutant la commande :
    « chemin\sas.exe » /regserver
    « Chemin » devant être remplacé par le chemin complet où l’exécutable SAS est localisé. Cela donne, par exemple, quand les répertoires proposés par défaut lors de l’installation de SAS sont conservés :
  • Pour SAS 9.1 :
    "C:\Program Files\SAS\SAS 9.1\sas.exe" –regserver 
  • Pour SAS 9.2 :
    "C:\Program Files\SAS\SASFoundation\9.2\sas.exe" –regserver 
  • Un serveur SAS distant : dans ce cas, une session SAS (workspace server) est initiée par un object spawner.

Les deux dernières versions d'Enterprise Guide, à savoir 4.1 et 4.2, ont des spécificités quant aux versions de SAS qu'elles peuvent utiliser, et au niveau des référentiels.

La version 4.1 peut se connecter :

  • à un serveur local, dont la version de SAS est : 8, 9.1 ou 9.2.
  • à un serveur distant :
    • soit via un référentiel SAS Enterprise Guide. Un object spawner doit au préalable être configuré sur le serveur, sur une version 8 ou 9.1. Ensuite, un serveur est défini dans l'explorateur de SAS Enterprise Guide, pointant sur le port du serveur sur lequel l'object spawner est à l'écoute. La définition des bibliothèques SAS se fait ensuite toujours dans l'explorateur de SAS Enterprise Guide.
    • soit via un référentiel de métadonnées. Une configuration complète doit être faite sur le serveur (serveur de métadonnées, object spawner, workspace server, stored process server, etc). Seule la version 9.1 est supportée. A la création du référentiel dans Enterprise Guide, le nom du serveur, le port du serveur de métadonnées, un identifiant/mot de passe (sur le serveur) et un référentiel dans les métadonnées doivent être fournis (référentiel du serveur de métadonnées). Toute l'administration se fait dans SAS Management Console (pour la définition des bibliothèques, des utilisateurs, etc.)

S'agissant de la version 4.2, la notion de référentiel Enterprise Guide a disparu. Au niveau des serveurs SAS, il ne peut s’agir que d’une version 9.2, qui doit :

  • soit être installée sur la même machine (serveur local), en choisissant le profil qui s'appelle .
    Si plusieurs versions de SAS sont installées sur le PC, il faut bien veiller à référencer la version 9.2 avec l'option regserver (cf plus haut).
  • soit sur un serveur distant, sachant qu’une configuration de notre plateforme doit être faite au préalable (serveur de métadonnées, object spawner, workspace server, etc) puisque la connexion est faite sur le port du serveur de métadonnées. Il est important de noter que la connexion directe à un object spawner n’est donc plus possible. Les informations pour créer un nouveau profil sont globalement les mêmes qu’en version 4.1, à savoir un nom de profil, le nom du serveur distant, le port du serveur de métadonnées et le compte à utiliser :

L'exécution de commandes système

Par défaut, il n’est pas possible d’exécuter des commandes système dans Enterprise Guide. Pour le rendre possible dans la version 4.2, il faut procéder de la manière suivante :

  • Dans le cas d'un serveur local
    Il faut éditer la clé suivante dans la base de registre Windows :
    HKEY_CLASSES_ROOT\CLSID\{440196D4-90F0-11D0-9F41-00A024BB830C}\LocalServer32
    et modifier sa valeur. Par défaut, il s'agit de (si les chemins d'installation proposés par défaut sont conservés) :
    C:\PROGRA~1\SAS\SASFOU~1\9.2\SAS.EXE
    -config "C:\PROGRA~1\SAS\SASFOU~1\9.2\sasv9.cfg" -objectserver -nologo -noterminal -noxcmd

    Il faut supprimer l'option –noxcmd.
  • Dans le cas d'un serveur de métadonnées
    Il faut ajouter l’option allowxcmd au niveau de l’object spawner. Voici les étapes détaillées en environnement Windows :
  • Aller dans le répertoire de configuration de l'object spawner.
    Par défaut, il s'agit de C:\SAS\Config\Lev1\ObjectSpawner
  • Faire une sauvegarde du fichier ObjectSpawner.bat
  • Désinstaller le service correspondant à l'object spawner.
    Par défaut, le nom de ce service est : SAS [Config-Lev1] Object Spawner.
    La commande à utiliser est :
    ObjectSpawner.bat remove
    (à exécuter depuis une fenêtre DOS, en étant positionné dans le répertoire où se trouve ce .bat)
  • Modifier le fichier ObjectSpawner.bat, au niveau de la ligne :
    set CMD_OPTIONS=
    et ajouter -allowxcmd juste après le signe =
    (cette commande permet d'autoriser l'exécution de commandes système) et enregistrer le fichier.
  • Réinstaller le service. La commande à utiliser est :
    ObjectSpawner.bat install 
  • Démarrer le service

Quelques liens intéressants 

Karine Chrillesen
Consultant Support Clients - SAS France