Veröffentlicht am :
Macro CREATION_INTERNE

Einen Pfad zur SAS Autocall-Liste hinzufügen (SASAUTOS)

Dieser Code ist auch verfügbar auf: Français English Español
Attention : Dieser Code erfordert Administratorrechte.
Dieses Makro, `_insertAutoCallPath`, nimmt einen Pfad (`autocallpath`) als Eingabe entgegen. Es überprüft, ob dieser Pfad bereits in der SASAUTOS-Systemoption definiert ist, um Duplikate zu vermeiden. Wird der Pfad nicht gefunden, ermittelt es, ob es sich um einen gültigen Fileref (Länge von 8 Zeichen oder weniger und bereits zugewiesen) oder einen Verzeichnispfad handelt. Anschließend fügt es den Pfad oder den Fileref mit `OPTIONS APPEND` zu SASAUTOS hinzu und stellt sicher, dass Verzeichnispfade korrekt in Anführungszeichen gesetzt werden.
Datenanalyse

Type : CREATION_INTERNE


Das Makro verarbeitet keine Datenbestände. Es interagiert mit der SAS-Umgebung, indem es eine Systemoption (`SASAUTOS`) liest und ändert über die Funktionen `%sysfunc(getoption(...))` und `OPTIONS APPEND`.

1 Codeblock
MACRO
Erklärung :
Dieser Block definiert das Makro `%_insertAutoCallPath`. Es deklariert lokale Makrovariablen und prüft dann, ob der Eingabeparameter `autocallpath` leer ist. Es verwendet `%sysfunc(getoption())`, um den aktuellen Wert von SASAUTOS abzurufen, und `%sysfunc(findw())`, um zu suchen, ob der Pfad bereits darin enthalten ist. Ist der Pfad nicht enthalten, prüft es mit `%sysfunc(fileref())`, ob der Parameter ein Fileref ist. Schließlich verwendet es `OPTIONS APPEND`, um entweder den Fileref oder den Pfad (in Anführungszeichen) zur SASAUTOS-Liste hinzuzufügen.
Kopiert!
1%macro _insertAutoCallPath(autocallpath);
2
3 %local
4 l_currentAutoCallPath
5 l_found
6 l_autoCallPath
7 l_paramIsFileRef
8 ;
9
10 %IF (%LENGTH(&autocallpath.)=0) %THEN %goto exit;
11 
12 %*-- %_issueTraceMessage (&g_currentLogger., Searching for Autocallpath &autocallpath); --*;
13 
14 %let l_currentAutoCallPath=%sysfunc (getoption (SASAUTOS));
15 %let l_found=%sysfunc (findw (&l_currentAutoCallPath., &autocallpath., %str(% %"%(%)), I));
16
17 %if (&l_found. > 0) %then %do;
18 %*-- %_issueDebugMessage (&g_currentLogger., Autocallpath &autocallpath already set.); --*;
19 %end;
20 %else %do;
21 %let l_paramIsFileRef = 0;
22 %if (%length(&autocallpath.) <= 8) %then %do;
23 %let l_paramIsFileRef = %eval(%sysfunc (fileref (&autocallpath.))=0);
24 %end;
25
26 %if (&l_paramIsFileRef.) %then %do;
27 options append=(SASAUTOS=(&autocallpath.));
28 %end;
29 %else %do;
30 options append=(SASAUTOS=("&autocallpath."));
31 %END;
32 %END;
33
34 %exit:
35%mend _insertAutoCallPath;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. This file is part of SASUnit, the Unit testing framework for SAS(R) programs.