Brug msdyn_invokeCaseProcessingAgent til at aktivere Sagshåndteringsagent

Brug forretningshændelsen msdyn_invokeCaseProcessingAgent til at udløse Case Management Agent for at gøre følgende:

  • udtrække oplysninger fra en kildeenhed, f.eks. en mail, og opdatere sagen med relevante oplysninger.
  • løse en bestemt sag.

Du kan bruge dette til at udvide sagsautomatisering ud over standardudløserne. Du kan f.eks. aktivere Sagshåndteringsagent, når en kunde opretter en sag fra en ekstern portal, eller når der forekommer en CRUD-hændelse i en brugerdefineret tabel, f.eks. nye kvitteringer, der føjes til en sag.

Forudsætninger

HTTP-anmodning

POST [Organization URI]/api/data/v9.2/msdyn_invokeCaseProcessingAgent

Anmodningstekst

Egenskab Type Obligatorisk Beskrivende tekst
msdyn_incidentId Streng Ja Id'et for den sag (hændelse), som Case Management Agent skal køre på.
Eksempel: "3895d023-a353-f011-877b-6045bd062e87"
msdyn_actions JSON-array serialiseret som en streng Ja Definerer, hvilke handlinger og kapaciteter Case Management Agent skal udføre. Se detaljer i det følgende afsnit.
msdyn_extraParams JSON-objekt serialiseret som en streng Nej Giver yderligere kontekst og påkaldelsesmuligheder. Se Yderligere parametre.

Send msdyn_actions og msdyn_extraParams som JSON gemt i strenge, ikke som JSON-arrays eller objekter i anmodningskroppen.

msdyn_actions matrixobjekt

Egenskab Type Obligatorisk Beskrivende tekst
aktion Streng Ja Definerer den sagsbehandlingshandling, der skal køres.
Værdier:
  • resolve: Løs sagen ved hjælp af løsningsfunktionerne i Case Management Agent.
  • enrich: Udtrækker oplysninger fra en kildeenhed, f.eks. en mail, og opdaterer sagen med relevante oplysninger.
    Kildeenheden skal være tilgængelig og indeholde relevante sagsoplysninger
automationLevel Streng Nej Ved normale kald bruger Case Management Agent den automatiseringstilstand, administratoren har konfigureret, ikke værdien Full eller Semi, der er angivet her. Hvis msdyn_extraParams.requestProcessed er true, bruges handlingsnyttelasten som angivet i stedet for at blive opdateret fra de konfigurerede indstillinger.
sourceContextEntity Streng Ja Dette er en påkrævet værdi for sagsberigelse og valgfri for sagsløsning. Kildeenheden, f.eks. en mail eller en samtale, der skal bruges til at opdatere sagen.
Eksempel: "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)"
customAgentOutput JSON-objekt serialiseret som en streng Nej For resolve leveres outputtet fra en brugerdefineret agent i et asynkront callback. Objektet bruger custom-agent outputkontrakten, inklusive responseType, message, handlingOptions, customAgentName, og templateId.

Yderligere parametre

Objektet msdyn_extraParams understøtter følgende egenskaber.

Egenskab Type Obligatorisk Beskrivende tekst
additionalInformation Array af objekter Nej Leverer information fra et eksternt system til intentgenkendelse. Hvert objekt indeholder en key til at identificere informationen, a value med indholdet, og en keyDescription der forklarer, hvad indholdet repræsenterer. Alle tre egenskaber er strenge.
triggerReason Streng Nej Identificerer, hvorfor agenten aktiveres. For eksempel, brug customAgentCallback den, når en tilpasset agent ringer tilbage til Case Management Agent.
refreshIntentFamily Boolean Nej Når true, bestemmer den intentionsfamilien igen ved at bruge regelmotoren i stedet for den cachede msdyn_intententity post. Gælder kun, når funktionsskiftet RefreshIntentFamilyInCMAFlow er aktiveret.

Eksempelanmodning

{
  "msdyn_incidentId": "5ad2ac2c-6363-f011-bec2-6045bd026457",
  "msdyn_actions": "[{\"action\":\"enrich\",\"sourceContextEntity\":\"emails(0e20cf92-f663-f011-bec1-000d3a3622ba)\"},{\"action\":\"resolve\",\"automationLevel\":\"Full\"}]"
}

Svar

  • Lykkedes: Returnerer HTTP 204 No Content med en tom brødtekst.
  • Fejl: Standard-OData-fejlsvar.

Eksempelkode

I det følgende eksempel kalder du Case Management Agent fra Dataverse-plugins eller brugerdefineret kode ved at køre organization request msdyn_invokeCaseProcessingAgent. Agenten opdaterer sagen ved at bruge en relateret e-mailenhed og behandler derefter sagsløsning ved hjælp af den administrator-konfigurerede automatiseringstilstand.

Eksempel 1

