Verweis auf Makrobibliothek
Guten Tag,
ich habe eine, hoffentlich einfach zu lösende Aufgabe, die mir schon seit längerem Kopfzerbrechen macht.
Ich habe einen neuen Ordner angelegt, in den nun alle Makroprogramme (*.sas) abgespeichert werden sollen. Nun möchte ich in den normalen SAS-Programme gegebenenfalls auf diese Makrobibliothek zugreifen.
(Bemerkungen: Die Makros einzeln über %INCLUDE(name) einzulesen ist mir zu aufwändig! Ich möchte auch vermeiden, eine Art Autoexe.sas zu schreiben, in den ich die einzelnen Makros compiliere.)
Ich verwende aktuell folgende Variante, welche funktioniert und beim erstmaligen durchlaufen auch keine Fehler im Logfenster ausgibt.
TITLE; FOOTNOTE;
LIBNAME _ALL_ CLEAR;
FILENAME mymacros 'D:\SAS_Macros';
OPTIONS NODATE NOCENTER NONUMBER SASAUTOS = mymacros MAUTOSOURCE ;
Jedoch ab dem zweiten Durchlauf erhalte ich folgende Meldung:
ERROR: Mindestens eine mit Fileref MYMACROS verknüpfter Datei wird noch verwendet.
ERROR: Fehler in der FILENAME-Anweisung.
Woran liegt das? Beziehungsweise gibt es einen eleganteren Weg um auf die Makrobibliothek zuzugreifen?
Mit besten Grüßen
Chris86
- Anmelden oder Registrieren um Kommentare zu schreiben

...filename Variante ohne Autoexec
...versuch mal, nach dem Durchlauf das FILENAME zu de-assignen (filename mymacros;)...
Filename "de-Assignen"
Hallo dolic,
dies klappt leider nicht wie gewünscht. Es taucht beim "De-Assignen" die gleiche Fehlermeldung auf, wie in meinen obersten Eintrag.
Aber es ist nach Programmdurchlauf kein Makro mehr aktiv! Ich bin vollkommen ahnungslos, was da schiefläuft...
Denn ich kann aus welchen Grund auch immer den Makro-Katalog nicht löschen. Z.B. ist es aber möglich die Makros per Hand zu löschen, aber auch dann kann ich den Makro-Katalog nicht entfernen. Hat jemand schon mal ein solches Problem mit dieser Verknüpfung gehabt?!?
P.S: Eine Ergänzung noch dazu, die Funktionalität ist vollkommen da, nur dieser ERROR im Log "sieht nicht gut aus".
Hallo Chris, versuchs mal
Hallo Chris,
versuchs mal so:
Schöne Grüße
Jan
Makrobib mit SASAUTOS einbinden
Hallo.
Ich binde meine Makros mit Hilfe der Autoexec ein:
/* Macro library */
sasautos=(
"!sasroot\core\sasmacro"
"!sasext0\graph\sasmacro"
"!sasext0\stat\sasmacro"
maclib
)
mautosource
;
Damit das funktioniert, müssen alle Makros in jeweils eigenen Files (*.sas) gespeichert werden. Dabei muss der Dateiname dem Macronamen entsprechen. Funktioniert einwandfrei.
Viele Grüße
D. Dolic
options sasautos
Hallo zusammen,
ich setze in der Regel einfach die option sasautos (ohne filename), also etwa:
Das hat bislang immer einwandfrei funktioniert unter Windows und SAS 8.2 bzw. 9.1.3
Gruß, Roman Kolbe
Hallo Herr Kolbe, das nenn
Hallo Herr Kolbe,
das nenn ich mal einen Zufall. Just in dem Moment ihrer Antwort habe ich eine für mich passende Lösung gefunden, die ihrer sehr nahe kommt!
Somit kann ich auch bestätigen dass dies und SAS 9.2 läuft.