Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
New Contributor
Beiträge: 4
SAS set option OBS=0 and will continue to check statements.

hallo zusammen,

 

ich benutze ein "runquit_macro", das ich im netz gefunden habe. das prüft nach jedem befehl ob ein fehler aufgetreten ist. wenn ja, sollen einige sicherungsdateien wieder zurückgespielt werden die in diesem macro stehen. am ende dann wird sas mit "%ABORT CANCEL" abgebrochen.

 

mein problem ist, das nun nach einem fehler alle folgenden data-anweisungen nicht mehr umgesetzt werden,

es kommen immer die meldungen:

 

- NOTE: The data set PK2.KIGGS2_P has 0 observations and 5309 variables.
- WARNING: Datei PK2.KIGGS2_P wurde nicht ersetzt. Grund: da dieser Schritt angehalten wurde.

 

- NOTE: The data set EK2.KIGGS2_E_QS has 0 observations and 783 variables.
- WARNING: Datei EK2.KIGGS2_E_QS wurde nicht ersetzt. Grund: da dieser Schritt angehalten wurde.

- usw.

 

im anhang habe ich das macro und das log-file angehangen, dort habe ich auch alles beschriftet.

 

frage:

wie kann ich SAS sagen, das es wieder "normal" reagieren soll und das es meine data-befehle weiter abarbeitet?

 

ich hoffe, das ich mein anliegen einigermassen erklären konnte.

 

gruss und vielen dank für eure hilfe.

gairon

Anhang
Frequent Contributor
Beiträge: 126
Betreff: SAS set option OBS=0 and will continue to check statements.
[ Bearbeitet ]

Hallo @Gairon,

 

meines Wissens gibt es bei SAS keine Möglichkeit mit einem try-catch zu arbeiten. Man kann sich da sicherlich Varianten überlegen, wie man mit gewissen Fehlern umgeht, allerdings würde ich hier anraten stattdessen vor einer weiteren Verarbeitung zu Prüfen, ob alle notwendigen Bedingungen erfüllt sind (Dateien/Tabellen/Variablen/Obs vorhanden, etc.).

 

Zu Deinem Problem habe ich hier eine Anfrage in der englischen Community gefunden. Eventuell kannst Du den Syntaxcheck ausschalten oder nach einem entsprechenden Fehler die Option Obs wieder auf Max setzen:

https://communities.sas.com/t5/Base-SAS-Programming/Continue-after-errors/td-p/43386

http://www.lexjansen.com/pharmasug/2010/CC/CC05.pdf

 

Beste Grüße

Michael

Highlighted
New Contributor
Beiträge: 4
Betreff: SAS set option OBS=0 and will continue to check statements.

hallo michael.

 

vielen dank für deine antwort.

 

ich habe jetzt folgendes in mein "runquit macro" hinzugefügt:

 

options obs = max;

options replace;

options nosyntaxcheck;

 

damit wrden nun wieder die data-befehle ausgeführt.

 

gruss

gairon