Auf dieser Seite erhalten Sie eine kurze Übersicht über Ordner und erfahren, wie Sie Dokumente mit Ordnern verwalten.
Policy Engine und Regeln
In Document Warehouse können Nutzer mit der Policy Engine allgemeine Vorgänge für Dokumente definieren und ausführen (z. B. validieren oder aktualisieren), während sie Dokumente erstellen oder aktualisieren.
Regeln und Regelsätze
Eine Regel bezieht sich auf eine benutzerdefinierte Konfiguration, in der Folgendes angegeben wird:
- Was löst die Überprüfung der Regeln aus?
- Welche Bedingung wird ausgewertet?
- Welche Aktionen werden ausgeführt, wenn die Bedingung erfüllt ist?
Neben diesen Spezifikationen enthält eine Regel Informationen zur Beschreibung, Quelle, Ziel und Auslösebedingung.
Eine logische Sammlung von Regeln wird als RuleSet bezeichnet. Regeln, die auf demselben Schema basieren, können beispielsweise in einem einzigen Regelsatz zusammengefasst werden. Kunden können mehrere Regelsätze definieren.
Regeln sind nützlich, um beim Erstellen oder Aktualisieren von Dokumenten automatisch vordefinierte Aktionen auszulösen.
Eine Regel besteht aus drei Hauptbestandteilen:
- TriggerType: Ereignis, bei dem die Regelüberprüfung initiiert werden soll. „Erstellen“ und „Aktualisieren“ sind die unterstützten Triggertypen.
- Regelbedingung: Die Bedingung, die ausgewertet wird, nachdem ein bestimmter Triggertyp erkannt wurde. Bedingungen können mit der Common Expression Language (CEL) ausgedrückt werden. Jede Bedingung sollte eine boolesche Ausgabe ergeben.
- 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: Eine Aktion, mit der bestimmte Felder im Dokument während der Erstellung oder Aktualisierung des Dokuments validiert werden können.
- Aktion zur Datenaktualisierung: Eine Aktion, mit der bestimmte Felder im Dokument während der Erstellung oder Aktualisierung des Dokuments aktualisiert werden können. Solche Aktualisierungen werden ausgeführt, wenn die Regelbedingung erfüllt ist.
- Aktion zum Löschen von Dokumenten: Eine Aktion, mit der das Dokument während der Aktualisierung des Dokuments gelöscht werden kann, wenn bestimmte Felder die Löschkriterien erfüllen, die mit Regelbedingungen definiert wurden.
- Aktion zum Einbeziehen von Ordnern: Eine Aktion, mit der automatisch ein neues Dokument (oder ein aktualisiertes Dokument) in bestimmten Ordnern hinzugefügt wird. Solche Ordner können direkt mit ihrem Namen angegeben werden.
- Aktion zum Entfernen aus Ordnern: Eine Aktion, mit der ein neues Dokument automatisch aus bestimmten Ordnern entfernt wird, wenn eine Bedingung auf Regelebene erfüllt ist.
- Aktion zur Zugriffssteuerung: Eine Aktion, mit der die Zugriffssteuerungslisten (Gruppen- und Nutzerbindungen) während der Erstellung des Dokuments aktualisiert werden können. Solche Aktualisierungen werden ausgeführt, wenn die Regelbedingung erfüllt ist.
- Aktion zum Veröffentlichen: Eine 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 Regelsätzen (Erstellen, Abrufen, Aktualisieren, Löschen, Auflisten). In diesem Abschnitt finden Sie Beispiele für die Konfiguration verschiedener Typen für Regeln.
Regelsatz 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 Document AI Warehouse Python API Referenzdokumentation.
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 Document AI Warehouse Java API Referenzdokumentation.
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.
Regelsätze 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 einen Regelsatz mit dem Namen des Regelsatzes 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"
}Regelsatz löschen
So löschen Sie einen Regelsatz mit dem Namen des Regelsatzes:
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 ein Stringfeld
STATE == \'CA\': Prüft, ob der Wert des FeldsSTATEgleichCAist.NAME != \'\': Prüft, ob das FeldNAMEnicht leer ist.
- Ausdruck für ein numerisches Feld
FILING_COST > 10.0: Prüft, ob der Wert des FeldsFILING_COST(als Gleitkommazahl definiert) größer als10.0ist.
Prüfen, ob ein Dokument zu einem bestimmten Schema gehört
Verwenden Sie den speziellen Feldnamen documentType (ein reserviertes Wort), um auf einen bestimmten Schematyp zu verweisen. Er wird mit dem Feld DisplayName im DocumentSchema verglichen.
Beispiel:
documentType == \'W9\'
Die vorherige Bedingung prüft, ob das Schema des Dokuments (mit dem Schlüsselwort documentType) den Anzeigenamen W9 hat.
Auf alte/vorhandene und neue Werte von Dokumentattributen verweisen
Um Bedingungen zu unterstützen, die vorhandene und neu angegebene Attribute enthalten, verwenden Sie die folgenden beiden Präfixe mit einem Punktoperator, um auf die jeweilige Version des Attributs zuzugreifen:
OLD_für vorhandene Dokumentattribute.NEW_für neue Dokumentattribute in der Anfrage.
Beispiel:
OLD_.state == \'TX\' && NEW_.state == \'CA\': Prüft, ob der vorhandene Wert des Attributs „state“TXist und der neue WertCAlautet.
Umgang mit Datumsfeldern
Wenn das EXPIRATION_DATE des Dokuments DriverLicense vor einem bestimmten Datum liegt:
- Aktualisieren Sie
EXPIRATION_STATUS(Enumerationsfeld) mit dem WertEXPIRING_BEFORE_CLOSING_DATEoder fügen Sie es hinzu, falls es nicht vorhanden ist.
Verwenden Sie die Zeitstempelfunktion, um Datumswerte 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 zur Datenvalidierung
Validieren Sie ein W9-Dokument für das STATE-Feld (Textfeld) „California“:
- Prüfen Sie, ob das Feld
NAME(Textfeld) nicht leer ist. Prüfen Sie, ob das Feld
FILING_COST(Gleitkommazahl) 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 zur Datenaktualisierung
Wenn das Feld BUSINESS_NAME eines W9-Dokuments „Google“ ist:
- Aktualisieren Sie das Feld
Addressmit dem Wert1600 Amphitheatre Pkwyoder fügen Sie es hinzu, falls es nicht vorhanden ist. Aktualisieren Sie das Feld
EINmit dem Wert77666666oder fügen Sie es hinzu, falls es nicht vorhanden ist.
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 das Feld BUSINESS_NAME beim Aktualisieren des W9-Dokuments 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 Zugriffssteuerung
Wenn das Feld BUSINESS_NAME beim Aktualisieren des W9-Dokuments Google ist, aktualisieren Sie die Richtlinienbindungen, die den Zugriff auf das Dokument steuern.
Neue Bindung hinzufügen
Wenn ein Dokument die Regelbedingung erfüllt:
- 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, sodass 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 zum Hinzufügen zu Ordnern
Wenn ein Ordner erstellt oder aktualisiert wird, kann er vordefinierten statischen Ordnern oder Ordnern hinzugefügt werden, die bestimmten Suchkriterien entsprechen.
Statische Ordner konfigurieren
Wenn ein neuer DriverLicense-Ordner erstellt wird, fügen Sie ihn 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 wird oder ein Link erstellt oder gelöscht wird, können Sie eine Benachrichtigung an den Pub/Sub-Kanal senden.
Schritte zur Verwendung
- Erstellen Sie ein Pub/Sub-Thema im Kundenprojekt.
- Erstellen Sie eine Regel, um die Aktion zum Veröffentlichen in Pub/Sub mit der folgenden Anfrage auszulösen. (Siehe folgendes Beispiel)
- Rufen Sie die Document AI Warehouse APIs auf.
- Prüfen Sie, ob Nachrichten im Pub/Sub-Kanal veröffentlicht werden.
Beispielregel
Wenn ein Dokument einem Ordner hinzugefügt wird (die CreateLink API wird aufgerufen), kann die folgende Regel verwendet werden, um Benachrichtigungen an das 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 ein Dokument aktualisiert wird.ON_CRATE_LINK: Wenn ein neuer Link erstellt wird.ON_DELETE_LINK: Wenn ein Link gelöscht wird.
Bei Triggern zum Erstellen und Aktualisieren von Dokumenten können die Bedingungen Attribute des Dokuments enthalten, das erstellt oder aktualisiert wird.
Bei Triggern zum Erstellen und Löschen von Links können die Bedingungen nur Attribute des Ordnerdokuments enthalten, aus dem das Dokument hinzugefügt oder entfernt wird.
Mit dem Feld
messageskönnen Sie eine Liste von Nachrichten an den Pub/Sub-Kanal senden. Neben diesen Nachrichten werden standardmäßig auch die folgenden Felder veröffentlicht:- Schemaname, Dokumentname, Triggertyp, Regelsatzname, Regel-ID, Aktions-ID.
- Bei Triggern zum Erstellen und Löschen von Links enthalten die Benachrichtigungen relevante Linkinformationen, die hinzugefügt oder gelöscht werden.