Guides

Utiliser les vues d’activité

Associez des sources gouvernées et utilisez des vues enregistrées fixes dans Processes.

6 min de lecture1343 mots

Utiliser les vues d’activité

Les vues d’activité regroupent l’activité autorisée de Processes à partir de références et d’associations explicites. Une référence est un identifiant opaque limité au tenant. Elle ne crée aucun enregistrement client, dossier, demande ni résultat métier.

Utilisez ce guide après l’enregistrement des faits de cycle de vie par le propriétaire de la source. Activity views affiche ces faits, y compris les attentes et les Decision Requests. Lineage Explorer reste la surface d’enquête sur l’exécution.

Accès et propriété

workflow:read ouvre les routes Processes. Le propriétaire de chaque source autorise toute source contributrice avant le retour de sa référence, de son compte, de son heure, de sa relation ou de son élément de chronologie. activity_reference:manage gère les associations et activity_view:manage gère les définitions de vues enregistrées. Un appel d’association résout aussi l’accès en lecture à la source qu’il nomme : une identité disposant de activity_reference:manage sans accès en lecture à cette source reçoit FORBIDDEN.

Opération Procédure générée du plan de contrôle
Associer une source activityReferences.admit
Corriger une association activityReferences.correct
Lire les associations effectives activityReferences.listEffective
Créer, modifier, archiver ou récupérer une vue enregistrée activityViews.create, activityViews.update, activityViews.archive, activityViews.unarchive
Interroger les groupes, l’activité ou le travail associé activity.listGroups, activity.getGroup, activity.listActivity, activity.listRelatedGroups

Le chemin de requête lit la projection de l’API principale. Il n’appelle pas l’API d’un propriétaire pour chaque ligne. Le propriétaire de la source reste responsable de ses faits de cycle de vie, de son contenu et de son accès détaillé.

Associer deux demandes à une référence client

Utilisez des références explicites fournies par le propriétaire de la source ou l’intégration. Ne déduisez jamais une référence du texte d’une invite, du texte affiché d’une source ou du contenu d’un message. Le premier corps associe une demande à une référence client et à une référence de demande. Enregistrez-le sous request-104-association.json.

{
  "references": [
    { "namespace": "customer", "key": "external_id", "value": "CMB-42" },
    { "namespace": "request", "key": "external_id", "value": "REQUEST-104" }
  ],
  "source": {
    "sourceType": "input_wait",
    "sourceId": "11111111-1111-4111-8111-111111111111",
    "sourceRevision": "wait-104-v1"
  }
}

activityReferences.listEffective porte le localisateur de source seul et retourne les associations qui contribuent actuellement à la projection. Enregistrez-le sous request-104-source.json.

{
  "source": {
    "sourceType": "input_wait",
    "sourceId": "11111111-1111-4111-8111-111111111111",
    "sourceRevision": "wait-104-v1"
  }
}
kla api activityReferences admit --input @request-104-association.json
kla api activityReferences listEffective --input @request-104-source.json

Utilisez activityReferences.correct lorsque l’association effective change. La correction nomme l’association qu’elle remplace. L’ancienne association reste dans l’historique et cesse de contribuer à la projection effective. Enregistrez la correction sous request-104-correction.json.

{
  "reference": { "namespace": "request", "key": "external_id", "value": "REQUEST-104-CORRECTED" },
  "source": {
    "sourceType": "input_wait",
    "sourceId": "11111111-1111-4111-8111-111111111111",
    "sourceRevision": "wait-104-v2"
  },
  "supersedesAssociationId": "22222222-2222-4222-8222-222222222222"
}
kla api activityReferences correct --input @request-104-correction.json

Les sources tombstonées restent supprimées après une relecture. Une correction ou un tombstone peut rendre la couverture partial ou unavailable. Il ne peut pas restaurer du contenu supprimé.

Créer une vue enregistrée fixe

Les vues enregistrées acceptent une configuration fixe. Les filtres autorisés sont l’égalité de référence, le type de source, l’état enregistré et une plage de dates inclusive. L’API, la CLI et l’UI rejettent les champs de formule, les arbres d’expression arbitraires, les opérateurs personnalisés et un champ de résultat métier.

Une vue de portée travail liste les demandes individuelles. Enregistrez cette définition sous customer-request-history.json.

{
  "name": "Customer request history",
  "grouping": { "namespace": "request", "key": "external_id" },
  "labels": { "grouping": "Request" },
  "scope": "work",
  "orderedColumns": ["reference", "pending_work", "latest_activity", "waiting_since"],
  "filters": {
    "referenceEquals": [],
    "sourceKinds": ["input_wait", "input_event", "execution"],
    "statuses": ["waiting", "completed"]
  },
  "sort": { "field": "latest_activity", "direction": "desc" }
}

Le travail associé relève d’une vue de portée sujet qui porte un regroupement secondaire. activity.listRelatedGroups rejette toute autre configuration avec secondary_grouping_required. Enregistrez cette définition sous customer-history-view.json.

{
  "name": "Customer history",
  "grouping": { "namespace": "customer", "key": "external_id" },
  "labels": { "grouping": "Customer", "secondaryGrouping": "Request" },
  "scope": "subject",
  "secondaryGrouping": { "namespace": "request", "key": "external_id" },
  "orderedColumns": ["reference", "pending_work", "latest_activity", "secondary_reference"],
  "filters": {
    "referenceEquals": [],
    "sourceKinds": ["input_wait", "input_event", "execution"],
    "statuses": ["waiting", "completed"]
  },
  "sort": { "field": "latest_activity", "direction": "desc" }
}