CrmServiceClient GetService()
{
    string orgUrl = "";
    string username = "";
    string connectionString = $"AuthType=OAuth;Username={username};Url={orgUrl};AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;RedirectUri=http://localhost;LoginPrompt=Auto";
    CrmServiceClient svc = new CrmServiceClient(connectionString);
    return svc;
}

public class InvokeCaseProcessingAgentRequest
{
    [JsonProperty("msdyn_incidentId")]
    public string incidentid { get; set; }

    [JsonProperty("msdyn_actions")]
    public List<AgentAction> actions { get; set; }
}

public class AgentAction
{
    [JsonProperty("action")]
    public AgentActionType action { get; set; }

    [JsonProperty("sourceContextEntity")]
    public string sourceContextEntity { get; set; }

    [JsonProperty("automationLevel")]
    public AutomationLevel? automationLevel { get; set; }
}

[JsonConverter(typeof(StringEnumConverter))]
public enum AgentActionType
{
    [EnumMember(Value = "enrich")]
    Enrich,
    [EnumMember(Value = "resolve")]
    Resolve
}

[JsonConverter(typeof(StringEnumConverter))]
public enum AutomationLevel
{
    [EnumMember(Value = "Full")]
    Full,
    [EnumMember(Value = "Semi")]
    Semi
}

void Main()
{
    var service = GetService();
    var actions = new List<AgentAction>()
    {
        new AgentAction()
        {
            action = AgentActionType.Enrich,
            sourceContextEntity = "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)"
        },
        new AgentAction()
        {
            action = AgentActionType.Resolve,
            automationLevel = AutomationLevel.Full
        },
    };
    var req = new OrganizationRequest("msdyn_invokeCaseProcessingAgent")
    {
        ["msdyn_incidentId"] = new Guid("8f2db50d-0c64-f011-bec2-000d3a3b776a"),
        ["msdyn_actions"] = JsonConvert.SerializeObject(actions)
    };
    service.Execute(req);
}

Eksempel 2

function invokeCaseManagementAgent() {
  var data = JSON.stringify({
    "msdyn_incidentId": "020edf2f-7d3f-4a69-bd26-030736604eeb",
    "msdyn_actions": "[{\"action\":\"enrich\",\"sourceContextEntity\":\"emails(0e20cf92-f663-f011-bec1-000d3a3622ba)\"},{\"action\":\"resolve\",\"automationLevel\":\"Full\"}]"
  });
  var xhr = new XMLHttpRequest();
  xhr.withCredentials = true;
  xhr.addEventListener("readystatechange", function() {
    if(this.readyState === 4) {
      console.log(this.responseText);
    }
  });
  xhr.open("POST", Xrm.Utility.getGlobalContext().getClientUrl()+"/api/data/v9.2/msdyn_invokeCaseProcessingAgent");
  xhr.setRequestHeader("Cache-Control", "no-cache");
  xhr.setRequestHeader("Accept", "*/*");
  xhr.setRequestHeader("Content-Type", "application/json");
  xhr.send(data);
}

invokeCaseManagementAgent();

Giv ekstra information fra et eksternt system

Brug additionalInformation til at give kontekst, såsom vedhæftningsindhold eller garantistatus, til intentgenkendelse. Denne Web API-anmodning sender begge parametre som stringificeret JSON.

{ 

  "msdyn_incidentId": "00000000-0000-0000-0000-000000000000", 
  "msdyn_actions": [ 
    { "action": "resolve", "sourceContextEntity": "emails(<email-guid>)" } 
  ], 
  "msdyn_extraParams": { 
    "triggerReason": "customAgentCallback", 
    "additionalInformation": [ 
      { "key": "attachmentContent", "value": "This is my attachment content", 
        "keyDescription": "File attachment content in natural language" }, 
      { "key": "warrantyStatus", "value": "Fulfilled", 
       "keyDescription": "Current warranty fulfillment status" } 
    ] 
  } 
} 

Returnere et asynkront custom-agent-resultat

Når en custom agent returnerer Wait, bliver Case Management Agent inaktiv, mens custom agent udfører asynkront arbejde. For at fortsætte behandlingen skal du kalde msdyn_invokeCaseProcessingAgent med en resolve handling og en customAgentOutput værdi, hvis responseType ikke er Wait. For integrationsarbejdsgangen, se Hvordan integrationen fungerer.

Den følgende Web API-anmodning sendes customAgentOutput som en JSON-streng inde i det strengificerede msdyn_actions array. Erstat case id, agent schema-navn og skabelon-ID med værdier fra dit miljø.

{ 

  "msdyn_incidentId": "<case-guid>", 
  "msdyn_actions": [ { 
    "action": "resolve", 
    "customAgentOutput": { "responseType": "Resolved", "message": "<message>", 
      "handlingOptions": { "needsReview": "true" }, 
      "customAgentName": "<agent schema name>", "templateId": "<template-guid>" } 
  } ] 
}