Richtlinien einrichten

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.


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 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.

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);
    } 
  }
}

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/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 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_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"
}

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_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 Stringfeld
    • STATE == \'CA\'. Prüfen Sie, ob der Wert des Felds STATE gleich CA ist.
    • NAME != \'\': Prüfen Sie, ob der Wert des Felds NAME nicht leer ist.
  • Ausdruck für numerisches Feld
    • FILING_COST > 10.0. Prüfen Sie, 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

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

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, der EXPIRING_BEFORE_CLOSING_DATE entspricht, 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 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 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 Wert 1600 Amphitheatre Pkwy.
  • Aktualisieren Sie das Feld EIN (oder fügen Sie es hinzu, falls es nicht vorhanden ist) mit dem Wert 77666666.

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.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 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 Feldmessageskann 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.