Veröffentlicht am :

Kopieren von Mitgliedern zwischen Metadatengruppen

Dieser Code ist auch verfügbar auf: Español Français
Attention : Dieser Code erfordert Administratorrechte.
Das Skript konfiguriert eine Verbindung zu einem SAS©-Metadatenserver (Legacy SAS© 9). Es überprüft die Existenz der Quell- und Zielgruppen mithilfe der Funktion `metadata_resolve`. Anschließend ruft es die Anzahl der Mitglieder der Quellgruppe ab und fügt jedes Mitglied über `metadata_setassn` zur Zielgruppe hinzu. Dieser Code ist spezifisch für die Verwaltung von SAS© 9-Metadaten und gilt nicht direkt für den nativen Identitätsprovider von SAS© Viya.
Datenanalyse

Type : EXTERN


Die Daten werden direkt vom SAS-Metadatenserver (OMR), der in den Optionen konfiguriert ist, gelesen und geschrieben.

1 Codeblock
OPTIONS
Erklärung :
Konfiguration der Verbindungsparameter zum SAS-Metadatenserver (Host, Port, Anmeldeinformationen, Protokoll).
Kopiert!
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metaprotocol=bridge
7 metarepository=Foundation;
2 Codeblock
MACRO VARIABLES
Erklärung :
Definition der Namen von Quell- und Zielgruppen mittels Makrovariablen.
Kopiert!
1%let source_group_name='
2source group';
3%let dest_group_name='destination group';
4 
3 Codeblock
DATA STEP
Erklärung :
Data _null_ Schritt, der die Geschäftslogik enthält: Auflösung der Gruppen-URIs, Überprüfung ihrer Existenz, Zählung der Mitglieder und Schleife zum Hinzufügen von Mitgliedern der Quellgruppe zur Zielgruppe über die Funktionen `metadata_`.
Kopiert!
1DATA _null_;
2/* Initialize variables. */
3LENGTH type1 type2 id1 id2 src_uri dest_uri mem_uri mem_name $ 50;
4call missing (of _character_);
5 
6/* Define query. */
7src_obj="omsobj:IdentityGroup? @Name=&source_group_name";
8dest_obj="omsobj:IdentityGroup? @Name=&dest_group_name";
9 
10/* Test for the existence of the source group. */
11rc1=metadata_resolve(src_obj,type1,id1);
12src_uri=cats(type1,'\',id1);
13if rc1 < 1 then do; /* If unable to locate, notify and stop. */
14 put "ERROR: SOURCE group &source_group_name not found in Metadata.";
15 stop;
16end;
17 
18/* Test for the existence of the destination group. */
19rc2=metadata_resolve(dest_obj,type2,id2);
20dest_uri=cats(type2,'\',id2);
21 
22if rc2 < 1 then do; /* If unable to locate, notify and stop. */
23 put "ERROR: Destination group &dest_group_name not found in Metadata.";
24 stop;
25end;
26 
27/* Count the number of members in the source group. */
28mem_count=metadata_getnasn(src_uri,"MemberIdentities",1,mem_uri);
29put "NOTE: SOURCE group &source_group_name has " mem_count "members.";
30 
31/* For each member in the source group, */
32/* add the member to the destination group. */
33 
34do n=1 to mem_count;
35 rc=metadata_getnasn(src_uri,"MemberIdentities",n,mem_uri);
36 rc=metadata_getattr(mem_uri,"Name",mem_name);
37 put "NOTE: Adding " mem_name "to destination group &dest_group_name";
38 rc=metadata_setassn(dest_uri,"MemberIdentities","APPEND",mem_uri);
39 put mem_uri;
40END;
41RUN;
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 : Author: Greg Wootton Date: 29NOV2017