msdyn_invokeCaseProcessingAgentビジネス イベントを使用して、Case Management エージェントをトリガーして次の操作を行います。
- 電子メールなどのソース エンティティから情報を抽出し、関連する詳細でケースを更新します。
- 特定のケースを解決します。
これを使用して、既定のトリガーを超えてケースの自動化を拡張できます。 たとえば、顧客が外部ポータルからケースを作成するときや、ケースに追加された新しいレシートなど、カスタム テーブルで CRUD イベントが発生したときに、Case Management Agent を呼び出すことができます。
[前提条件]
- ケース管理エージェントが構成されている。
-
Microsoft.CrmSdk.CoreAssemblies、Newtonsoft.Json、および [Microsoft.Xrm.Tooling.Connector.dllfrom Microsoft.CrmSdk.CoreTools がインストールされていることを確認します。
HTTP 要求
POST [Organization URI]/api/data/v9.2/msdyn_invokeCaseProcessingAgent
要求本文
| プロパティ | タイプ | 必須 | Description |
|---|---|---|---|
| msdyn_incidentId | String | イエス | ケース管理エージェントを実行する必要があるケース (インシデント) の ID。 例: "3895d023-a353-f011-877b-6045bd062e87" |
| msdyn_actions | 文字列化された JSON 配列 | イエス | 実行するケース管理エージェントのアクション/機能を定義します。 詳細については、以下を参照してください。 |
配列オブジェクト: msdyn_actions
| プロパティ | タイプ | 必須 | Description |
|---|---|---|---|
| アクション | String | イエス | 実行するケース処理アクションを定義します。 値:
|
| automationLevel | String | いいえ | アクションのオートメーション モードを定義します。 これは、ケース解決にのみ適用されます。 この値が指定されていない場合、エージェントは管理者によって構成されたモードを使用します。 値:
|
| sourceContextEntity | String | イエス | これは、ケース エンリッチメントに必要な値であり、ケース解決には省略可能です。 ケースの更新に使用する必要があるメールや会話などのソース エンティティ。 例: "emails(0e20cf92-f663-f011-bec1-000d3a3622ba)" |
サンプルリクエスト
{
"msdyn_incidentId": "5ad2ac2c-6363-f011-bec2-6045bd026457",
"msdyn_actions": "[{\"action\":\"enrich\",\"sourceContextEntity\":\"emails(0e20cf92-f663-f011-bec1-000d3a3622ba)\"},{\"action\":\"resolve\",\"automationLevel\":\"Full\"}]"
}
[応答]
-
成功: 本文が空の HTTP
204 No Contentを返します。 - 失敗: 標準 OData エラー応答。
サンプル コード
次の例では、 msdyn_invokeCaseProcessingAgent 組織要求を実行することで、Dataverse プラグインまたはカスタム コードから Case Management Agent を呼び出すことができます。 エージェントは、関連する電子メール エンティティを使用してケースを更新し、完全な自動化でケースを解決するために使用されます。
例 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);
}
例 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();