accessControl

checkOutObject

Beschreibung

Reserviert ein Objekt (und alle seine untergeordneten Elemente) zur Aktualisierung nur für die aktuelle Client-Sitzung. Verhindert, dass ein Objekt (und alle seine übergeordneten Elemente) von einer anderen Sitzung exklusiv ausgecheckt wird, wenn checkOutType=Shared ist. Diese Aktion ist Teil eines Transaktionsmodells zur Verwaltung von Zugriffskontrollen, das es ermöglicht, Änderungen in der Vorschau anzuzeigen, bevor sie übernommen werden.

accessControl.checkOutObject <result=results> <status=rc> / checkoutParent=TRUE | FALSE, checkOutType="EXCLUSIVE" | "SHARED", ObjectSelector={objType="ACTION" | "ACTIONSET" | "CASLIB" | "COLUMN" | "TABLE", objType-spezifische-parameter} ;
Einstellungen
ParameterBeschreibung
checkoutParentGibt an, ob das übergeordnete Objekt ausgecheckt werden soll, wenn das angegebene Objekt nicht existiert. Standard ist FALSE.
checkOutTypeGibt die Art des Auscheckens an. Standardmäßig ist ein Auschecken exklusiv ('EXCLUSIVE'), sodass nur die aktuelle Sitzung das angegebene Objekt (und seine untergeordneten Elemente) aktualisieren kann. Wenn Sie 'SHARED' angeben, sperrt das Auschecken das Objekt nicht, sondern verhindert lediglich, dass andere Sitzungen das Objekt (und seine übergeordneten Elemente) exklusiv sperren.
ObjectSelectorGibt den Typ des Objekts an, das Sie auschecken möchten. Der Wert, den Sie für den Parameter objType angeben, bestimmt die anderen anwendbaren Parameter.
objTypeEin Teil von ObjectSelector, der den Objekttyp angibt. Mögliche Werte sind 'ACTION', 'ACTIONSET', 'CASLIB', 'COLUMN', 'TABLE'.
actionWird verwendet, wenn objType='ACTION' ist. Gibt den Namen der Aktion an.
actionSetWird verwendet, wenn objType='ACTION' oder 'ACTIONSET' ist. Gibt den Namen des Aktionssatzes an.
caslibWird verwendet, wenn objType='CASLIB', 'TABLE' oder 'COLUMN' ist. Gibt den Namen der Caslib an.
tableWird verwendet, wenn objType='TABLE' oder 'COLUMN' ist. Gibt den Namen der Tabelle an.
columnWird verwendet, wenn objType='COLUMN' ist. Gibt den Namen der Spalte an.
Datenerstellung

Dieser Code erstellt eine Caslib namens 'mycas' und eine Tabelle 'cars' darin, um die Beispiele für 'checkOutObject' zu ermöglichen.

Kopiert!
1 
2PROC CAS;
3caslib mycas path='/tmp/mycas' dataSource={srcType='path'};
4 
5DATA mycas.cars;
6SET sashelp.cars;
7 
8RUN;
9 
10QUIT;
11 

Beispiele

Dieses Beispiel startet eine Transaktion und checkt die Tabelle 'mycas.cars' exklusiv aus. Dies sperrt die Tabelle für Änderungen durch andere Sitzungen, bis die Transaktion abgeschlossen ist.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3ACCESSCONTROL.startTransaction;
4 
5RUN;
6ACCESSCONTROL.checkOutObject / objectSelector={objType='TABLE', caslib='mycas', TABLE='cars'};
7 
8RUN;
9 
10QUIT;
11 
Ergebnis :
Eine Erfolgsmeldung, die anzeigt, dass die Tabelle 'cars' erfolgreich für eine exklusive Bearbeitung ausgecheckt wurde.

Dieses Beispiel zeigt, wie man eine 'SHARED' (gemeinsame) Sperre für eine gesamte Caslib setzt. Dies verhindert, dass andere Sitzungen eine exklusive Sperre für die Caslib 'mycas' oder eines ihrer untergeordneten Elemente (wie Tabellen) erhalten, während die aktuelle Sitzung ihre Änderungen vorbereitet.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3ACCESSCONTROL.startTransaction;
4 
5RUN;
6ACCESSCONTROL.checkOutObject / checkOutType='SHARED' objectSelector={objType='CASLIB', caslib='mycas'};
7 
8RUN;
9 
10QUIT;
11 
Ergebnis :
Eine Erfolgsmeldung, die anzeigt, dass die Caslib 'mycas' erfolgreich für eine gemeinsame Bearbeitung ausgecheckt wurde.

Dieses Beispiel versucht, eine nicht existierende Tabelle 'nonexistent' auszuchecken, aber mit der Option 'checkoutParent=TRUE'. Anstatt einen Fehler zu erzeugen, checkt CAS die übergeordnete Caslib 'mycas' aus, was nützlich ist, wenn man beabsichtigt, das Objekt innerhalb der Transaktion zu erstellen.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1 
2PROC CAS;
3ACCESSCONTROL.startTransaction;
4 
5RUN;
6ACCESSCONTROL.checkOutObject / checkoutParent=TRUE objectSelector={objType='TABLE', caslib='mycas', TABLE='nonexistent'};
7 
8RUN;
9 
10QUIT;
11 
Ergebnis :
Eine Erfolgsmeldung, die anzeigt, dass die Caslib 'mycas' (das übergeordnete Objekt) ausgecheckt wurde, da die angegebene Tabelle nicht existiert.

FAQ

Was ist der Zweck der `checkOutObject`-Aktion?
Welche Parameter sind für die `checkOutObject`-Aktion erforderlich?
Was bewirkt der Parameter `checkOutType`?
Was ist die Funktion des Parameters `checkoutParent`?
Welche Objekttypen können mit dem `ObjectSelector`-Parameter ausgecheckt werden?

Zugehörige Szenarien

Anwendungsfall
Exklusives Sperren kritischer Compliance-Daten

Eine Bank muss die 'Blacklist'-Tabelle für Geldwäscheverdacht (AML) aktualisieren. Während dieses Updates darf kein anderer Prozess oder Analyst Schreibzugriff auf diese Tabelle...

Anwendungsfall
Shared-Lock auf Bibliotheksebene für Migrationstests

Ein Data-Warehouse-Team führt Validierungstests auf einer gesamten Caslib durch, die historische Verkaufsdaten enthält. Sie wollen verhindern, dass jemand während der Prüfung ei...

Anwendungsfall
Bereitstellung neuer Modelle mit Fallback-Logik

Ein MLOps-Prozess versucht, eine neue Scoring-Tabelle für ein Kreditrisikomodell auszuchecken, um sie zu aktualisieren. Wenn die Tabelle noch nicht existiert (erster Lauf), muss...