En el trabajo desarrollo bastantes proyectos SAS. En promedio unos tres por día. Estos proyectos son como el ser humano, todos muy diferentes por fuera, pero comparten un 98% del código. En un intento de optimizar la elaboración de estos proyectos desarrolle funcionalidades en macros, pero seguía teniendo el mismo problema, copiaba y pegaba las macros en cada proyecto.

Ejemplo:

filename funciones "C:\WorkSAS\LibSAS\macros" ;
%include funciones("Funcionalidad1.sas") ;
%include funciones("Funcionalidad2.sas") ;

Ejecutando las macros que se encuentran en los archivos importados:

%NombreMacro1 (ParametroUnico) ;
%NombreMacro2 (Parametro1, Parametro2, etc) ;

Programación. Tendencias. Programación estructurada (1/2)

Podrán decir que sigo haciendo la misma operación de copiar y pegar, solo que ahora de manera mas sofisticada, sin embargo creo que hay un pequeño beneficio. Todos los proyectos que realicé de esta manera, tendrá una referencia dinámica al código de la macro. En el momento en que esta macro tenga cambios para mejorar sus resultados y optimizar sus tiempos, todos los proyectos vinculados recibirán el beneficio.

 

Resultado:

Las funcionalidades genéricas, parametrizadas para obtener resultados específicos se encuentran almacenadas en archivos externos a los proyectos. Cuando alguna de estas funcionalidades sea requerida en un proyecto (nuevo o existente) bastara con importar el archivo adecuado. El mantenimiento a estos archivos afectara a todos los proyectos que los importaron.

 

Referencias:
http://support.sas.com/documentation/cdl/en/hostwin/63285/HTML/default/viewer.htm#refextfile.htm
http://www.sfu.ca/sasdoc/sashtml/lgref/z0214504.htm

 

¿Que te parecio el contenido?