Freigeben über


Azure Purview Workflow-Clientbibliothek für Java – Version 1.0.0-beta.2

Workflows sind automatisierte, wiederholbare Geschäftsprozesse, die Benutzer in Microsoft Purview erstellen können, um für ihre Datenentitäten CUD-Vorgänge (d. h. Erstellen, Aktualisieren, Löschen) zu überprüfen und zu orchestrieren. Damit sind Organisationen in der Lage, Änderungen nachzuverfolgen, Richtlinienkonformität zu erzwingen und Qualitätsdaten in der gesamten Datenlandschaft sicherzustellen.

Verwenden Sie die Clientbibliothek für Purview-Workflow für Folgendes:

  • Verwalten von Workflows
  • Übermitteln von Benutzeranforderungen und Überwachen von Workflowausführungen
  • Anzeigen und Reagieren auf Workflowaufgaben

Weitere Informationen zur Verwendung des Workflows finden Sie in der Dienstdokumentation.

Erste Schritte

Voraussetzungen

Authentifizierung

Da der Workflowdienst ein Azure Active Directory-Bearertoken (AAD) für die Authentifizierung und Identifizierung verwendet, sollte eine E-Mail-Adresse in das Token codiert werden, um eine Benachrichtigung zu ermöglichen, wenn Workflow verwendet wird. Es wird empfohlen, die Azure Identity-Bibliothek mit dem UsernamePasswordCredential-Element zu verwenden. Bevor Sie die Azure Identity-Bibliothek mit Workflow verwenden, sollte eine Anwendung registriert und für die clientId verwendet werden, die an usernamePasswordCredential übergeben wird.

Um den unten aufgeführten Anbieter UsernamePasswordCredential oder andere Anbieter von Anmeldeinformationen zu verwenden, die mit dem Azure SDK bereitgestellt werden, fügen Sie das azure-identity Paket ein:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.10.4</version>
</dependency>

Legen Sie die Werte der Client-ID und mandanten-ID der AAD-Anwendung als Umgebungsvariablen fest: AZURE_CLIENT_ID, AZURE_TENANT_ID. Legen Sie den Wert von Benutzername und Kennwort eines AAD-Benutzers als Umgebungsvariablen fest: USER_NAME, KENNWORT.

WorkflowClient purviewWorkflowClient = new WorkflowClientBuilder()
    .endpoint(Configuration.getGlobalConfiguration().get("ENDPOINT", "endpoint"))
    .credential(new UsernamePasswordCredentialBuilder()
        .clientId(Configuration.getGlobalConfiguration().get("CLIENTID", "clientId"))
        .tenantId(Configuration.getGlobalConfiguration().get("TENANTID", "tenantId"))
        .username(Configuration.getGlobalConfiguration().get("USERNAME", "username"))
        .password(Configuration.getGlobalConfiguration().get("PASSWORD", "password"))
        .build())
    .buildClient();

Beispiele

Der folgende Abschnitt enthält mehrere Codeausschnitte, die einige der häufigsten Szenarien abdecken, einschließlich:

Erstellen des Workflows

BinaryData workflowCreateOrUpdateCommand =
    BinaryData.fromString(
        "{\"name\":\"Create glossary term workflow\",\"description\":\"\",\"triggers\":[{\"type\":\"when_term_creation_is_requested\",\"underGlossaryHierarchy\":\"/glossaries/20031e20-b4df-4a66-a61d-1b0716f3fa48\"}],\"isEnabled\":true,\"actionDag\":{\"actions\":{\"Startandwaitforanapproval\":{\"type\":\"Approval\",\"inputs\":{\"parameters\":{\"approvalType\":\"PendingOnAll\",\"title\":\"ApprovalRequestforCreateGlossaryTerm\",\"assignedTo\":[\"eece94d9-0619-4669-bb8a-d6ecec5220bc\"]}},\"runAfter\":{}},\"Condition\":{\"type\":\"If\",\"expression\":{\"and\":[{\"equals\":[\"@outputs('Startandwaitforanapproval')['body/outcome']\",\"Approved\"]}]},\"actions\":{\"Createglossaryterm\":{\"type\":\"CreateTerm\",\"runAfter\":{}},\"Sendemailnotification\":{\"type\":\"EmailNotification\",\"inputs\":{\"parameters\":{\"emailSubject\":\"GlossaryTermCreate-APPROVED\",\"emailMessage\":\"YourrequestforGlossaryTerm@{triggerBody()['request']['term']['name']}isapproved.\",\"emailRecipients\":[\"@{triggerBody()['request']['requestor']}\"]}},\"runAfter\":{\"Createglossaryterm\":[\"Succeeded\"]}}},\"else\":{\"actions\":{\"Sendrejectemailnotification\":{\"type\":\"EmailNotification\",\"inputs\":{\"parameters\":{\"emailSubject\":\"GlossaryTermCreate-REJECTED\",\"emailMessage\":\"YourrequestforGlossaryTerm@{triggerBody()['request']['term']['name']}isrejected.\",\"emailRecipients\":[\"@{triggerBody()['request']['requestor']}\"]}},\"runAfter\":{}}}},\"runAfter\":{\"Startandwaitforanapproval\":[\"Succeeded\"]}}}}}");
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
    purviewWorkflowClient.createOrReplaceWithResponse(
        "4afb5752-e47f-43a1-8ba7-c696bf8d2745", workflowCreateOrUpdateCommand, requestOptions);

Übermitteln von Benutzeranforderungen

BinaryData userRequestsPayload =
    BinaryData.fromString(
        "{\"comment\":\"Thanks!\",\"operations\":[{\"type\":\"CreateTerm\",\"payload\":{\"glossaryTerm\":{\"name\":\"term\",\"anchor\":{\"glossaryGuid\":\"20031e20-b4df-4a66-a61d-1b0716f3fa48\"},\"nickName\":\"term\",\"status\":\"Approved\"}}}]}");
RequestOptions requestOptions = new RequestOptions();
Response<BinaryData> response =
    userRequestsClient.submitWithResponse(userRequestsPayload, requestOptions);

Workflowaufgabe genehmigen

BinaryData approvalResponseComment = BinaryData.fromString("{\"comment\":\"Thanks for raising this!\"}");
RequestOptions requestOptions = new RequestOptions();
Response<Void> response =
    approvalClient.approveWithResponse(
        "69b57a00-f5de-4a17-a44a-6479adae373d", approvalResponseComment, requestOptions);

Wichtige Begriffe

Problembehandlung

Nächste Schritte

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Die meisten Beiträge verlangen, dass Sie einer [Mitwirkenden-Lizenzvereinbarung (CLA)][cla] zustimmen, in der Sie erklären, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Dieses Projekt hat den [Microsoft Open Source Code of Conduct][coc] übernommen. Weitere Informationen finden Sie unter [Häufig gestellte Fragen][coc_faq] oder kontaktieren Sie [opencode@microsoft.com][coc_contact] mit weiteren Fragen oder Kommentaren.

Aufrufe