Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare l'evento aziendale per attivare l'agente msdyn_invokeCaseProcessingAgent di gestione dei casi per eseguire le operazioni seguenti:
- estrarre informazioni da un'entità di origine, ad esempio un messaggio di posta elettronica e aggiornare il caso con i dettagli pertinenti.
- risolvere un caso specifico.
È possibile usarlo per estendere l'automazione dei casi oltre i trigger predefiniti. Ad esempio, è possibile richiamare l'agente di gestione dei casi quando un cliente crea un caso da un portale esterno o quando si verifica un evento CRUD in una tabella personalizzata, ad esempio nuove ricevute aggiunte a un caso.
Prerequisiti
- L'agente di gestione dei casi è configurato.
- Assicurarsi che
Microsoft.CrmSdk.CoreAssemblies,Newtonsoft.Jsone [Microsoft.Xrm.Tooling.Connector.dllda Microsoft.CrmSdk.CoreTools siano installati.
Richiesta HTTP
POST [Organization URI]/api/data/v9.2/msdyn_invokeCaseProcessingAgent
Corpo della richiesta.
| Proprietà | TIPO | Obbligatorio | Description |
|---|---|---|---|
| msdyn_incidentId | String | Yes | ID del caso (incidente) su cui deve essere eseguito l'Agente di gestione dei casi. Esempio: "3895d023-a353-f011-877b-6045bd062e87" |
| msdyn_actions | Matrice JSON stringata | Yes | Definisce le azioni/funzionalità dell'agente di gestione dei casi da eseguire. Vedere i dettagli di seguito. |
Oggetto msdyn_actions array
| Proprietà | TIPO | Obbligatorio | Description |
|---|---|---|---|
| action | String | Yes | Definisce l'azione di elaborazione dei casi da eseguire. Valori:
|
| automationLevel | String | NO | Definisce la modalità di automazione per l'azione. Questo vale solo per la risoluzione dei casi. Se questo valore non viene specificato, l'agente usa la modalità configurata dall'amministratore. Valori:
|
| sourceContextEntity | String | Yes | Si tratta di un valore obbligatorio per l'arricchimento del caso e facoltativo per la risoluzione dei casi. Entità di origine, ad esempio un messaggio di posta elettronica o una conversazione che deve essere usata per aggiornare il caso. Esempio: "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)" |
Esempio di richiesta
{
"msdyn_incidentId": "5ad2ac2c-6363-f011-bec2-6045bd026457",
"msdyn_actions": "[{\"action\":\"enrich\",\"sourceContextEntity\":\"emails(0e20cf92-f663-f011-bec1-000d3a3622ba)\"},{\"action\":\"resolve\",\"automationLevel\":\"Full\"}]"
}
Risposta
-
Operazione riuscita: restituisce HTTP
204 No Contentcon un corpo vuoto. - Errore: risposta di errore OData standard.
Esempio di codice
Nell'esempio seguente è possibile richiamare l'agente di gestione dei casi da plug-in Dataverse o codice personalizzato eseguendo la richiesta dell'organizzazione msdyn_invokeCaseProcessingAgent . L'agente viene usato per aggiornare il caso usando un'entità di posta elettronica correlata e quindi risolvere il caso con l'automazione completa.
Esempio 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);
}
Esempio 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\",\"automationMode\":\"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();