SAS: synchronisation des fichiers AutoExec / application des formats de jeux de données pour la visualisation

StackOverflow https://stackoverflow.com/questions/541505

  •  23-08-2019
  •  | 
  •  

Question

Voici l'arrière-plan. Je suis désolé, il est si longtemps:
Je fais la programmation SAS pour 3 différents projets. Chaque projet a son propre dossier principal du projet. Chaque dossier principal du projet contient un dossier de formats (qui contient le catalogue de format), puis plusieurs autres dossiers, dont chacun contient des programmes et des ensembles de données. Je fais la plupart de mon travail en mode batch, donc SAS est généralement pas ouvert. De temps en temps, cependant, je veux ouvrir un ensemble de données SAS pour regarder quelque chose en particulier. Quand je fais cela, SAS ne sait pas où chercher le catalogue de format approprié, car les catalogues de format ne sont jamais dans le même dossier que les ensembles de données. Donc, j'utilise actuellement un fichier autoexec.sas qui spécifie l'option nofmterr, de sorte que mes jeux de données ouvriront.

Je voudrais vraiment, bien que, pour être en mesure d'ouvrir mes jeux de données avec la mise en forme appropriée. J'ai écrit un programme AutoExec différent qui utilise une fenêtre de dialogue qui me demande quel projet je travaille et définit ensuite l'option fmtsearch en conséquence. Cela fonctionne très bien si je veux d'abord ouvrir SAS, puis ouvrez un ensemble de données. Mais si SAS n'est pas déjà en marche, et je tente d'ouvrir un ensemble de données en double-cliquant dessus, voici ce qui se passe: le fichier AutoExec démarre en cours d'exécution, puis SAS tente d'ouvrir l'ensemble de données avant que le fichier AutoExec a fini. Donc, si je jeu de nofmterr, l'ensemble de données ouvrira sans formats, ou si je n'ai pas ensemble nofmterr, l'ensemble de données ne sera pas ouvert du tout.

Alors, voici ma question: Y at-il un moyen d'obtenir SAS d'attendre jusqu'à ce que le fichier se termine AutoExec en cours d'exécution avant qu'il tente d'ouvrir l'ensemble de données? Ou, est-il une autre façon de contourner le problème? (Je ne veux pas ajouter tous les 3 fichiers de format à l'option fmtsearch, parce que les différents projets peuvent avoir différents formats avec le même nom.)

Était-ce utile?

La solution

Étant donné que le jeu de données ouvre sans aucun code en cours d'exécution avant la main, cela devient difficile au calme. Est-il possible d'ouvrir l'ensemble de données en tant que paramètre d'un code. J'imagine quelque chose comme ceci:

commandline:/sas ./opends.sas -sysparm "/this/is/the/dataset/location_and_name"

Votre code « opends.sas » comprendrait toutes les informations de mise en forme relavent pour votre projet.

Vous pouvez même écrire un script (bash ou d'un lot selon le système d'exploitation) qui a tout ce qui précède et prédéfini, vous pouvez appeler le script avec l'ensemble de données en tant que paramètre.

Je sais que cela semble compliqué, mais il est la première solution que je pourrais trouver en fonction de votre description.

- Ajout 20090218

Le script opends.sas devrait prendre dans une variable sysparm et en fonction du système d'exploitation, il devrait imprimer l'ensemble de données ou une commande pour ouvrir l'ensemble de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top