SAS: la sincronización de archivos Autoexec / aplicar formatos de bases de datos para la visualización

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

  •  23-08-2019
  •  | 
  •  

Pregunta

Aquí está el fondo. Siento que es tan larga:
Hago la programación SAS para 3 proyectos diferentes. Cada proyecto tiene su propia carpeta principal del proyecto. Cada carpeta principal del proyecto contiene una carpeta formatos (que contiene el catálogo de formatos), y luego varias otras carpetas, cada una de las cuales contiene programas y bases de datos. Hago la mayor parte de mi trabajo en el modo por lotes, por lo SAS por lo general no está abierto. Ocasionalmente, sin embargo, quiero abrir un conjunto de datos en SAS para mirar algo en particular. Cuando hago esto, SAS no sabe dónde buscar para el catálogo formato adecuado, debido a que los catálogos de formato no están en la misma carpeta que los conjuntos de datos. Por lo que actualmente utiliza un archivo autoexec.sas que especifica la opción nofmterr, para que mis datos se abrirán.

Me gusta mucho, aunque, para ser capaz de abrir los conjuntos de datos con el formato apropiado. Escribí un programa de AutoExec diferente que utiliza una ventana de diálogo que me pregunta qué proyecto que estoy trabajando y luego establece la opción fmtsearch en consecuencia. Esto funciona muy bien si quiero abrir primero SAS, a continuación, abra un conjunto de datos. Pero si SAS no está ya en marcha y funcionando, y trato de abrir un conjunto de datos haciendo doble clic sobre él, esto es lo que sucede: el archivo autoexec empieza a correr, a continuación, SAS intenta abrir el conjunto de datos antes de que el archivo autoexec ha terminado de ejecutarse. Así que si tengo nofmterr conjunto, el conjunto de datos se abrirá sin formatos, o si no tengo nofmterr conjunto, el conjunto de datos no se abre del todo.

Así que aquí está mi pregunta: ¿Hay una manera de conseguir SAS que esperar hasta que el archivo autoexec termina de ejecutarse antes de que intenta abrir el conjunto de datos? O, ¿hay otra solución al problema? (No quiero añadir los 3 archivos de formato de la opción fmtsearch, ya que los diferentes proyectos pueden tener diferentes formatos con el mismo nombre.)

¿Fue útil?

Solución

Dado que el conjunto de datos se abre sin ningún tipo de código que se ejecuta antes de la mano, esto se convierte en calma difícil. ¿Es posible abrir el conjunto de datos como un parámetro de un código. Me imagino algo como esto:

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

Su código "opends.sas" incluiría toda la información de formato relavent para su proyecto.

Incluso se podría escribir un script (bash o lote dependiendo del sistema operativo) que tiene todo lo anterior predefinido y que se podría llamar el script con el conjunto de datos como un parámetro.

Sé que esto parece complicado, pero es la primera solución que pudiera llegar a la base de su descripción.

- Se ha añadido 20090218

El script opends.sas debe tomar en una variable sysparm y dependiendo del sistema operativo, debe imprimir el conjunto de datos o ejecutar un comando para abrir el conjunto de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top