Une modification remplace toute la configuration enregistrée. Le corps porte chaque champ de configuration avec l’id de la vue et son expectedRevision actuel. Cette modification ajoute la colonne d’échéance. Enregistrez-la sous customer-request-history-update.json.

{
  "id": "33333333-3333-4333-8333-333333333333",
  "expectedRevision": 1,
  "name": "Customer request history",
  "grouping": { "namespace": "request", "key": "external_id" },
  "labels": { "grouping": "Request" },
  "scope": "work",
  "orderedColumns": ["reference", "pending_work", "latest_activity", "waiting_since", "deadline"],
  "filters": {
    "referenceEquals": [],
    "sourceKinds": ["input_wait", "input_event", "execution"],
    "statuses": ["waiting", "completed"]
  },
  "sort": { "field": "latest_activity", "direction": "desc" }
}

L’archivage conserve la définition et retire la vue de la liste. Il exige l’id de la vue et la révision renvoyée par la modification. Enregistrez-le sous customer-request-history-archive.json.

{
  "id": "33333333-3333-4333-8333-333333333333",
  "expectedRevision": 2
}

La récupération restaure une vue archivée et exige la révision renvoyée par l’archivage. Enregistrez-la sous customer-request-history-unarchive.json.

{
  "id": "33333333-3333-4333-8333-333333333333",
  "expectedRevision": 3
}
kla api activityViews create --input @customer-request-history.json
kla api activityViews create --input @customer-history-view.json
kla api activityViews update --input @customer-request-history-update.json
kla api activityViews archive --input @customer-request-history-archive.json
kla api activityViews unarchive --input @customer-request-history-unarchive.json

Chaque modification d’une vue enregistrée renvoie la révision suivante. Rechargez la définition enregistrée avant de relancer une opération en conflit.

Interroger le travail et l’historique client

Chaque requête nomme une vue enregistrée. Un filtre demandé restreint le filtre enregistré, et un champ de tri demandé doit figurer dans les orderedColumns enregistrées. Chaque réponse réussie fournit asOf, coverage et nextCursor. totalCount est limité à l’instantané autorisé et peut être null lorsque la requête atteint sa limite d’agrégation.

activity.listGroups liste les groupes de la vue de portée travail. Enregistrez la requête sous waiting-requests-query.json.

{
  "viewId": "33333333-3333-4333-8333-333333333333",
  "filters": {
    "referenceEquals": [],
    "sourceKinds": ["input_wait"],
    "statuses": ["waiting"]
  },
  "limit": 25,
  "sort": { "field": "latest_activity", "direction": "desc" }
}

activity.getGroup lit un seul groupe. Il exige referenceId et n’accepte ni limit ni sort. Enregistrez la requête sous request-104-group.json.

{
  "viewId": "33333333-3333-4333-8333-333333333333",
  "referenceId": "44444444-4444-4444-8444-444444444444"
}

activity.listActivity lit la chronologie d’une référence et la pagine avec le curseur. Enregistrez la requête sous request-104-timeline.json.

{
  "viewId": "33333333-3333-4333-8333-333333333333",
  "referenceId": "44444444-4444-4444-8444-444444444444",
  "limit": 25,
  "sort": { "field": "latest_activity", "direction": "desc" }
}

activity.listRelatedGroups nomme la vue de portée sujet et la référence client, puis retourne les groupes de demandes qu’elle contient. Enregistrez la requête sous customer-42-history.json.

{
  "viewId": "55555555-5555-4555-8555-555555555555",
  "referenceId": "66666666-6666-4666-8666-666666666666",
  "limit": 25,
  "sort": { "field": "latest_activity", "direction": "desc" }
}
kla api activity listGroups --input @waiting-requests-query.json
kla api activity getGroup --input @request-104-group.json
kla api activity listActivity --input @request-104-timeline.json
kla api activity listRelatedGroups --input @customer-42-history.json

Le curseur retourné lie la forme de la requête et l’instantané de projection. Utilisez-le uniquement avec la même vue, référence, filtres et le même tri. Sélectionnez Actualiser pour démarrer un nouvel instantané autorisé.

Utiliser le client TypeScript typé

Le client TypeScript du plan de contrôle utilise les mêmes procédures tRPC que la CLI. Il transmet le jeton d’accès et l’en-tête de tenant par son transport configuré. Les SDK Node et Python de gouvernance ne publient pas de méthodes Activity views.

import type { AppRouter } from '@kla/api';
import { createControlPlaneClient } from '@kla/api-client';

const client = createControlPlaneClient<AppRouter>({
  baseUrl: process.env.KLA_API_URL!,
  tenantId: process.env.KLA_TENANT_ID!,
  token: process.env.KLA_ACCESS_TOKEN!,
});

const view = await client.activityViews.create.mutate(configuration);
const groups = await client.activity.listGroups.query({ viewId: view.id, limit: 25 });

Le client reçoit le même contrat de configuration typé que l’UI. L’autorisation des sources est toujours appliquée sur le serveur pour chaque requête.

Examiner l’activité courante

Ouvrez Processes et sélectionnez une Activity view. La liste des groupes affiche des références de travail distinctes. Ouvrez une référence de travail pour sa chronologie. Ouvrez une référence de sujet pour le travail associé. Utilisez les liens de propriétaire pour poursuivre l’enquête dans Lineage Explorer ou Decision Desk lorsque l’identité courante peut lire cette source.

La couverture et la fraîcheur décrivent l’instantané de projection retourné. Un résultat partiel peut omettre de l’activité de source. Une modification de permission retire une source à la prochaine lecture autorisée.

Utiliser les vues d’activité | Developer Docs | KLA Control Plane