Die Daten werden dynamisch vom SAS Metadaten-Server extrahiert. Das Skript liest keine externen Datenquellen (Datei, Datenbank) und verwendet keine SASHELP-Tabellen. Es arbeitet direkt mit den von den SAS-Funktionen zurückgegebenen Metadaten-Objekten.
1 Codeblock
OPTIONS
Erklärung : Dieser Block konfiguriert die Verbindungsoptionen zum SAS Metadaten-Server. Er spezifiziert den Host, den Port, die Administrator-Anmeldeinformationen, das Repository und das Protokoll, die für die Interaktion mit den SAS Metadaten erforderlich sind.
Erklärung : Dieser DATA-Step _NULL_ (der keine SAS-Tabelle erstellt) führt die Hauptlogik aus. Er definiert alte und neue Domänen über Makrovariablen. Er verwendet `metadata_resolve`, um 'Login'-Objekte zu zählen, die einer Metadaten-Abfrage entsprechen. Werden Objekte gefunden, iteriert eine Schleife über jedes 'Login', um dessen URI mit `metadata_getnobj` und dessen 'UserID' mit `metadata_getattr` abzurufen. Anschließend wird die Zeichenfolge manipuliert, um die Domäne zu ersetzen, und das Metadaten-Objekt mit dem neuen Wert mittels `metadata_setattr` aktualisiert, was eine Verwaltungsoperation darstellt.
Kopiert!
data _null_;
/* Define the old and replacement domains. */
%let old_domain = domain;
%let new_domain = newdomain;
/* End edit. */
/* Define and initialize variables. */
length type id login_uri user stripped_user new_user $ 60;
call missing(type,id,login_uri,user);
/* This is the query to local the Logins with the old domain. */
obj="omsobj:Login? @code_sas_json/list_defaultauth_userids.json contains '&old_domain\'";
/* Count the number of logins found by the query above. */
count=metadata_resolve(obj,type,id);
/* If logins were found, proceed. */
if count > 0 then do n = 1 to count;
/* Get the Metadata URI for the nth login. */
login_rc=metadata_getnobj(obj,n,login_uri);
/* Pull the full user ID for the login. */
rc=metadata_getattr(login_uri,"UserID",user);
/* Strip the domain from the user ID. */
stripped_user=trim(scan(user,2,'\'));
/* Define a new variable with the new domain and the user ID. */
new_user=cats("&new_domain\",stripped_user);
/* Set this new variable as the UserID attribute. */
rc=metadata_setattr(login_uri,"UserID",new_user);
end;
/* If no logins are found with that domain, write that to the SAS log. */
else put "No users match query";
run;
1
DATA _null_;
2
/* Define the old and replacement domains. */
3
%let old_domain = domain;
4
%let new_domain = newdomain;
5
/* End edit. */
6
7
/* Define and initialize variables. */
8
LENGTH type id login_uri user stripped_user new_user $ 60;
9
call missing(type,id,login_uri,user);
10
11
/* This is the query to local the Logins with the old domain. */
/* Count the number of logins found by the query above. */
15
count=metadata_resolve(obj,type,id);
16
17
/* If logins were found, proceed. */
18
IF count > 0 THENDO n = 1 to count;
19
/* Get the Metadata URI for the nth login. */
20
login_rc=metadata_getnobj(obj,n,login_uri);
21
/* Pull the full user ID for the login. */
22
rc=metadata_getattr(login_uri,"UserID",user);
23
/* Strip the domain from the user ID. */
24
stripped_user=trim(scan(user,2,'\'));
25
/* Define a new variable with the new domain and the user ID. */
26
new_user=cats("&new_domain\",stripped_user);
27
/* Set this new variable as the UserID attribute. */
28
rc=metadata_setattr(login_uri,"UserID",new_user);
29
end;
30
/* If no logins are found with that domain, write that to the SAS log. */
31
else put "No users match query";
32
RUN;
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.