Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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
- Sagsstyringsagenten er konfigureret.
- Sørg for, at
Microsoft.CrmSdk.CoreAssemblies,Newtonsoft.Jsonog [Microsoft.Xrm.Tooling.Connector.dllfra Microsoft.CrmSdk.CoreTools er installeret.
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:
|
| 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 Contentmed 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>" }
} ]
}