Richtlinien einrichten

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.


from google.cloud import contentwarehouse

# TODO(developer): Uncomment these variables before running the sample.
# project_number = "YOUR_PROJECT_NUMBER"
# location = "us" # Format is 'us' or 'eu'


def create_rule_set(project_number: str, location: str) -> None:
    # Create a client
    client = contentwarehouse.RuleSetServiceClient()

    # The full resource name of the location, e.g.:
    # projects/{project_number}/locations/{location}
    parent = client.common_location_path(project=project_number, location=location)

    actions = contentwarehouse.Action(
        delete_document_action=contentwarehouse.DeleteDocumentAction(
            enable_hard_delete=True
        )
    )

    rules = contentwarehouse.Rule(
        trigger_type="ON_CREATE",
        condition="documentType == 'W9' && STATE =='CA'",
        actions=[actions],
    )

    rule_set = contentwarehouse.RuleSet(
        description="W9: Basic validation check rules.",
        source="My Organization",
        rules=[rules],
    )

    # Initialize request argument(s)
    request = contentwarehouse.CreateRuleSetRequest(parent=parent, rule_set=rule_set)

    # Make the request
    response = client.create_rule_set(request=request)

    # Handle the response
    print(f"Rule Set Created: {response}")

    # Initialize request argument(s)
    request = contentwarehouse.ListRuleSetsRequest(
        parent=parent,
    )

    # Make the request
    page_result = client.list_rule_sets(request=request)

    # Handle the response
    for response in page_result:
        print(f"Rule Sets: {response}")

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.

import com.google.cloud.contentwarehouse.v1.Action;
import com.google.cloud.contentwarehouse.v1.ActionOrBuilder;
import com.google.cloud.contentwarehouse.v1.CreateRuleSetRequest;
import com.google.cloud.contentwarehouse.v1.CreateRuleSetRequestOrBuilder;
import com.google.cloud.contentwarehouse.v1.DeleteDocumentAction;
import com.google.cloud.contentwarehouse.v1.DeleteDocumentActionOrBuilder;
import com.google.cloud.contentwarehouse.v1.ListRuleSetsRequest;
import com.google.cloud.contentwarehouse.v1.ListRuleSetsRequestOrBuilder;
import com.google.cloud.contentwarehouse.v1.LocationName;
import com.google.cloud.contentwarehouse.v1.Rule;
import com.google.cloud.contentwarehouse.v1.Rule.TriggerType;
import com.google.cloud.contentwarehouse.v1.RuleOrBuilder;
import com.google.cloud.contentwarehouse.v1.RuleSet;
import com.google.cloud.contentwarehouse.v1.RuleSetOrBuilder;
import com.google.cloud.contentwarehouse.v1.RuleSetServiceClient;
import com.google.cloud.contentwarehouse.v1.RuleSetServiceClient.ListRuleSetsPagedResponse;
import com.google.cloud.contentwarehouse.v1.RuleSetServiceSettings;
import com.google.cloud.resourcemanager.v3.Project;
import com.google.cloud.resourcemanager.v3.ProjectName;
import com.google.cloud.resourcemanager.v3.ProjectsClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;


public class CreateRuleSet {

  public static void createRuleSet() throws IOException, 
        InterruptedException, ExecutionException, TimeoutException { 
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String location = "your-region"; // Format is "us" or "eu".
    createRuleSet(projectId, location);
  }

  public static void createRuleSet(String projectId, String location)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    String projectNumber = getProjectNumber(projectId);

    String endpoint = "contentwarehouse.googleapis.com:443";
    if (!"us".equals(location)) {
      endpoint = String.format("%s-%s", location, endpoint);
    }
    RuleSetServiceSettings ruleSetServiceSettings =
        RuleSetServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Create a Rule Set Service Client 
    try (RuleSetServiceClient ruleSetServiceClient = 
        RuleSetServiceClient.create(ruleSetServiceSettings)) {
      /*  The full resource name of the location, e.g.:
      projects/{project_number}/locations/{location} */
      String parent = LocationName.format(projectNumber, location); 

      // Create a Delete Document Action to be added to the Rule Set 
      DeleteDocumentActionOrBuilder deleteDocumentAction = 
          DeleteDocumentAction.newBuilder().setEnableHardDelete(true).build();

      // Add Delete Document Action to Action Object 
      ActionOrBuilder action = Action.newBuilder()
            .setDeleteDocumentAction((DeleteDocumentAction) deleteDocumentAction).build();

      // Create rule to add to rule set 
      RuleOrBuilder rule = Rule.newBuilder()
          .setTriggerType(TriggerType.ON_CREATE)
          .setCondition("documentType == 'W9' && STATE =='CA' ")
          .addActions(0, (Action) action).build();

      // Create rule set and add rule to it
      RuleSetOrBuilder ruleSetOrBuilder = RuleSet.newBuilder()
          .setDescription("W9: Basic validation check rules.")
          .setSource("My Organization")
          .addRules((Rule) rule).build();

      // Create and prepare rule set request to client
      CreateRuleSetRequestOrBuilder createRuleSetRequest = 
          CreateRuleSetRequest.newBuilder()
              .setParent(parent)
              .setRuleSet((RuleSet) ruleSetOrBuilder).build();

      RuleSet response = ruleSetServiceClient.createRuleSet(
          (CreateRuleSetRequest) createRuleSetRequest);

      System.out.println("Rule set created: " + response.toString());

      ListRuleSetsRequestOrBuilder listRuleSetsRequest = 
          ListRuleSetsRequest.newBuilder()
              .setParent(parent).build();

      ListRuleSetsPagedResponse listRuleSetsPagedResponse = 
          ruleSetServiceClient.listRuleSets((ListRuleSetsRequest) listRuleSetsRequest);

      listRuleSetsPagedResponse.iterateAll().forEach(
          (ruleSet -> System.out.print(ruleSet))
      );
    }
  }

  private static String getProjectNumber(String projectId) throws IOException { 
    try (ProjectsClient projectsClient = ProjectsClient.create()) { 
      ProjectName projectName = ProjectName.of(projectId); 
      Project project = projectsClient.getProject(projectName);
      String projectNumber = project.getName(); // Format returned is projects/xxxxxx
      return projectNumber.substring(projectNumber.lastIndexOf("/") + 1);
    } 
  }
}

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/ruleSets

Antwort

{
  "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_SET

Antwort

{
  "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_SET

Regelaktionen

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 Felds STATE gleich CA ist.
    • NAME != \'\': Prüft, ob das Feld NAME nicht leer ist.
  • Ausdruck für ein numerisches Feld
    • FILING_COST > 10.0: Prüft, ob der Wert des Felds FILING_COST (als Gleitkommazahl definiert) größer als 10.0 ist.

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“ TX ist und der neue Wert CA lautet.

Umgang mit Datumsfeldern

Wenn das EXPIRATION_DATE des Dokuments DriverLicense vor einem bestimmten Datum liegt:

  • Aktualisieren Sie EXPIRATION_STATUS (Enumerationsfeld) mit dem Wert EXPIRING_BEFORE_CLOSING_DATE oder 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 als 10.0 ist.

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 Address mit dem Wert 1600 Amphitheatre Pkwy oder fügen Sie es hinzu, falls es nicht vorhanden ist.
  • Aktualisieren Sie das Feld EIN mit dem Wert 77666666 oder 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.com und group:xxx@example.com hinzu.
  • Fügt die Rolle „Betrachter“ für user:b@example.com und group:yyy@example.com hinzu.

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 messages kö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.