Auf dieser Seite erhalten Sie einen kurzen Überblick über Ordner und erfahren, wie Sie Dokumente mit Ordnern verwalten.
Richtlinienmodul und Regeln
Mit Policy Engine können Nutzer in Document Warehouse beim Erstellen oder Aktualisieren von Dokumenten allgemeine Vorgänge für Dokumente definieren und ausführen, z. B. Validieren oder Aktualisieren.
Regeln und Regelsätze
Eine Regel bezieht sich auf eine benutzerdefinierte Konfiguration, in der Folgendes angegeben wird:
- was die Überprüfung der Regeln auslöst,
- welche Bedingung ausgewertet wird und
- welche Aktionen ausgeführt werden, wenn die Bedingung erfüllt ist.
Neben diesen Spezifikationen enthält eine Regel Informationen zur Beschreibung, Quelle, zum Ziel und zur Auslösebedingung.
Eine logische Sammlung von Regeln wird als RuleSet bezeichnet. Regeln, die auf dasselbe Schema angewendet werden, können beispielsweise in einem einzelnen RuleSet zusammengefasst werden. Kunden können mehrere RuleSets definieren.
Regeln sind nützlich, um beim Erstellen oder Aktualisieren von Dokumenten automatisch vordefinierte Aktionen auszulösen.
Eine Regel besteht aus drei Hauptkomponenten:
- TriggerType: Ereignis, bei dem die Regelprüfung initiiert werden soll. „Create“ und „Update“ sind die unterstützten Triggertypen.
- Regelbedingung: Die Bedingung, die nach dem Erkennen eines bestimmten Triggertyps ausgewertet wird. Bedingungen können mit der Common Expression Language (CEL) ausgedrückt werden. Jede Bedingung sollte einen booleschen Wert zurückgeben.
- Aktionen: Eine Reihe von Schritten, die ausgeführt werden, wenn die Regel erfüllt ist. Wenn eine Regelbedingung als „wahr“ ausgewertet wird, wird die entsprechende Aktion (die in der Regel konfiguriert ist) ausgeführt. Im Folgenden finden Sie allgemeine Informationen zu bestimmten Aktionen, die in Document Warehouse implementiert sind:
- Aktion zur Datenvalidierung: Mit dieser Aktion können bestimmte Felder im Dokument während der Dokumenterstellung oder ‑aktualisierung validiert werden.
- Aktion zum Aktualisieren von Daten: Mit dieser Aktion können bestimmte Felder im Dokument beim Erstellen oder Aktualisieren des Dokuments aktualisiert werden. Solche Aktualisierungen werden ausgeführt, wenn die Regelbedingung erfüllt ist.
- Aktion zum Löschen von Dokumenten: Mit dieser Aktion kann das Dokument während der Aktualisierung gelöscht werden, wenn bestimmte Felder die mit Regelbedingungen definierten Löschkriterien erfüllen.
- Aktion zum Einbeziehen von Ordnern: Eine Aktion, mit der automatisch ein neues oder aktualisiertes Dokument in bestimmten Ordnern hinzugefügt wird. Solche Ordner können direkt über ihren Namen angegeben werden.
- Aktion „Aus Ordner entfernen“: Eine Aktion, mit der ein neues Dokument automatisch aus bestimmten Ordnern entfernt wird, wenn eine Bedingung auf Regelebene erfüllt ist.
- Access Control Action (Aktion zur Zugriffssteuerung): Aktion, mit der die Aktualisierung der Zugriffssteuerungslisten (Gruppen- und Nutzerbindungen) beim Erstellen von Dokumenten ermöglicht wird. Solche Aktualisierungen werden ausgeführt, wenn die Regelbedingung erfüllt ist.
- Aktion zum Veröffentlichen: Aktion, mit der bestimmte Nachrichten im Pub/Sub-Kanal des Nutzers veröffentlicht werden, wenn eine Bedingung auf Regelebene erfüllt ist.
Regelsätze verwalten
Document Warehouse bietet APIs zum Verwalten von RuleSets (Erstellen, Abrufen, Aktualisieren, Löschen, Auflisten). In diesem Abschnitt finden Sie Beispiele für die Konfiguration verschiedener Regeltypen.
RuleSet erstellen
So erstellen Sie einen Regelsatz:
REST
Anfrage:
# Create a RuleSet for data validation.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"trigger_type": "ON_CREATE",
"condition": "documentType == \'W9\' && STATE ==\'CA\'",
"actions": {
"data_validation": {
"conditions": {
"NAME": "NAME != \'\'",
"FILING_COST": "FILING_COST > 10.0"
}
}
},
"enabled": true
}
],
"description": "W9: Basic validation check rules."
}'Antwort
{
"description": "W9: Basic validation check rules.",
"name": "RULE_SET_NAME",
"rules": [
{
"actions": [
{
"actionId": "de0e6b84-106b-44ba-b1c4-0b3ad6ddc719",
"dataValidation": {
"conditions": {
"FILING_COST": "FILING_COST > 10.0",
"NAME": "NAME != ''"
}
}
}
],
"condition": "documentType == 'W9' && STATE =='CA'",
"enabled": true,
"triggerType": "ON_CREATE"
}
]
}
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Warehouse Python API.
Richten Sie zur Authentifizierung bei Document AI Warehouse die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Document AI Warehouse Java API.
Richten Sie zur Authentifizierung bei Document AI Warehouse die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
RuleSets auflisten
So listen Sie Regelsätze in einem Projekt auf:
REST
Anfrage:
# List all rule-sets for a project.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSetsAntwort
{
"ruleSets": [
{
"description": "W9: Basic validation check rules.",
"rules": [
{
"triggerType": "ON_CREATE",
"condition": "documentType == 'W9' && STATE =='CA'",
"actions": [
{
"actionId": "fcf79ae8-9a1f-4462-9262-eb2e7161350c",
"dataValidation": {
"conditions": {
"NAME": "NAME != ''",
"FILING_COST": "FILING_COST > 10.0"
}
}
}
],
"enabled": true
}
],
"name": "RULE_SET_NAME"
}
]
}Regelsatz abrufen
So rufen Sie ein Regelset anhand des Namens ab:
REST
Anfrage:
# Get a rule-set using rule-set ID.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets/RULE_SETAntwort
{
"description": "W9: Basic validation check rules.",
"rules": [
{
"triggerType": "ON_CREATE",
"condition": "documentType == 'W9' && STATE =='CA'",
"actions": [
{
"actionId": "7559346b-ec9f-4143-ab1c-1912f5588807",
"dataValidation": {
"conditions": {
"NAME": "NAME != ''",
"FILING_COST": "FILING_COST > 10.0"
}
}
}
],
"enabled": true
}
],
"name": "RULE_SET_NAME"
}RuleSet löschen
So löschen Sie einen Regelsatz anhand des Regelsatznamens:
REST
Anfrage:
# Get a rule-set using rule-set ID.
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets/RULE_SETRegelaktionen
In diesem Abschnitt werden die Regelausdrücke und Beispiele für die einzelnen Regelaktionen behandelt.
Beispielbedingungen
Eine Bedingung bezieht sich auf den Ausdruck, der mit der Common Expression Language angegeben wird.
Beispiele:
- Ausdruck für Stringfeld
STATE == \'CA\'. Prüfen Sie, ob der Wert des FeldsSTATEgleichCAist.NAME != \'\': Prüfen Sie, ob der Wert des FeldsNAMEnicht leer ist.
- Ausdruck für numerisches Feld
FILING_COST > 10.0. Prüfen Sie, ob der Wert des FeldsFILING_COST(als Gleitkommazahl definiert) größer als10.0ist.
Prüfen, ob ein Dokument zu einem bestimmten Schema gehört
Wenn Sie auf einen bestimmten Schematyp verweisen möchten, verwenden Sie den speziellen Feldnamen documentType (ein reserviertes Wort). Sie wird anhand des Felds DisplayName in der DocumentSchema ausgewertet.
Beispiel:
documentType == \'W9\'
Mit der vorherigen Bedingung wird geprüft, ob das Schema des Dokuments (mit dem Keyword documentType) den Anzeigenamen W9 hat.
Auf alte/vorhandene und neue Dokumentattribute verweisen
Um Bedingungen zu unterstützen, die vorhandene und neu angegebene Attribute enthalten, verwenden Sie die folgenden beiden Präfixe mit einem DOT-Operator, um auf die jeweilige Version des Attributs zuzugreifen:
OLD_, um auf vorhandene Dokumentattribute zu verweisen.NEW_, um im Antrag auf neue Dokumentattribute zu verweisen.
Beispiel:
OLD_.state == \'TX\' && NEW_.state == \'CA\'Prüft, ob der vorhandene Wert der Status-PropertyTXund der angegebene neue WertCAist.
Umgang mit Datumsfeldern
Für das DriverLicense-Dokument, wenn EXPIRATION_DATE vor einem bestimmten Datum liegt
- Aktualisieren Sie
EXPIRATION_STATUS(Enum-Feld) mit einem Wert, derEXPIRING_BEFORE_CLOSING_DATEentspricht, oder fügen Sie es hinzu, falls es nicht vorhanden ist.
Verwenden Sie die Zeitstempelfunktion, um Datumsangaben hinzuzufügen, wie im folgenden Beispiel gezeigt.
REST
Anfrage:
# Check if document expires before a date and update the status field
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules":[
{
"trigger_type": "ON_CREATE",
"description": "Expiration date check rule",
"condition": "documentType==\'DriverLicense\' && EXPIRATION_DATE < timestamp(\'2021-08-01T00:00:00Z\')",
"actions": {
"data_update": {
"entries": {
"EXPIRATION_STATUS": "EXPIRING_BEFORE_CLOSING_DATE"
}
}
}
}
]
}'Regel für die Datenvalidierung
W9-Dokument für das Textfeld STATE (Kalifornien) validieren:
- Prüfen Sie, ob das Feld
NAME(Textfeld) nicht leer ist. Prüfen Sie, ob das Feld
FILING_COST(Gleitkommafeld) größer als10.0ist.
REST
Anfrage:
# Rules for data validation.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"trigger_type": "ON_CREATE",
"condition": "documentType == \'W9\' && STATE ==\'CA\'",
"actions": {
"data_validation": {
"conditions": {
"NAME": "NAME != \'\'",
"FILING_COST": "FILING_COST > 10.0"
}
}
},
"enabled": true
}
],
"description": "W9: Basic validation check rules."
}'Regel für Datenupdates
Wenn das Feld BUSINESS_NAME für ein W9-Dokument „Google“ lautet:
- Aktualisieren Sie das Feld
Address(oder fügen Sie es hinzu, falls es nicht vorhanden ist) mit dem Wert1600 Amphitheatre Pkwy. Aktualisieren Sie das Feld
EIN(oder fügen Sie es hinzu, falls es nicht vorhanden ist) mit dem Wert77666666.
REST
Anfrage:
# Rule for data update.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules":[
{
"description": "W9: Rule to update address data and EIN.",
"trigger_type": "ON_CREATE",
"condition": "documentType==\'W9\' && BUSINESS_NAME == \'Google\'",
"actions": {
"data_update": {
"entries": {
"Address": "1600 Amphitheatre Pkwy",
"EIN": "776666666"
}
}
}
}
]
}'Regel zum Löschen von Dokumenten
Wenn Sie das Dokument W9 aktualisieren und das Feld BUSINESS_NAME in Google geändert wird, löschen Sie das Dokument.
REST
Anfrage:
# Rule for deleting the document
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"description": "W9: Rule to delete the document during update.",
"trigger_type": "ON_UPDATE",
"condition": "documentType == \'W9\' && BUSINESS_NAME == \'Google\'",
"actions": {
"delete_document_action": {
"enable_hard_delete": true
}
}
}
]
}'Regel zur Zugriffskontrolle
Wenn Sie das W9-Dokument aktualisieren und das Feld BUSINESS_NAME den Wert Google hat, aktualisieren Sie die Richtlinienbindungen, die den Zugriff auf das Dokument steuern.
Neue Bindung hinzufügen
Wenn ein Dokument die Regelbedingung erfüllt, gilt Folgendes:
- Fügt die Rolle „Bearbeiter“ für
user:a@example.comundgroup:xxx@example.comhinzu Fügt die Rolle „Betrachter“ für
user:b@example.comundgroup:yyy@example.comhinzu.
REST
Anfrage:
# Rule for adding new policy binding while creating the document.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"description": "W9: Rule to add new policy binding."
"trigger_type": "ON_CREATE",
"condition": "documentType == \'aca13aa9-6d0d-4b6b-a1eb-315dcb876bd1\' && BUSINESS_NAME == \'Google\'",
"actions": {
"access_control": {
"operation_type": "ADD_POLICY_BINDING",
"policy": {
"bindings": [
{
"role": "roles/contentwarehouse.documentEditor",
"members": ["user:a@example.com", "group:xxx@example.com"]
},
{
"role": "roles/contentwarehouse.documentViewer",
"members": ["user:b@example.com", "group:yyy@example.com"]
}
]
}
}
}
}
]
}'Vorhandene Bindung ersetzen
Wenn ein Dokument die Regelbedingung erfüllt, ersetzen Sie die vorhandene Bindung so, dass sie nur die Rolle „Bearbeiter“ für user:a@example.com und group:xxx@example.com enthält.
REST
Anfrage:
# Rule for replacing existing policy bindings with newly given bindings.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"description": "W9: Rule to replace policy binding."
"trigger_type": "ON_CREATE",
"condition": "documentType == \'a9e37d07-9cfa-4b4d-b372-53162e3b8bd9\' && BUSINESS_NAME == \'Google\'",
"actions": {
"access_control": {
"operation_type": "REPLACE_POLICY_BINDING",
"policy": {
"bindings": [
{
"role": "roles/contentwarehouse.documentEditor",
"members": ["user:a@example.com", "group:xxx@example.com"]
}
]
}
}
}
}
]
}'Regel „Zu Ordner hinzufügen“
Wenn ein Ordner erstellt oder aktualisiert wird, kann er unter vordefinierten statischen Ordnern oder Ordnern hinzugefügt werden, die bestimmten Suchkriterien entsprechen.
Statische Ordner konfigurieren
Wenn ein neues DriverLicense erstellt wird, fügen Sie es dem bereits erstellten Ordner hinzu.
REST
Anfrage:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"trigger_type": "ON_CREATE",
"condition": "documentType == \'DriverLicense\'",
"actions": {
"add_to_folder": {
"folders": ["projects/821411934445/locations/us/documents/445en119hqp70"]
}
}
}
]
}'In Pub/Sub veröffentlichen
Wenn ein Dokument erstellt oder aktualisiert oder ein Link erstellt oder gelöscht wird, können Sie eine Benachrichtigung an den Pub/Sub-Kanal senden.
Verwendung
- Erstellen Sie ein Pub/Sub-Thema im Kundenprojekt.
- Erstellen Sie mit der folgenden Anfrage eine Regel, um die Pub/Sub-Aktion „Veröffentlichen“ auszulösen. (Siehe folgendes Beispiel.)
- Document AI Warehouse APIs aufrufen
- Prüfen, ob Nachrichten im Pub/Sub-Kanal veröffentlicht werden
Beispielregel
Wenn einem Ordner ein Dokument hinzugefügt wird (CreateLink API wird aufgerufen), kann die folgende Regel verwendet werden, um Benachrichtigungen an ein Pub/Sub-Thema zu senden.
REST
Anfrage:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
"rules": [
{
"trigger_type": "ON_CREATE_LINK",
"condition": "documentType == \'DriverLicenseFolder\'",
"actions": {
"publish_to_pub_sub": {
"topic_id": "<topic_name>"
"messages": "Added document under a folder."
}
}
}
]
}'Regeldetails
Diese Aktion wird für die folgenden Triggertypen unterstützt:
ON_CRATE: Wenn ein neues Dokument erstellt wird.ON_UPDATE: Wenn das Dokument aktualisiert wird.ON_CRATE_LINK: Wenn ein neuer Link erstellt wird.ON_DELETE_LINK: Wenn ein Link gelöscht wird.
Bei Triggern vom Typ „Dokument erstellen“ und „Dokument aktualisieren“ kann die Bedingung Attribute des Dokuments enthalten, das erstellt oder aktualisiert wird.
Bei Triggern vom Typ „Link erstellen“ und „Link löschen“ kann die Bedingung nur Attribute des Ordnerdokuments enthalten, aus dem das Dokument hinzugefügt oder entfernt wird.
Mit dem Feld
messageskann eine Liste von Nachrichten an den Pub/Sub-Kanal gesendet werden. Zusätzlich zu diesen Nachrichten werden standardmäßig auch die folgenden Felder veröffentlicht:- Schemaname, Dokumentname, Triggertyp, RuleSet-Name, Regel-ID, Aktions-ID.
- Bei Link-Triggern vom Typ „Erstellen“ und „Löschen“ enthalten die Benachrichtigungen relevante Linkinformationen, die hinzugefügt oder gelöscht werden.